Session ReplaysGet a session timeline (LLM-ready)

Get a session timeline (LLM-ready)

Return a compact, chronological timeline of the session — the AI-summarization view, NOT the raw rrweb stream. Turns the event stream into an ordered sequence of meaningful steps (page journey, dwell time, form submissions, field inputs, identify, and custom events). Replay heartbeat/start markers, engagement pings, web vitals and Replay Vision $recording_observed events (answers about the visit, not steps of it) are dropped. Contains no PII — form and input values are excluded, only field metadata. sessionId must be a UUIDv7 (all recording session ids are). Feed data to a model to summarize what the visitor did and where they dropped off.

With include=logs, each log row keeps its absolute time (t with milliseconds, and timestamp). Inside the timeline (from its first to its last event) it also carries seconds_from_start, measured from the same origin as the events, and in_recording: true. A log before the first or after the last event is still listed, with in_recording: false and no seconds_from_start: it is never clamped onto the session's first or last moment. Event times come from the visitor's browser, log times from your server, so a skewed server clock shifts its log rows.

curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/data/replays/example_string/timeline?location_id=example_string&limit=500&include=logs&log_levels=example_string" \
  -H "Content-Type: application/json" \
  -H "X-Location-Id: example_string" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "success": true,
  "rows": 42,
  "truncated": true,
  "data": [
    {
      "t": "example_string",
      "seconds_from_start": 3.14,
      "timestamp": "2024-12-25T10:00:00Z",
      "in_recording": true,
      "level": "example_string",
      "service": "example_string",
      "uuid": "example_string",
      "trace_id": "example_string",
      "event": "$pageview",
      "path": "example_string",
      "detail": "example_string"
    }
  ],
  "meta": {
    "logs": "ok",
    "logs_count": 10,
    "logs_truncated": true
  }
}
GET
/replays/{sessionId}/timeline
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Agency key (ak_) or location secret key (sk_) as a bearer token. Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need replays:read; the session logs route, and include=logs on the timeline, also need logs:read. See Using an mcp_ key over HTTP.

Agency key (ak_) or location secret key (sk_) as a bearer token. Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need replays:read; the session logs route, and include=logs on the timeline, also need logs:read. See Using an mcp_ key over HTTP.
path
sessionIdstring
Required

The session id from the list endpoint.

query
location_idstring

Alternative to the X-Location-Id header for agency (ak_) keys. Ignored for secret (sk_) keys.

query
limitinteger

Max timeline rows (1–2000).

Max: 2000
query
includestring

logs merges the session's server log records into data (rows with event: log; up to 500, and never past 2000 rows in total). They are added only when the key may read logs (logs:read for an mcp_ key), the plan includes Logs and the location is not HIPAA. Otherwise the timeline is returned without them and meta.logs says why. Without include the response is unchanged.

Options: logs
query
log_levelsstring

With include=logs: comma list of levels to merge, e.g. warn,error,fatal. Default all.

header
X-Location-Idstring

Location to scope the request to. Required for agency (ak_) keys. Ignored for secret (sk_) keys, which resolve their own location.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Agency key (ak_) or location secret key (sk_) as a bearer token. Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need replays:read; the session logs route, and include=logs on the timeline, also need logs:read. See Using an mcp_ key over HTTP.

Path Parameters

sessionIdstring
Required

The session id from the list endpoint.

Query Parameters

location_idstring

Alternative to the X-Location-Id header for agency (ak_) keys. Ignored for secret (sk_) keys.

limitinteger

Max timeline rows (1–2000).

includestring

logs merges the session's server log records into data (rows with event: log; up to 500, and never past 2000 rows in total). They are added only when the key may read logs (logs:read for an mcp_ key), the plan includes Logs and the location is not HIPAA. Otherwise the timeline is returned without them and meta.logs says why. Without include the response is unchanged.

Allowed values:logs
log_levelsstring

With include=logs: comma list of levels to merge, e.g. warn,error,fatal. Default all.

Headers

X-Location-Idstring

Location to scope the request to. Required for agency (ak_) keys. Ignored for secret (sk_) keys, which resolve their own location.

Responses

successboolean
rowsinteger
truncatedboolean

True when the row cap was hit; the most-recent rows (the session outcome) are kept and earlier rows dropped.

dataarray
metaobject

Present only with include=logs.