Base URL
Content-Type: application/json. Responses are JSON too.
Authentication
Every endpoint needs an API key as a bearer token:GET /me tells you who the key belongs to and what’s left on the plan, which makes it a good first request.
The demo object
Every demo endpoint, assistant tool and webhook returns the same object.string
The demo’s id.
string
queued, in_progress, input_required, completed, failed or canceled.string | null
While
in_progress: recording, analyzing, narrating, editing or rendering.object
percent done and eta_seconds, an estimate of the time left.object | null
The question the agent is waiting on, when
status is input_required. See When the agent needs an answer.object | null
When
completed: url to play, download_url for the MP4, duration_seconds, thumbnail_url. Links expire after 2 hours (expires_at).object | null
When
failed: a message saying why.integer
How long to wait before polling again.
0 once the demo is finished.string
The demo in the Demosmith app, where it can be edited and shared.
string
Where it was created:
api, mcp or web.object
Your own values from creation, returned as given.
Lists
GET /demos returns the newest first, 30 per page by default. Use page and page_size (up to 100). The response has count, next, previous and results.
Versioning
The API is versioned in the path (/v1). Within v1 we only add things: new endpoints, new optional fields, new event types and new values in lists. Ignore fields and values you don’t know.
OpenAPI
The full specification is athttps://platform.demosmith.ai/v1/openapi.json (OpenAPI 3.1). Use it to generate a client or import it into your API tool.
