AI observability
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
GET | |
POST | |
GET | |
PATCH | |
POST | |
POST | |
GET | |
GET | |
POST | |
GET | |
PATCH | |
POST | |
POST | |
GET | |
GET | |
POST | |
GET | |
POST | |
POST |
List all llm analytics personal spend
Return a structured personal LLM spend analysis for the requesting user. Pass date_from / date_to (absolute like 2026-04-23 or relative like -7d) to bound the window — defaults to the last 30 days, max 90 days. The product=<ai_product> query param is required and scopes the tool / model / day / trace breakdowns to a single product; supported values: posthog_code. by_product is always returned for cross-product visibility. by_day returns a day-ascending spend series for the scoped product. Pass bucket_minutes (5, 15, 30, or 60; the window may span at most 600 buckets) to additionally get by_bucket, a time-ascending series with per-bucket cost split into uncached input / output / cache read / cache creation components. Use refresh=true to bypass the 5-minute response cache.
Required API key scopes
user:readQuery parameters
- bucket_minutesintegerOne of:
"5""15""30""60" - date_fromstringDefault:
-30d - date_tostring | null
- limitintegerDefault:
50 - productstring
- refreshbooleanDefault:
false
Example request
GET /api /llm_analytics /@me /spendExample response
Status 200
Status 400
Status 401
Status 403
Status 404
Status 429
List all dataset items
List a dataset's current items or its exact contents at a prior revision.
Required API key scopes
dataset:readQuery parameters
- archivedbooleanDefault:
false - datasetstring
- limitinteger
- offsetinteger
- revisioninteger
Response
Example request
GET /api /projects /:project_id /dataset_itemsExample response
Status 200
Create dataset items
Create an item and its first immutable version. An identical client item ID retry returns the existing item. A different payload or an archived match returns a conflict.
Required API key scopes
dataset:writeRequest parameters
- datasetstring
- client_item_idstring | null
- input
- expected_output
- source_output
- metadataobject
- source_trace_idstring | null
- source_event_idstring | null
- source_timestampstring | null
Response
Example request
POST /api /projects /:project_id /dataset_itemsExample response
Status 200
Status 201
Status 409
Retrieve dataset items
Retrieve the current item version or the version visible at an exact dataset revision.
Required API key scopes
dataset:readPath parameters
- dataset_item_idstring
Query parameters
- revisioninteger
Response
Example request
GET /api /projects /:project_id /dataset_items /:dataset_item_idExample response
Status 200
Update dataset items
Create a new immutable item version from editable fields.
Required API key scopes
dataset:writePath parameters
- dataset_item_idstring
Response
Example request
Example response
Status 200
Status 409
Create dataset items
Archive an active item by creating a new immutable version.
Required API key scopes
dataset:writePath parameters
- dataset_item_idstring
Request parameters
- base_versioninteger
Response
Example request
POST /api /projects /:project_id /dataset_items /:dataset_item_id /archiveExample response
Status 200
Status 409
Create dataset items
Restore an archived item by copying content into a new immutable version.
Required API key scopes
dataset:writePath parameters
- dataset_item_idstring
Request parameters
- base_versioninteger
- source_versioninteger | null
Response
Example request
POST /api /projects /:project_id /dataset_items /:dataset_item_id /restoreExample response
Status 200
Status 409
List all dataset items versions
List every immutable version of an item, newest first.
Required API key scopes
dataset:readPath parameters
- dataset_item_idstring
Query parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /dataset_items /:dataset_item_id /versionsExample response
Status 200
List all datasets
List active datasets by default, or archived datasets when requested.
Required API key scopes
dataset:readQuery parameters
- archivedbooleanDefault:
false - id__inarray
- limitinteger
- offsetinteger
- order_bystringDefault:
-created_atOne of:"created_at""-created_at""updated_at""-updated_at" - searchstring
Response
Example request
GET /api /projects /:project_id /datasetsExample response
Status 200
Create datasets
Create an empty dataset. Its first revision is created with its first item.
Required API key scopes
dataset:writeRequest parameters
- namestring
- descriptionstringDefault:
- metadataobject
Response
Example request
POST /api /projects /:project_id /datasetsExample response
Status 201
Status 409
Retrieve datasets
Retrieve an active or archived dataset.
Required API key scopes
dataset:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /datasets /:idExample response
Status 200
Update datasets
Update descriptive dataset fields without changing its revision.
Required API key scopes
dataset:writePath parameters
- idstring
Request parameters
- namestring
- descriptionstring
- metadataobject
Response
Example request
PATCH /api /projects /:project_id /datasets /:idExample response
Status 200
Status 409
Create datasets
Archive a dataset. Archived datasets remain readable and reject item mutations.
Required API key scopes
dataset:writePath parameters
- idstring
Response
Example request
POST /api /projects /:project_id /datasets /:id /archiveExample response
Status 200
Create datasets exports
Create an asynchronous JSONL export pinned to an immutable dataset revision.
Required API key scopes
dataset:readPath parameters
- idstring
Request parameters
- revisioninteger
Response
Example request
POST /api /projects /:project_id /datasets /:id /exportsExample response
Status 201
Status 409
Retrieve datasets exports
Check the status of a dataset export created by the current user.
Required API key scopes
dataset:readPath parameters
- export_idstring
- idstring
Response
Example request
GET /api /projects /:project_id /datasets /:id /exports /:export_idExample response
Status 200
Retrieve datasets exports content
Download a completed dataset JSONL export.
Required API key scopes
dataset:readPath parameters
- export_idstring
- idstring
Example request
GET /api /projects /:project_id /datasets /:id /exports /:export_id /contentExample response
Status 200
Status 409
Create datasets
Restore an archived dataset without changing its item states.
Required API key scopes
dataset:writePath parameters
- idstring
Response
Example request
POST /api /projects /:project_id /datasets /:id /restoreExample response
Status 200
List all datasets revisions
List immutable dataset revisions, newest first.
Required API key scopes
dataset:readPath parameters
- idstring
Query parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /datasets /:id /revisionsExample response
Status 200
Create llm analytics offline evaluations experiment items
Required API key scopes
evaluation:readRequest parameters
- experiment_idstring
- date_fromstring | null
- date_tostring | null
Response
Example request
POST /api /projects /:project_id /llm_analytics /offline_evaluations /experiment_itemsExample response
Status 200
Status 400
Status 500
Create llm analytics summarization
Generate an AI-powered summary of an LLM trace or event.
This endpoint analyzes the provided trace/event, generates a line-numbered text representation, and uses an LLM to create a concise summary with line references.
Two ways to use this endpoint:
- By ID (recommended): Pass
trace_idorgeneration_idwith an optionaldate_from/date_to. The backend fetches the data automatically.summarize_typeis inferred. - By data: Pass the full trace/event data blob in
datawithsummarize_type. This is how the frontend uses it.
Summary Format:
- Title (concise, max 10 words)
- Mermaid flow diagram showing the main flow
- 3-10 summary bullets with line references
- "Interesting Notes" section for failures, successes, or unusual patterns
- Line references in [L45] or [L45-52] format pointing to relevant sections
The response includes the structured summary, the text representation, and metadata.
Required API key scopes
llm_analytics:writeRequest parameters
- summarize_type
- modeDefault:
minimal - data
- force_refreshbooleanDefault:
false - compact_contextbooleanDefault:
false - modelstring | null
- trace_idstring
- generation_idstring
- date_fromstring | null
- date_tostring | null
Response
Example request
POST /api /projects /:project_id /llm_analytics /summarization