https://api.mirador.org and require a server key. Responses are scoped to the key’s project.
This page is the practical reference. For the exact, always-current contract —
including the full polymorphic event-payload schema — use the
Swagger UI,
OpenAPI spec, or
llms.txt.Identity
GET /v1/identity
Confirm a key resolves to an org/project. Cheap — no backend lookup. Good for health checks and key validation.
Metadata
Use these to discover the real field universe of a project before composing a filter.GET /v1/metadata/tags
GET /v1/metadata/attributes
GET /v1/metadata/attributes/{key}
Lists every value seen for one attribute key. Returns 404 (ATTRIBUTE_NOT_FOUND) if the key was never observed.
Traces
GET /v1/traces
List, filter, count, and page through traces.
Paginated response (when
per_page is set):
GET /v1/traces/{trace_id}
The full summary for one trace. Returns 404 (TRACE_NOT_FOUND) if it doesn’t exist in this project.
This endpoint returns the trace summary — it does not include the event
timeline. For events, call
GET /v1/traces/{trace_id}/events. To assemble a
complete trace export, combine both — see Exporting traces.GET /v1/traces/{trace_id}/events
The complete, ordered event timeline for one trace, returned in a single response.
payload is polymorphic — its shape is determined by event_type. There are 40+ event types across two categories:
- Trace-level events (
started,finished,info_event_added,warn_event_added,error_event_added,attributes_updated,tags_updated,rule_match_added,trace_closed,trace_deleted) describe the trace itself and carry nochain. - Plugin events (EVM/Solana/Canton transactions and receipts, bridge detected/matched, Safe message/transaction lifecycle, relay quote/deposit/fill/refund, tx hints) are emitted by resolvers tracking a specific flow. Each nests chain identity under
payload.chain(caip2is canonical) and carries aplugin_correlation_idyou can group by to reconstruct one lifecycle.
The full
event_type → payload mapping is the TraceEvent oneOf in the
OpenAPI spec. The
llms.txt brief documents the most common
payloads inline. Treat unfamiliar event_type values defensively — the plugin
list is open and grows without breaking the envelope shape.Filtering
filter is an AIP-160 expression. Supported fields:
Combinators:
AND, OR, NOT.
ANDworks across fields.ORonly works between leaves on a single field —status="running" OR status="completed"✅;status="x" OR severity="error"❌.NOTinverts a single leaf.- Quote every value with double quotes. Dotted attribute keys take the explicit-quoted form:
attribute."header.country"="US".
filter value when issuing the request (spaces → %20, = → %3D, " → %22).
Errors
Every error uses a typed envelope. Switch onerror.code, not on the human-readable message.
Next Steps
Exporting traces
Combine endpoints to export a full trace into tickets
Best Practices
Patterns for SDKs, automations, and the REST API