Appearance
Recording
Ingest recording events
POST
/recordings/{recordingId}/ingest
Ingest recording events in batch mode via POST into rrweb cloud. This is available for clients or environments which don't support websocket ingestion.
Authorizations
Public API Key
Public API key for authentication.
TypeHTTP (bearer)
Example
"Bearer ak_1Q8AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Path Parameters
recordingId*
The recording ID
Typestring
RequiredExample
"000e8400-e00b-00d0-a716-446655440000"Format
"uuid"Query Parameters
debug
Enable debug mode
Typestring
Example
"true"Responses
Successfully ingested recording events
Capture recording meta data
POST
/recordings/{recordingId}/meta
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
Public API key for authentication.
TypeHTTP (bearer)
Example
"Bearer ak_1Q8AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Path Parameters
recordingId*
The recording ID
Typestring
RequiredExample
"000e8400-e00b-00d0-a716-446655440000"Format
"uuid"Request Body
application/json
JSON
{
"userId": "user-123",
"orgId": "org-9",
"plan": "pro",
"environment": "production"
}
Responses
Successfully captured recording meta data
Ingest recording events over WebSocket
GET
/recordings/{recordingId}/ingest/ws
Stream recording payloads over a WebSocket connection. This is the default method used in our JavaScript SDK. See WebSocket Ingest for more details, or use the HTTP ingest route for a simpler method.
Authorizations
Public API Key
Public API key for authentication.
TypeHTTP (bearer)
Example
"Bearer ak_1Q8AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Path Parameters
recordingId*
The recording ID
Typestring
RequiredExample
"000e8400-e00b-00d0-a716-446655440000"Format
"uuid"Query Parameters
debug
Enable debug mode
Typestring
Example
"true"contentType
Payload content type. Defaults to application/x-ndjson when omitted.
Typestring
Valid values
"application/x-ndjson""application/ndjson""application/json"Example
"application/x-ndjson"contentEncoding
Optional compression applied to the payload frames. Defaults to identity.
Typestring
Valid values
"gzip""br""zstd"Example
"gzip"Responses
WebSocket upgraded successfully.
Get recording events
GET
/recordings/{recordingId}/events
Get recording events corresponding to one recordingId from rrweb cloud.
Authorizations
Private API Key
Bearer token for authentication. Use your private API key as the token.
TypeHTTP (bearer)
Example
"Bearer ak_1Q6AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Path Parameters
recordingId*
The recording ID
Typestring
RequiredExample
"000e8400-e00b-00d0-a716-446655440000"Format
"uuid"Responses
Successfully retrieved recording events
application/json
JSON
[
{
"type": 3,
"timestamp": 1234567890,
"data": {
"additionalProperties": "string"
},
"sequenceId": 1,
"recordingId": "550e8400-e29b-41d4-a716-446655440000"
}
]
List recordings by metadata
GET
/recordings
Query recordings by metadata filters or by most recent. Multiple filters are combined with AND logic.
Authorizations
Private API Key
Bearer token for authentication. Use your private API key as the token.
TypeHTTP (bearer)
Example
"Bearer ak_1Q6AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Query Parameters
meta
Filter recordings by metadata key-value pairs. Use meta[key]=value syntax (URL-encode keys and values with encodeURIComponent). eg. meta[userId]=user-123&meta[plan]=pro
Typeobject
Example
{
"userId": "user-123",
"plan": "pro"
}limit
Maximum number of results to return (1-100, default: 50)
Typestring
Example
"50"offset
Number of results to skip (default: 0)
Typestring
Example
"0"includeSignedUrls
Include presigned URLs in the response (default: false). When enabled, generates authenticated URLs for recording events that can be used without additional authentication.
Typestring
Example
"true"Responses
Successfully retrieved recordings
application/json
JSON
{
"recordings": [
{
"recordingId": "000e8400-e00b-00d0-a716-446655440000",
"timestamp": 1234567890,
"links": {
"self": "/recordings/000e8400-e00b-00d0-a716-446655440000",
"events": "/recordings/000e8400-e00b-00d0-a716-446655440000/events",
"eventsSigned": "/recordings/000e8400-e00b-00d0-a716-446655440000/events?expires=1735689600&keyId=key-2024-12&signature=a1b2c3d4e5f6..."
}
}
]
}
Get recording metadata
GET
/recordings/{recordingId}
Retrieve all metadata key-value pairs for a recording. This endpoint can be accessed via either Bearer token authentication or presigned URL authentication.
Authorizations
Private API Key
Bearer token for authentication. Use your private API key as the token.
TypeHTTP (bearer)
Example
"Bearer ak_1Q6AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Parameters
Path Parameters
recordingId*
The recording ID
Typestring
RequiredExample
"000e8400-e00b-00d0-a716-446655440000"Format
"uuid"Responses
Successfully retrieved recording metadata
application/json
JSON
[
{
"key": "userId",
"value": "user-123",
"timestamp": 1234567890,
"version": 1
}
]
Get recording statistics
GET
/statistics
Get statistics about recordings including total count, count for this month, and storage usage.
Authorizations
Private API Key
Bearer token for authentication. Use your private API key as the token.
TypeHTTP (bearer)
Example
"Bearer ak_1Q6AX5B5218353Q1AQNF2129YH5VAH02"or
Signature|Expires|KeyId + +
Signature
Signature for authentication. Use your presigned URL as the query parameters.
TypeAPI Key (query: signature)
Expires
Expiration timestamp (UNIX seconds)
TypeAPI Key (query: expires)
KeyId
Signing key identifier
TypeAPI Key (query: keyId)
Responses
Successfully retrieved recording statistics
application/json
JSON
{
"totalRecordings": 1234,
"recordingsThisMonth": 56,
"totalStorageBytes": 1073741824
}