GET /api/v1/demos/{id}

Authentication

Bearer Token API Key (cookie: better-auth.session_token)

Path Parameters

id string required path

Responses

200 Demo detail
application/json
id string REQUIRED
project_id string REQUIRED
prompt string REQUIRED
status string REQUIRED
title string | null REQUIRED
action_script string | null REQUIRED
JSON-encoded recorder script. Present after planning succeeds.
ai_plan string | null REQUIRED
JSON-encoded action plan generated by AI.
snapshots string | null REQUIRED
JSON-encoded snapshot metadata array.
video_key string | null REQUIRED
gif_key string | null REQUIRED
thumbnail_key string | null REQUIRED
duration_ms number | null REQUIRED
recording_log string | null REQUIRED
JSON-encoded per-step recorder execution log.
format string REQUIRED
resolution string REQUIRED
duration_target string | null REQUIRED
context string | null REQUIRED
context_hash string | null
presentation string | null REQUIRED
JSON-encoded presentation config, including recordingTemplate metadata.
recorder_variants string | null
JSON-encoded recorder variant status map.
version number REQUIRED
error string | null REQUIRED
source string
How the video was produced: 'generated' (AI pipeline) or 'upload' (locally recorded, uploaded). Uploaded demos cannot be refreshed or restyled.
Enum: generated, upload
created_at string REQUIRED
updated_at string REQUIRED
refreshed_at string | null
latestJob object | null REQUIRED
id string REQUIRED
status string REQUIRED
step string | null REQUIRED
started_at string | null REQUIRED
completed_at string | null REQUIRED
error string | null REQUIRED
refreshHistory object[] REQUIRED
Array of:
id string REQUIRED
triggered_by string REQUIRED
result string REQUIRED
old_version number | null REQUIRED
new_version number | null REQUIRED
error string | null REQUIRED
created_at string REQUIRED
404 Not found
curl -X GET 'https://littledemo.com/api/v1/demos/string' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://littledemo.com/api/v1/demos/string', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://littledemo.com/api/v1/demos/string', headers=headers)print(response.json())
200 Response
{  "id": "<string>",  "project_id": "<string>",  "prompt": "<string>",  "status": "<string>",  "title": "<string>",  "action_script": "<string>",  "ai_plan": "<string>",  "snapshots": "<string>",  "video_key": "<string>",  "gif_key": "<string>",  "thumbnail_key": "<string>",  "duration_ms": 123,  "recording_log": "<string>",  "format": "<string>",  "resolution": "<string>",  "duration_target": "<string>",  "context": "<string>",  "context_hash": "<string>",  "presentation": "<string>",  "recorder_variants": "<string>",  "version": 123,  "error": "<string>",  "source": "generated",  "created_at": "<string>",  "updated_at": "<string>",  "refreshed_at": "<string>",  "latestJob": {    "id": "<string>",    "status": "<string>",    "step": "<string>",    "started_at": "<string>",    "completed_at": "<string>",    "error": "<string>"  },  "refreshHistory": [    {      "id": "<string>",      "triggered_by": "<string>",      "result": "<string>",      "old_version": 123,      "new_version": 123,      "error": "<string>",      "created_at": "<string>"    }  ]}
Ask a question... ⌘I