Chronicle Labs API is currently in beta. Reach out for access
OVERVIEW
Chronicle API
Chronicle records workflow events, simulates production behavior for AI agents, and produces correction artifacts before go-live.
npm install @chronicle-labs/sdkBase URL
All API requests are made to the following base URLs. Use sandbox for development and testing.
# Production
https://api.chronicle-labs.dev/v1
# Sandbox
https://sandbox-api.chronicle-labs.dev/v1Endpoints
| Method | Path | Status |
|---|---|---|
POST | /v1/events | Beta |
POST | /v1/events/batch | Beta |
GET | /v1/events | Planned for public GA |
GET | /v1/events/stream | Planned for public GA |
POST | /v1/sources | Beta |
GET | /v1/sources | Beta |
GET | /v1/sources/{id} | Beta |
GET | /v1/sources/{id}/catalog | Beta |
POST | /v1/agents | Beta |
GET | /v1/agents | Beta |
GET | /v1/agents/{id} | Beta |
POST | /v1/traces | Beta |
GET | /v1/traces | Beta |
GET | /v1/traces/{id} | Beta |
POST | /v1/traces/{id}/labels | Beta |
GET | /v1/traces/{id}/artifacts | Beta |
GET | /v1/artifacts | Beta |
GET | /v1/artifacts/{id} | Beta |
POST | /v1/webhooks/{source_id} | Beta |
HEAD | /v1/webhooks/{source_id} | Beta |
Core objects
- Event - immutable record of a workflow occurrence from your system.
- Agent - registered AI agent with its goal, instructions, tool definitions, and configuration.
- Trace - full execution log of what an agent saw and did during a simulation run.
- Artifact - structured correction output generated from a validated trace failure.
- Source - provider-specific adapter with an event catalog and optional webhook handler.
- Tenant - namespace for data isolation, querying, and replay.
ID conventions
All resource IDs are ULIDs for sortability. Most resources use a type prefix: evt_ for events, agt_ for agents, trc_ for traces, art_ for artifacts, lbl_ for labels, src_ for sources. The prefix makes it easy to identify a resource type from its ID alone.
Pagination
All list endpoints accept limit (default 25, max 1000) and offset (default 0) query parameters. Every list response includes count (total matching items) and has_more (boolean indicating additional pages exist).