---
title: "Get Session Analytics"
method: GET
path: "/v1/sessions/{id}/analytics"
tags: ["v1"]
---

# Get Session Analytics

`GET /v1/sessions/{id}/analytics`

## Request

- Base URL: `https://api.ellipsis.dev`
- URL: `https://api.ellipsis.dev/v1/sessions/{id}/analytics`
- Auth: HTTP bearer

Measured tokens and spend over time, plus estimated content cost.

Token lanes use the request's saved rates. Content attribution
apportions input/cache spend by text size, counting carried context
on every request. It is an estimate, not a tool call fee.
Only the latest 200 retained request bodies are inspected; missing
or unsupported context remains explicitly unattributed. No raw
prompts or tool results are returned. Session tokens may read only
their own session's analytics.

## Path parameters

- `id` string, required

## Headers

- `user-agent` string, nullable

## Response `200`

Successful Response

- SessionAnalytics
  - `attributed_requests` integer, required
  - `attribution` SessionCostCategory[], required: Estimated input content cost by serialized text size, allocated from measured input/cache spend. Repeated context is counted on every request. Output and compute remain separate. These estimates never affect billing.
    - `charged` integer, required
    - `items` SessionSpendItem[], required
      - `charged` integer
      - `cost` integer
      - `key` string, required
      - `label` string, required
      - `tokens` integer
    - `key` string, required
    - `label` string, required
  - `attribution_request_limit` integer, required: Maximum recent stored request bodies inspected. Older, missing, multimodal, or incomplete context is left unattributed.
  - `bucket_seconds` integer, required
  - `charged` integer, required
  - `historical_entries` integer, required: Carried-forward billing totals without per-request measurements. Included in spend, excluded from the timeline and request counts.
  - `pending_requests` integer, required
  - `requests` integer, required
  - `series` SessionUsageBucket[], required
    - `cache_read_tokens` integer
    - `cache_write_tokens` integer
    - `charged` integer
    - `date` string, date-time, required
    - `input_tokens` integer
    - `output_tokens` integer
    - `requests` integer
  - `spend` SessionSpendItem[], required: Measured token lanes priced using each request's saved rate card, plus compute. Rounding is reconciled to the ledger.
    - `charged` integer
    - `cost` integer
    - `key` string, required
    - `label` string, required
    - `tokens` integer
  - `tools` SessionToolCount[], required: Tool invocations from retained session records. These counts are not tool call charges; third-party tool fees are not metered.
    - `calls` integer, required
    - `name` string, required
  - `unresolved_requests` integer, required

## Other responses

- `401`: The bearer token is missing, invalid, or revoked.
- `403`: The credential may not perform this action, or the account is blocked.
- `422`: Validation Error

---

[API](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api.md) - [All operations](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/revisions/344b16df9a1a?raw)
