Servers
Stream recording events
Send recording events over a WebSocket connection. The Browser Client uses this endpoint by default. See WebSocket event streaming for connection and message formats, or use HTTP event collection to send events in batches. Browsers cannot set an Authorization header on WebSocket connections, so pass your public API key in the URL as ?token=your-api-key. The Browser Client adds this parameter automatically. The GET request opens the WebSocket connection; send events as WebSocket messages after connecting.
Authorizations
Public API key for authentication.
"Bearer public_key_rr_1Q8AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Query Parameters
Enable debug mode
"true"Payload content type. Defaults to application/x-ndjson when omitted.
"application/x-ndjson""application/ndjson""application/json""application/x-ndjson"Optional compression applied to the payload frames. Defaults to identity.
"gzip""br""zstd""gzip"Responses
WebSocket upgraded successfully.
Get recording events
Retrieve the event stream for a single recording.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Responses
Successfully retrieved recording events
Create recording events
Append recording events in batch mode via POST. This is available for clients or environments which don't support WebSocket event streaming.
Authorizations
Public API key for authentication.
"Bearer public_key_rr_1Q8AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Query Parameters
Enable debug mode
"true"Request Body
Responses
Successfully accepted recording events
Get recording metadata
Retrieve only the searchable metadata key-value pairs for a single recording.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Responses
Successfully retrieved recording metadata
Capture metadata
Attach searchable metadata to a recording so you can query recordings by customer, device, rollout state, or any other field. See Recording metadata for implementation guidance.
Authorizations
Public API key for authentication.
"Bearer public_key_rr_1Q8AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Request Body
Responses
Successfully captured recording metadata
Get recording
Get a recording's metadata and links to its events, player, and screenshot. When authenticating with a private API key, set includeEvents=true to include the recording events. Presigned URLs for this endpoint return metadata and links only; use the signed events link to fetch events.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Query Parameters
Include presigned recording links in the detail response.
trueInclude the recording event stream in the detail response.
trueResponses
Successfully retrieved recording details
Compose replay
Combine events from one or more recordings into a replayable stream.
By default, the replay plays each page view in full before moving to the next, ordered by when each page view started. A full snapshot marks the start of each page view.
Event timestamps start at zero to match the combined playback order. Each recorded event keeps its original timestamp in originalTimestamp.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Query Parameters
A recording metadata parameter (or a set of parameters) by which you want to compose a single replay. Use metadata[key]=value syntax.
{
"sessionId": "session-123"
}Responses
Successfully retrieved recording events
Get replay
Retrieve merged metadata and replayable events for recordings sharing a metadata key and value.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The metadata key used to group recordings into replays
"sessionId"1100The metadata value identifying this replay group
"sess-123"1500Responses
Successfully retrieved replay metadata and events
Get replay events
Retrieve only the replayable event stream for a replay group.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The metadata key used to group recordings into replays
"sessionId"1100The metadata value identifying this replay group
"sess-123"1500Responses
Successfully retrieved replay events
Get replay metadata
Retrieve only the merged metadata for a replay group.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The metadata key used to group recordings into replays
"sessionId"1100The metadata value identifying this replay group
"sess-123"1500Responses
Successfully retrieved replay metadata
List replays
List replay groups for a metadata key. Each replay group represents one metadata value and one or more recordings sharing that value.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Path Parameters
The metadata key used to group recordings into replays
"sessionId"1100Query Parameters
Maximum number of replays to return (1-100, default: 50)
"50"Number of replays to skip (default: 0)
"0"Include presigned replay URLs in the response.
trueResponses
Successfully listed replays grouped by metadata value
List recordings
Query recordings by metadata filters or by most recent. Multiple filters are combined with AND logic.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Parameters
Query Parameters
Filter recordings by metadata key-value pairs. Use metadata[key]=value syntax (URL-encode keys and values with encodeURIComponent). eg. metadata[userId]=user-123&metadata[plan]=pro
{
"userId": "user-123",
"plan": "pro"
}Maximum number of results to return (1-100, default: 50)
"50"Number of results to skip (default: 0)
"0"Include presigned event URLs in the response.
trueResponses
Successfully retrieved recordings
Get recording statistics
Get statistics about recordings including total count, count for this month, and storage usage.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Responses
Successfully retrieved recording statistics
Get recording player
Serves the recording player HTML page. Request /recordings/{recordingId}/player.html or send Accept: text/html for the HTML representation. File extensions take precedence over the Accept header when both are present.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Query Parameters
Optional exact CDN catalog version of rrweb-player. JavaScript and CSS use the same version. Defaults to the configured CDN channel, resolved to an exact version. Unsupported versions return 400.
"2.1.1"Player layout: omitted or false shows the standard page; true aliases controls. Embed presets fill the container without surrounding page UI: controls keeps controls visible, controls-hover reveals them on hover or keyboard focus (always visible on touch devices), and controls-hidden removes them completely. All presets support paused, autoplay, and looping playback.
"false""true""controls""controls-hover""controls-hidden""controls-hidden"Playback on load: false pauses (default), true plays once, and loop plays repeatedly. The initial pass starts at time; subsequent passes restart from the beginning. Looping from the recording end starts at the beginning.
"false""true""loop""false"Playback speed from 0.25 to 4 (default: 1). Values outside this range return 400.
"1"Playback position selector. Supports offset, percent, and epoch formats: offset:5000, offset:-5000, percent:50, or epoch:1702900000000. Defaults to offset:0.
"offset:0"Optional URL from which the player loads recording events. Use a relative URL or a URL on the same origin as the player, such as a presigned events URL.
"https://api.example.com/recordings/000e8400-e00b-00d0-a716-446655440000/events?tenantId=tenant-123&expires=1700000000&keyId=key-2025-12&signature=abcdef"Responses
Recording player HTML page
Get recording screenshot
Capture a screenshot at a chosen playback position. Request /recordings/{recordingId}/screenshot.png, .jpeg, or .webp, or select a format with the Accept header. A file extension takes precedence over the header.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"Your organization ID. Included automatically in generated presigned URLs; keep the returned value unchanged.
Identifies the key used to verify the presigned URL. Included automatically in generated URLs; keep the returned value unchanged.
Expiration timestamp (UNIX seconds)
Authenticates the presigned URL. Use the URL returned by the API without changing its path or authentication parameters.
Parameters
Path Parameters
The recording ID
"000e8400-e00b-00d0-a716-446655440000""uuid"Query Parameters
Playback position selector. Supports offset, percent, and epoch formats: offset:5000, offset:-5000, percent:50, or epoch:1702900000000. Defaults to offset:0.
"offset:0"Width in pixels from 1 to 4096. Defaults to 1280 when omitted. If height is provided and width is omitted, width is derived from the recording viewport ratio when metadata is available. Values outside this range return 400.
"1280"Height in pixels from 1 to 4096. Defaults to 720 when omitted and recording viewport metadata is unavailable. If width is provided or both dimensions are omitted, height is derived from the recording viewport ratio when metadata is available. Values outside this range return 400.
"720"Quality from 1 to 100 for JPEG and WebP output (default: 80). Ignored for PNG.
"80"Responses
Screenshot image
Check recording shareability
Check whether a recording in your organization is ready to share.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"rrweb CLI access token with shareable_links:manage
Parameters
Path Parameters
The recording ID
"550e8400-e29b-41d4-a716-446655440000""uuid"Responses
pending: events are available but a full snapshot is missing. ready: a full snapshot is available.
Create a shareable link
Create a temporary link that lets anyone with the URL view a recording in your organization without an API key. The recording must be ready to share.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"rrweb CLI access token with shareable_links:manage
Parameters
Path Parameters
The recording ID
"550e8400-e29b-41d4-a716-446655440000""uuid"Request Body
Responses
Shareable link created
Open or inspect a shareable link
Return the shareable link details, or redirect browser navigation to its player.
Parameters
Header Parameters
Request JSON metadata or an HTML redirect to the replay player.
"application/json"Path Parameters
The shareable link token
"u-LzqJ5W9K8YfG7xD4sN2mR6pB3cA1vH0tEoI_QXwZk"Query Parameters
Optional exact CDN catalog version of rrweb-player. JavaScript and CSS use the same version. Defaults to the configured CDN channel, resolved to an exact version. Unsupported versions return 400.
"2.1.1"Player layout: omitted or false shows the standard page; true aliases controls. Embed presets fill the container without surrounding page UI: controls keeps controls visible, controls-hover reveals them on hover or keyboard focus (always visible on touch devices), and controls-hidden removes them completely. All presets support paused, autoplay, and looping playback.
"false""true""controls""controls-hover""controls-hidden""controls-hidden"Playback on load: false pauses (default), true plays once, and loop plays repeatedly. The initial pass starts at time; subsequent passes restart from the beginning. Looping from the recording end starts at the beginning.
"false""true""loop""false"Playback speed from 0.25 to 4 (default: 1). Values outside this range return 400.
"1"Playback position selector. Supports offset, percent, and epoch formats: offset:5000, offset:-5000, percent:50, or epoch:1702900000000. Defaults to offset:0.
"offset:0"Responses
Shareable link details
Revoke a shareable link
Revoke a shareable link created by your organization. Returns 404 if the link does not exist or belongs to another organization.
Authorizations
Bearer token for authentication. Use your private API key as the token.
"Bearer secret_key_rr_1Q6AX5B5218353Q1AQNF2129YH5VAH02"rrweb CLI access token with shareable_links:manage
Parameters
Path Parameters
The shareable link token
"u-LzqJ5W9K8YfG7xD4sN2mR6pB3cA1vH0tEoI_QXwZk"Responses
Shareable link revoked
Open the shared recording player
Open the recording player using a shareable link. No API key is required. A revoked link may remain usable briefly.
Parameters
Path Parameters
The shareable link token
"u-LzqJ5W9K8YfG7xD4sN2mR6pB3cA1vH0tEoI_QXwZk"Query Parameters
Optional exact CDN catalog version of rrweb-player. JavaScript and CSS use the same version. Defaults to the configured CDN channel, resolved to an exact version. Unsupported versions return 400.
"2.1.1"Player layout: omitted or false shows the standard page; true aliases controls. Embed presets fill the container without surrounding page UI: controls keeps controls visible, controls-hover reveals them on hover or keyboard focus (always visible on touch devices), and controls-hidden removes them completely. All presets support paused, autoplay, and looping playback.
"false""true""controls""controls-hover""controls-hidden""controls-hidden"Playback on load: false pauses (default), true plays once, and loop plays repeatedly. The initial pass starts at time; subsequent passes restart from the beginning. Looping from the recording end starts at the beginning.
"false""true""loop""false"Playback speed from 0.25 to 4 (default: 1). Values outside this range return 400.
"1"Playback position selector. Supports offset, percent, and epoch formats: offset:5000, offset:-5000, percent:50, or epoch:1702900000000. Defaults to offset:0.
"offset:0"Responses
Shared recording player HTML page
Get events for a shareable link
Fetch the recording events using a shareable link. No API key is required.
Parameters
Path Parameters
The shareable link token
"u-LzqJ5W9K8YfG7xD4sN2mR6pB3cA1vH0tEoI_QXwZk"Responses
Shared recording events