POST /api/sessions — Create a session
Creates a new session record without uploading a video. Use this endpoint when you want to pre-create a session and track it separately, or when you are integrating with a custom recording pipeline. To upload a video and create a fully processed session in one step, use POST /recordings instead.Request body
Human-readable title for the session. Maximum 500 characters.
Target AI coding agent. One of:
CLAUDE_CODE, CODEX, CURSOR, RAW.Expected or actual number of frames. Minimum 0.
Expected or actual number of URLs inspected. Minimum 0.
Response
Returns a Session object.GET /api/sessions — List sessions
Returns all sessions belonging to your account, ordered by most recently updated.Request
No parameters required.Response
Returns an array of Session objects.Example
GET /api/sessions/stats — Get statistics
Returns aggregate statistics computed across all sessions in your account.Request
No parameters required.Response
Total number of sessions in your account.
Number of sessions with
status: "complete".Sum of
duration (in seconds) across all completed sessions.Average
processingTime (in milliseconds) across all completed sessions.GET /api/sessions/:id — Get session with frames
Returns a single session including its full array of extracted frames.Path parameter
The session ID, e.g.
sess_ABC12345.Response
Returns a SessionWithFrames object — a Session with an additionalframes array.
Example
GET /api/sessions/:id/status — Poll processing status
Returns the current processing state of a session. Use this endpoint to track progress when a session is actively being processed. Poll at a reasonable interval (e.g. every 2–3 seconds) untiloverallStage is complete or error.
Path parameter
The session ID to poll.
Response
The session ID.
High-level session status:
processing, complete, or error.Detailed per-lane processing state, or
null if status information is not yet available.Elapsed processing time in milliseconds.
Top-level error message if the session failed, or
null.Example
PATCH /api/sessions/:id — Update session
Updates one or more fields on an existing session. Only the fields you include in the request body are changed.Path parameter
The session ID to update.
Request body (all fields optional)
New session title. Maximum 500 characters.
New status. One of:
processing, complete, error.Recording duration in seconds. Minimum 0.
Updated list of URLs associated with the session.
Replacement prompt text.
New agent target. One of:
CLAUDE_CODE, CODEX, CURSOR, RAW.Updated frame count. Minimum 0.
Updated URL count. Minimum 0.
Response
Returns the updated Session object.DELETE /api/sessions/:id — Delete session
Permanently deletes a session and all associated frames. This action cannot be undone.Path parameter
The session ID to delete.
Response
Returns204 No Content with an empty body on success.
Session object
Unique session identifier.
ID of the account that owns this session.
Human-readable session title.
The seed URL inspected by the Playwright lane, or
null if not set.Current session status:
processing, complete, or error.Length of the source recording in seconds.
Number of frames extracted from the recording.
List of URLs that appeared in the recording.
Count of unique URLs in the recording.
Agent target used when generating the prompt:
CLAUDE_CODE, CODEX, CURSOR, or RAW.Total server-side processing time in milliseconds.
The generated agent-ready system prompt.
ISO 8601 timestamp for when the session was created.
ISO 8601 timestamp for when the session was last updated.
Frame object
Unique frame identifier.
ID of the parent session.
Position of the frame in the video, in milliseconds.
Browser URL at the time this frame was captured.
Base64-encoded PNG data URL of the frame thumbnail.
ARIA tree diff between this frame and the previous one.
ARIA accessibility tree captured for this frame. Each node has
role, name, optional children, and an optional diffStatus of added, changed, or removed.ISO 8601 timestamp for when the frame record was persisted.