Skip to main content
Mirrors exposes two programmatic surfaces:
  • POST /api/collect: the trace ingest endpoint the collectors speak. You can also post to it directly.
  • /v1/…: the versioned public API for your own apps. List mirrors, inspect them, run queries against them, and check usage.
Base URL for both:

How do I authenticate against the Mirrors API?

Send a workspace API key (mk_live_…) as a bearer token on every request. Keys are minted in the dashboard under Settings → API keys, and the same key works on both surfaces:
Everything is scoped to the key’s workspace: an environment slug that exists in another workspace returns 404, never data. More on keys: API keys & authentication.

How is the Mirrors API versioned?

The public API is versioned under /v1 so the contract can evolve without breaking clients. The collect endpoint (/api/collect) is unversioned and stable.

What are the rate limits and quotas?

/v1 runs share the same path as the Playground: plan entitlements, environment capacity quotas, and per-workspace rate limiting all apply. Rate-limited requests return 429; check your allowance with GET /v1/usage or mirrors usage.

Are API runs reproducible?

Query runs support deterministic seeding: the same seed and instructions produce a byte-identical world, so results are reproducible across runs. See POST /v1/envs/{slug}/query.