API Reference
Sessions
Endpoints for fetching session status, outputs, and session summaries.
Fetch or trigger generation of a session summary
Endpoint
GET /v1/sessions/summary?sessionId=...
Fetch cached session summary if it exists; otherwise start generation and return 202.
Required scope
sessions:read
Query params
- sessionId: string (required)
- projectId: string (optional; used for project sessions)
- instant_voice_links: "1" | "true" | "yes" (optional; set for instant-link sessions)
Response (200)
- success: boolean (true)
- sessionId: string
- summary: any (JSON loaded from sessions/{sessionId}/summary.json)
Response (202)
- success: boolean (false)
- sessionId: string
- generating: boolean (true)
- workflowId: string
- runId: string
Errors
- 400: { "error": "sessionId is required" }
- 403/404/500: { "error": string }
Force regeneration of a session summary
Endpoint
POST /v1/sessions/summary/regenerate
Force regeneration of a session summary (starts workflow; returns 202).
Required scope
sessions:write
Body
- sessionId: string (required)
- projectId: string (optional)
- instant_voice_links: boolean (optional)
Response (202)
- success: boolean (true)
- sessionId: string
- workflowId: string
- runId: string
Errors
- 400: { "error": "sessionId is required" }
- 403/404/500: { "error": string }
Get session status (project or instant)
Endpoint
GET /v1/session/status?sessionId=...&type=project|instant&projectId=...
Get session status payload for a session owned by the authenticated user.
Required scope
sessions:read
Query params
- sessionId: string (required)
- type: "project" | "instant" (required)
- projectId: string (required if type=project)
Response (200)
- success: boolean (true)
- sessionId: string
- type: "project" | "instant"
- projectId: string | undefined
- status: any
- agentId: any
- wsUrl: any
- createdAt/updatedAt/completedAt: string | undefined (ISO when possible)
Errors
- 400: { "error": "sessionId is required" | "type must be \"project\" or \"instant\"" | "projectId is required when type=project" }
- 404: { "error": "Session not found" }
- 500: { "error": string }
Get session transcript (project or instant)
Endpoint
GET /v1/session/transcript?sessionId=...&type=project|instant&projectId=...
Fetch the transcript JSON for a session (sessions/{sessionId}/conversation.json).
Required scope
sessions:read
Query params
Same as /v1/session/status.
Response (200)
- success: boolean (true)
- sessionId: string
- transcript: any — parsed JSON from conversation.json
Errors
- 400: { "error": string } (invalid query)
- 404: { "error": "Session not found" | "conversation.json not found for session ..." }
- 500: { "error": string }
Get session audio (project or instant)
Endpoint
GET /v1/session/audio?sessionId=...&type=project|instant&projectId=...
Get a signed URL for the session audio (sessions/{sessionId}/conversation.wav).
Required scope
sessions:read
Query params
Same as /v1/session/status.
Response (200)
- success: boolean (true)
- sessionId: string
- audioUrl: string — signed URL (expires in ~1 hour)
Errors
- 400: { "error": string } (invalid query)
- 404: { "error": "Session not found" | "Audio file not found for session ..." }
- 500: { "error": string }