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 }