GET /api/v1/demos

Authentication

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

Query Parameters

project_id string optional query
status string optional query

Responses

200 Demo list
application/json
demos object[] REQUIRED
Array of:
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
curl -X GET 'https://littledemo.com/api/v1/demos' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://littledemo.com/api/v1/demos', {  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', headers=headers)print(response.json())
200 Response
{  "demos": [    {      "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>"    }  ]}
Ask a question... ⌘I