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