---
title: "Get a session's timeline"
method: GET
path: "/v1/sessions/{sessionId}/events"
tags: ["Sessions"]
---

# Get a session's timeline

`GET /v1/sessions/{sessionId}/events`

## Request

- Base URL: `https://api.ironfang.com/analytics`
- URL: `https://api.ironfang.com/analytics/v1/sessions/{sessionId}/events`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Everything that happened in the session: its pages, events, and recordings starting and ending, in the order they happened by the browser's own clock (which every tab of a session shares), then each tab's own order; never in the order they arrived. A session holds at most 300 pages and 1,000 events, so the timeline comes whole. Needs analytics.sessions.read.

## Query parameters

- `type` string

## Response `200`

The timeline

- object
  - `events` TimelineItem[], required
    - `offset_ms` integer, nullable, required: Where in that recording's replay it happened, when it can be played.
    - `recording_id` string, uuid, nullable, required: The recording that saw this moment.
    - `replay` 'available' | 'recording' | 'expired' | 'deleted' | 'discarded' | 'unplayable' | 'not_recorded', required: Whether this moment can be watched: available; recording, in a recording still open; expired, deleted, discarded (too short or without interaction) or unplayable, a recording saw it and cannot be played; not_recorded, no recording covers it.
    - `at` string, date-time, required
    - `column` integer, nullable, required
    - `duration_ms` integer, nullable, required: A request's time from its start, which is its at.
    - `id` string, required
    - `kind` string, nullable, required: A page's kind; hidden or visible; an error's kind (error, rejection, console); a request's initiator (fetch, xhr, script, img, link, other); or why a recording ended.
    - `line` integer, nullable, required
    - `message` string, nullable, required: An error's message, scrubbed of email addresses and long numbers.
    - `name` string, nullable, required: An error's name, a request's method or a custom event's name.
    - `outcome` 'success' | 'http_error' | 'network_error' | 'timeout' | 'aborted' | 'opaque' | 'load_failed' | 'null', nullable, required: A request's outcome. network_error: no answer, and the browser does not say why (offline, DNS, refused, CORS). opaque: a cross-origin answer whose status the browser hides. load_failed: a script, image or stylesheet that did not load; the browser does not say whether a server answered. aborted: the page stopped it, which is not a failure.
    - `page_id` string, uuid, nullable, required
    - `path` string, nullable, required: The page it happened on.
    - `properties` object, nullable, required: A custom event's properties.
    - `repeats` integer, nullable, required: How many times an error happened on its page.
    - `stack` string, nullable, required: An error's stack: at most 12 frames, addresses without their query, scrubbed as messages are. Cleared with messages at the recording retention.
    - `status` integer, nullable, required: A request's status, when the browser exposed one: only for success and http_error. Null otherwise; never a made-up 0.
    - `tab` integer, required
    - `type` 'page' | 'visibility' | 'error' | 'request' | 'custom' | 'recording_started' | 'recording_ended', required
    - `url` string, nullable, required: A request's address or an error's source, under the site's query rules.

## Other responses

- `400`: An unknown, repeated or malformed query parameter (`invalid_query`).
- `401`: No credential, an invalid one, an expired partner integration key, or a delegated token where none is accepted (`unauthorized`, `invalid_api_key`, `api_key_expired`, `delegated_not_allowed`).
- `403`: The credential lacks the permission or scope, names another organisation, or belongs to a partner integration that is not active (`forbidden`, `insufficient_scope`, `integration_inactive`).
- `404`: No such object in this organisation (`not_found`).

---

[API](https://skmtc.dev/ironfang/apis/ironfang-analytics-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-analytics-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-analytics-api/revisions/08197080c3d7?raw)
