Ingest a batch of session replay events
Authorization
ApiKeyAuth Raw API key for SDK ingestion endpoints. The backend validates this key and resolves the associated project automatically.
Send the raw key as-is.
Example: seestack_live_abc123xyz...
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:8080/ingest/v1/replay" \ -H "Content-Type: application/json" \ -d '{ "fingerprint": "sess_8f3a2c1b", "sessionId": "sess_8f3a2c1b", "events": [ { "eventType": "navigation", "eventData": "{\\"from\\":\\"/home\\",\\"to\\":\\"/checkout\\",\\"method\\":\\"push\\"}", "url": "https://myapp.com/checkout", "timestampMillis": 1711886400000 }, { "eventType": "mouse_click", "eventData": "{\\"x\\":512,\\"y\\":340,\\"target\\":\\"button#place-order\\"}", "url": "https://myapp.com/checkout", "timestampMillis": 1711886405123 }, { "eventType": "input", "eventData": "{\\"field\\":\\"card-number\\",\\"value\\":\\"[MASKED]\\"}", "url": "https://myapp.com/checkout", "timestampMillis": 1711886407800 } ] }'{
"success": true,
"data": {
"eventsReceived": 3
},
"meta": {
"requestId": "9e1f8891-9647-62fg-b66d-g29he3h12cg9",
"timestamp": "2026-03-31T12:00:05.123Z"
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid or missing API key"
},
"meta": {
"requestId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"timestamp": "2026-03-31T12:00:00.000Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"details": {
"exceptionClass": "must not be blank",
"level": "must match \"debug|info|warn|error|fatal|warning\""
}
},
"meta": {
"requestId": "8d0e7780-8536-51ef-a55c-f18gd2g01bf8",
"timestamp": "2026-03-31T12:00:00.000Z"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
},
"meta": {
"requestId": "9e1f8891-9647-62fg-b66d-g29he3h12cg9",
"timestamp": "2026-03-31T12:00:00.000Z"
}
}HTTP Requests POST
Ingest HTTP request telemetry for both inbound and outbound calls. Supports batching — up to 100 items per request.
Heartbeat POST
Send cron job heartbeat pings. Call this at the end of every scheduled task execution. The `slug` must match an existing cron monitor created in the SeeStack management console.