All three are optional. A session or tags that are not valid are ignored and named in the
X-Runcrate-Ignored response header; the call itself always goes through.
Send them
What is recorded
On the dashboard, Typical time is the median of what the successful calls took and Slowest 1 in 20 the 95th percentile. Below the calls, By model and By end user break the same selection down: calls, failures, typical time, speed and spend.
Read them from code or an agent
The same log is in the API and the MCP server, with the same filters. A key made for coding agents (inference only) can’t read it; use a full API key or sign in with the CLI or MCP.from, to (ISO 8601; the last day by default, 30 days at most), model, key, environment, outcome (ok or error), endpoint, end_user, session, tag (key=value, repeat for several; every one must match), request_id, limit (up to 100) and cursor (the previous page’s meta.cursor). An API key reads its own environment.
Each failed call carries error.message (what happened, and whether anything was billed) and error.next_step (what to do about it), so an agent can act on its own failures. Both endpoints are in the API reference under Model calls.
Download a CSV
Download CSV on the Observability page saves the calls you are looking at, with the same filters, up to 100,000 rows: time, request id, model, status, outcome, timings, tokens, speed, why it stopped, tool calls, cost, environment, key, end user, session and tags.Get told when calls fail
In Settings > Webhooks > Failing model calls, pick a share for an environment (over 5, 10, 25 or 50% failed). When more of that environment’s calls fail over 15 minutes, with at least 20 calls, owners and admins are emailed and every endpoint that takes it gets theinference.errors_high event, at most once every 15 minutes. It is off until you pick a share.