List replay sessions
navigator.sendBeacon may not include SDK metadata because browsers do not allow custom headers on beacon requests.
Search replay sessions
fields, clamped limit, applied order, and a replays array.
Query parameters:
from/to- required ISO 8601 timestamps; ranges must be bounded to 31 days or lesslimit- optional result limit; defaults to 25 and clamps to 100order- optional sort order:started_at_desc,started_at_asc,created_at_desc,created_at_asc,active_ms_desc,interaction_count_desc,console_error_count_desc, ornetwork_failed_count_descurl,environment,release,source,library- optional exact or URL substring filtersai_tag,ai_freeform_tag,ai_highlighted- optional AI enrichment filtersmin_interactions,min_console_logs,min_console_warnings,min_console_errors,min_network_failed- optional non-negative threshold filtersfields- optional comma-separated replay summary field mask, such assession_id,first_url,error_count,ai_tags,ai_highlighted
replay_search_invalid_time_range, replay_search_invalid_filter, replay_search_invalid_order, replay_search_limit_too_large, and replay_search_invalid_field_mask.
Replay summaries include retention_expires_at, retention_state, segment_reads_allowed, deleted_at, deleted_reason, ai_tags, ai_freeform_tags, ai_highlighted, ai_enrichment_status, ai_enriched_at, and ai_enrichment_error. List and search omit deleted sessions; direct detail/inspect responses can still explain a retained tombstone when one exists. Legacy retained sessions that cannot be tied to a known plan use retention_state: "unknown" and keep segment reads allowed.
Get one replay session
Read the story of a session
format- optional;json(default) ortext.textreturns atext/plaintranscript.
replay- the replay summary, the same shape as the list and get endpoints.story- the story:summary- one or two sentences about the session.findings- the problems and friction found, such as errors, backend errors, failed requests, rage clicks, dead clicks, and slow requests. Each finding has atitle, adetail, acount, and up to 20offsets_ms. Error findings include thefingerprintandtrace_ids.steps- one entry per page, click, input, failed or slow request, error, backend error, and idle period. Each step has akind, atone(problem,friction, orneutral), anoffset_ms, alabel, and acountfor repeated steps.pages,requests, andlogs- the page views, network requests, and session log lines that the steps point to.idle,activity,duration_ms,active_ms,viewport, andtruncated.
coverage-segments_loaded,segments_missing, andpartial.partialistruewhen some recorded segments could not be read.segments- the segment list the replay player needs:segment_index,event_count,started_at,ended_at, andsize_bytes.
coverage.segments_loaded is
0, and the story has no idle periods.
With format=text, the response is a transcript:
replay_story_invalid_filter,
replay_story_invalid_format, and replay_story_invalid_session_id. A missing or expired session
returns 404.
Inspect replay timeline
replay_error moments also include, when known, the first line of the error message (up to 500 characters), the error group fingerprint, the trace_id, the service that logged the error, and the log event_id.
Query parameters:
include- optional comma-separated categories:page,replay_error,console,network,activity,segmentexclude- optional comma-separated categories to remove afterincludeis appliedlimit- optional timeline limit; defaults to 100 and clamps to 200slow_network_ms- optional slow-network threshold in milliseconds; defaults to 1000
replay_inspect_invalid_category, replay_inspect_invalid_filter, replay_inspect_invalid_session_id, and replay_inspect_limit_too_large.
MCP replay workflows
The hosted MCP server exposes replay search, story, and inspect through Code Mode. Use thesearch tool to discover replays.search, replays.story, or replays.inspect, then call the operation through execute. To understand one session, call replays.story first; use replays.inspect when you need timeline categories or segment boundaries. Code Mode returns the query schema, response schema, generated TypeScript, and example squasher.request(...) call for each operation.
Replay segment payloads remain API/CLI-only because they can contain large raw rrweb event payloads. Agents should use replays.search, replays.story, and replays.inspect first, then ask a user before fetching raw segment events outside MCP.
CLI replay workflows
The Squasher CLI exposes the same search, story, and inspect surfaces for agent and headless workflows.replays story prints the text transcript by default; add the global --json flag for the JSON response (and --pretty to indent it). Search and inspect print compact JSON by default; add --pretty when reading output interactively.
Get one replay segment payload
segment- required zero-based replay segment index
410 with stable JSON error codes: replay_deleted or replay_expired. Missing replay metadata returns replay_not_found, and missing indexed segment metadata returns replay_segment_not_found.
Agent handoff
Agents should use replay search and inspect before raw event payloads:squasher replays search, squasher replays story, squasher replays inspect, or MCP search("replays.search"), search("replays.story"), and search("replays.inspect").