Skip to content

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
Required
Example"000e8400-e00b-00d0-a716-446655440000"
Format"uuid"

Query Parameters

debug

Enable debug mode

Typestring
Example"true"

Responses

Successfully ingested recording events

Playground

Authorization
Variables
Key
Value

Samples


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
Required
Example"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

Playground

Authorization
Variables
Key
Value
Body

Samples


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
Required
Example"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.

Playground

Authorization
Variables
Key
Value

Samples


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
Required
Example"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"
}
]

Playground

Authorization
Variables
Key
Value

Samples


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..."
}
}
]
}

Playground

Authorization
Variables
Key
Value

Samples


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
Required
Example"000e8400-e00b-00d0-a716-446655440000"
Format"uuid"

Responses

Successfully retrieved recording metadata

application/json
JSON
[
{
"key": "userId",
"value": "user-123",
"timestamp": 1234567890,
"version": 1
}
]

Playground

Authorization
Variables
Key
Value

Samples


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
}

Playground

Authorization

Samples


Powered by VitePress OpenAPI