Skip to main content
A session can be watched back two ways:
  • Recording: a video of the phone’s screen during the session.
  • Step-by-step replay: each action the agent took, with the screenshot taken after it.

Which sessions are recorded

  • Turns sent to an agent are always recorded. The turn’s response has recording: true.
  • Sessions without an agent are recorded only when you ask. Send "recording": true when you start the session. It is off by default.

Get the recording

recording_status is always present: data is null until there is something to play. Then data.segments lists its MP4 segments in order. Each segment has a url, its start_offset_ms and duration_ms within the recording, and expires_at, the time in Unix seconds when the url stops working. Request the endpoint again for fresh links.

Step-by-step replay

data lists each completed action in time order. Each entry has the action event, its timestamp, and a frame_url for the PNG screenshot taken after it. frame_url expires at expires_at (Unix seconds), about five minutes later. Screenshots that are still uploading appear on a later request. To download one screenshot through the API instead of a link, request GET /v1/sessions/{id}/replay/frame?index=<n>. index counts from 0 in the list /replay returns. The response is the PNG image.

History window

Recordings and replay follow your plan’s history window. For a session older than the window, both endpoints return 402 with error: "upgrade_required" and reason: "history_window". A recording stays available past the window when your plan includes video replay, or when it was made on a Lusor Phone with a paid plan. See Pricing.