Send your first event in 5 minutes
The fastest path is: create a workspace, create a source, point your producer at the ingest URL, and watch the event arrive in the dashboard.
Axel docs are split into four lanes: get started, primitives, operate, and reference. Each page is short by design — if a page can't be skimmed in 60 seconds, it's split into smaller ones.
The fastest path is: create a workspace, create a source, point your producer at the ingest URL, and watch the event arrive in the dashboard.
Sources accept events. Routes evaluate filter and transform code in a sandbox. Destinations are where clean records land. Idempotency keys make every fan-out safe.
Everything you need to know when something is on fire: replays, dead letters, sandbox breaches, and how to tune queue shards as you grow.
Canonical event payload, queue message shapes, retry policy defaults, and ClickHouse schemas for log queries.
Three commands. Two minutes. One acknowledged event in your dashboard.
curl -X POST https://api.axelapp.ai/v1/sources \
-H "Authorization: Bearer $AXEL_API_KEY" \
-d '{ "name": "stripe-prod", "max_events_per_minute": 600 }'The response includes a per-source ingest token. Store it as a secret in your producer's environment.
POST https://ingest.axelapp.ai/in/{source_id}
x-axel-token: <token>
content-type: application/json
{ "type": "payment_intent.succeeded", ... }The endpoint returns 202 in under 250ms p95. Your event is durable in R2 before the response.
# Open https://app.axelapp.ai
# → Overview shows the event count tick up
# → Usage tab shows the source-level breakdown
# → Deliveries shows any failed attemptsEvery event you accept is searchable in ClickHouse for 30 days, including the raw payload and headers.
The docs are still expanding. If you can't find what you need, email the founders directly — we read every message.