Docs

Send an event in one request

Every project gets an ingestion URL and an API key. POST JSON to it, and API Rabbits takes care of validating, logging, and delivering to every active Rabbit configured for that project.

Endpoint

POST https://apirabbits.com/api/v1/p/{project-slug}

Authentication

Pass your project's API key as a bearer token. Keys are scoped to a single project and are created from your dashboard.

Authorization: Bearer rk_live_...

Example request

curl -X POST https://apirabbits.com/api/v1/p/product-signups \
  -H "Authorization: Bearer rk_live_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: signup-8841" \
  -d '{
    "email": "sam@acme.com",
    "plan": "pro"
  }'

Example response

202 Accepted

{
  "eventId": "evt_01hx...",
  "status": "accepted",
  "rabbitsMatched": 3
}

A 202 response means the event was accepted and delivery has started — it does not wait for any destination to respond. Check the activity log in your dashboard for per-destination delivery status.

Idempotency

Pass an Idempotency-Key header to safely retry a send. If the same key is used again for the same project, the original event is returned with "status": "duplicate" instead of triggering a second delivery run.

Limits

  • Maximum payload size: 256KB.
  • Requests per minute are capped per project, based on your plan.
  • Monthly event volume is capped per account, based on your plan.

Response codes

401Missing, malformed, or invalid/revoked API key.
404Project not found, or the URL slug does not match the key’s project.
400Request body is not valid JSON, or the recursion (hop) limit was exceeded.
413Payload exceeds the 256KB size limit.
402Monthly event limit for the account’s plan has been reached.
429Rate limit exceeded for this project. See the Retry-After header.
202Accepted — the event was recorded and fan-out delivery has started.