Developers
Build with Attria.
Everything the Studio makes, from your code or your agent. Websites, documents, apps, images and video — plus your agents and objects — over one API and one MCP server.
One call
Say what should exist. The Studio director builds it — or asks first, like it does in the app.
- One key, from Settings → API
- JSON over HTTPS at
app.attria.io/api - Wait, stream, or run in the background
Create a document
curl -X POST "https://app.attria.io/api/v1/studio/document/turns" \
-H "Authorization: Bearer $ATTRIA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"message": "A 10-slide seed pitch deck for Northwind, a B2B freight marketplace. Traction: $412k ARR, +38% QoQ.",
"auto": true
}'const res = await fetch("https://app.attria.io/api/v1/studio/document/turns", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ATTRIA_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
message: "A 10-slide seed pitch deck for Northwind, a B2B freight marketplace. Traction: $412k ARR, +38% QoQ.",
auto: true,
}),
});
const turn = await res.json();import os, uuid, requests
res = requests.post(
"https://app.attria.io/api/v1/studio/document/turns",
headers={
"Authorization": f"Bearer {os.environ['ATTRIA_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"message": "A 10-slide seed pitch deck for Northwind, a B2B freight marketplace. Traction: $412k ARR, +38% QoQ.",
"auto": True,
},
timeout=900, # a turn that waits can take minutes
)
turn = res.json()Response200
{
"id": "1e0f…",
"object": "studio.turn",
"status": "completed",
"studio": "document",
"artifact": {
"id": "a3c2…",
"type": "document",
"name": "Northwind — Seed pitch",
"url": "https://app.attria.io/studio/documents/a3c2…",
"public_url": null
},
"conversation_id": "c81b…",
"message": "Here's a 10-slide seed deck for Northwind. I led with traction — it's your strongest proof.",
"created_at": "2026-09-27T18:02:11Z",
"completed_at": "2026-09-27T18:02:52Z"
}Guides
From first key to production. Short pages, real calls, copy-ready samples in curl, TypeScript and Python.
Get startedOverviewWhat the API does and how it's shaped.QuickstartA key, a first call, a first document.AuthenticationKeys, the Bearer header, keeping keys safe.
API reference
Every endpoint, generated from the spec. Parameters, samples and responses — never out of step with the API.
StudioMake and edit websites, documents, apps, images and video by talking to the same Studio director the product uses. Each message is a turn.17 endpoints AgentsList, create, update and run the workspace's agents; follow their runs, steps and approvals.11 endpoints ObjectsThe workspace's objects: definitions, records, queries and relationships.11 endpoints AccountWho a key acts as, the workspace it reaches, and what the account can use.1 endpoint
For agents
Your agent can use Attria too. Every endpoint is a tool on the MCP server. Same key.
Claude Code
claude mcp add --transport http attria https://app.attria.io/api/v1/mcp \
--header "Authorization: Bearer <key>"