api.relay.dev · all 14 regions operational

Ship integrations in an afternoon.

Relay is the delivery layer between your product and everything it talks to. One POST hands an event to us; retries, ordering, transforms, and replay are our problem from that millisecond on.

4 min to first delivered event 50k events/mo free, no card SOC 2 Type II · HIPAA-ready
# One call. Every destination you've connected.
curl https://api.relay.dev/v1/events \
  -H "Authorization: Bearer sk_live_9fK3…" \
  -H "Idempotency-Key: ord_58213" \
  -d '{
    "type": "order.created",
    "destination": "crm.sync",
    "payload": { "order_id": "ord_58213", "total_cents": 489900 }
  }'
201 Created POST /v1/events 38 ms

The numbers we page ourselves on.

Live medians from the last 30 days across production traffic. The status page shows the same dashboards we watch — not a softer copy.

0ms
p50 · ingest to deliver

Median time from your POST landing to the destination's 200, measured at the edge.

0%
delivery success · 30d

Includes every retry we made so you didn't have to. Failures land in a dead-letter queue you can replay.

0B
events routed · June

From single webhooks to 40k-events-per-second batch replays, on the same API surface.

0 regions
iad · fra · sin · syd …

Pin traffic to a region and it never leaves. EU events can live in fra + ams, full stop.

Six primitives

Everything between "it happened" and "everyone knows."

Each one is an API first and a dashboard second. Compose them; we never make you adopt the whole platform to use one piece.

01

Connectors

140+ maintained destinations — warehouses, queues, CRMs, plain webhooks. Auth, pagination and rate limits are our code, not yours.

02

Event streams

Ordered per key, exactly-once to each destination. Fan one event out to twelve consumers without twelve producers.

03

Transforms

Reshape payloads in flight with JS or WASM modules — versioned, testable against captured traffic, deployed in one commit.

04

Retries & replay

Exponential backoff with jitter by default; a dead-letter queue you can inspect; replay any window of traffic to any destination, months later.

05

Sandbox

A full parallel environment with synthetic traffic generators. Break things on sk_test_ keys; production never notices.

06

Observability

Every event carries its full delivery history: attempts, latencies, response bodies. Trace one order from POST to warehouse row.

The whole model

01Connect.

Point your systems at one endpoint. Register destinations once — a webhook URL, a Kafka topic, a Postgres table, a warehouse — and Relay learns their auth, their limits, their moods.

relay destinations add crm.sync --url https://crm.internal/hooks

02Transform.

Payloads rarely match on both ends. Write a ten-line transform, test it against last Tuesday's real traffic in the sandbox, and ship it with your normal deploy.

relay transforms test rename-fields --replay 2026-06-23

03Deliver.

We chase the 200 so you don't. Backoff, ordering, idempotency and the dead-letter queue are defaults, not a quarter of platform work. When a destination heals, its backlog drains itself.

delivered=1,204,318 · retried=2,911 · dead-lettered=7 · today
The surface area

Eight endpoints. That's the API.

Everything else — dashboards, CLI, Terraform provider — is built on these same routes with the same keys. p50 latencies are 30-day production medians.

MethodRouteWhat it doesp50
POST/v1/eventsIngest one event; fan out to every matched destination38 ms
POST/v1/events/batchUp to 5,000 events per call, atomically accepted61 ms
GET/v1/events/{id}Full delivery history: attempts, latencies, response bodies24 ms
POST/v1/destinationsRegister a webhook, queue, database or warehouse45 ms
GET/v1/destinations/{id}/healthLive success rate, backlog depth and drain estimate22 ms
POST/v1/replaysRe-deliver any window of traffic, up to 40k events/s57 ms
GET/v1/schemas/{type}Versioned JSON Schema for any event type you've sent19 ms
DEL/v1/keys/{id}Revoke a key across all regions in under a second31 ms

Versioned by date — you're reading v2026-06-18. Old versions keep working; we've never removed one.

Pricing

Metered on events, not seats. Your whole team ships.

Build
$0

For side projects and the proof-of-concept you're starting tonight.

  • 50,000 events / month
  • 2 destinations, all 140+ connectors
  • 3-day replay window
  • Shared regions (iad, fra, sin)
  • Community forum support
Start free
Scale Most teams
$99/mo

5M events included, then $0.20 per 10,000. No per-seat math, ever.

  • Unlimited destinations & transforms
  • 30-day replay window
  • Region pinning on any of the 14
  • 99.95% uptime SLO with credits
  • Support with a 4-hour first response
Start a 14-day trial
Dedicated
Custom

Single-tenant cells for regulated traffic and ten-figure event volumes.

  • Isolated compute, your cloud or ours
  • 13-month replay retention
  • 99.99% SLA, HIPAA BAA, EU data residency
  • Shared incident channel with our SREs
  • Migration engineering included
Talk to an engineer

"We replaced 4,100 lines of retry-and-queue glue with nine lines of Relay. Our integration backlog was fourteen connectors deep; it cleared in one quarter."

Maya OkonkwoStaff Engineer, Loamworks — logistics APIs, 480M events/mo

Changelog All entries →

Batch replay GA

Re-send any traffic window at up to 40,000 events/s, rate-shaped so you can't hurt your own destination.

Go SDK v3

Context-first API, zero-allocation encoder, 41% faster on our reference workload.

Region pinning GA

Keep EU traffic inside fra + ams end to end — including retries and dead-letter storage.

WASM transforms

Bring modules up to 5 MB in any language that compiles to WASM. Rust and Zig templates in the CLI.

Your first event, delivered in four minutes.

Free tier, no card, no sales call. If you're not in production in a week, tell us why — we read every reply to that email.

npm install @relay/sdk

also: pip install relay-sdk · go get relay.dev/sdk/v3 · cargo add relay