Skip to main content

Overview

Returns simulation sessions with their eval outcomes, newest first. Filter by the agent that was tested and a date range. No simulation id is required, so you can pull results without knowing anything about how a run was set up in the dashboard. Every item deep-links back to the session in the web app.

Endpoint

Authentication

See Authentication.

Query parameters

All filters are optional. Omit them all and you get every session the key’s owner can see.
string
Substring match on the agent’s name or URL. Case-insensitive.
string
ISO 8601 timestamp. Sessions started at or after this moment.
string
ISO 8601 timestamp. Sessions started at or before this moment.
string
Keep only sessions scored by the named eval, e.g. Tone check. Substring match, case-insensitive.
boolean
default:"false"
Return only sessions with at least one failing eval, showing only the failing outcomes.
boolean
default:"false"
Include the conversation turns for each session.
integer
default:"0"
Number of sessions to skip.
integer
default:"50"
Sessions per page. Capped at 500.

Example request

Response

array
The sessions on this page.
integer
Sessions matching the filters, across all pages.
integer
integer
traces is omitted entirely unless include_traces=true. It is an absent key rather than an empty list, which would read as “this session had no turns”.

Failures only

failed_only=true keeps sessions with at least one failing eval and publishes only the failing outcomes, which is the shape you want for a CI gate or an alerting job.
total then counts failing sessions, so pagination walks failures rather than sessions.
Each session’s outcome_summary still describes the whole session. So len(eval_outcomes) equals outcome_summary.failed_count and is deliberately smaller than total_evaluations. Don’t compute a pass rate from the array length.

Pagination

Walk pages with skip and limit until skip + len(items) >= total: