Rate limits and constraints
| Limit | Value |
|---|---|
| Users per request | 1,000 |
| Maximum payload size | 10 MB |
| Request timeout | 10 seconds |
If you need higher limits for bulk imports or high-throughput pipelines, contact us at support@revbridge.ai.
HTTP status codes
| Status | Meaning | Action |
|---|---|---|
202 | Accepted — at least one user was processed successfully | Check users_rejected for partial failures |
400 | Bad Request — invalid payload or all users failed validation | Fix the errors listed in the response and retry |
401 | Unauthorized — missing or invalid API key / customer ID | Verify your Authorization and x-customer-id headers |
405 | Method Not Allowed — wrong HTTP method | Use POST for the ingest endpoint |
413 | Payload Too Large — body exceeds 10 MB | Split your data into smaller batches |
503 | Service Unavailable — temporary processing issue | Retry with exponential backoff |
Error response formats
Validation errors (400 / 202 with rejected users)
When users fail validation, the response includes anerrors array with the index of the failed user and a message describing the issue.
userIndex corresponds to the zero-based position in the users array of your request.
Full-rejection errors (400)
When all users in the request fail validation, the response uses the error format:Authentication errors (401)
Service errors (503)
Troubleshooting
401 — 'unauthorized'
401 — 'unauthorized'
400 — 'invalid JSON body'
400 — 'invalid JSON body'
Possible causes:
- Malformed JSON (missing commas, unclosed brackets, etc.)
- Body is empty or not valid JSON
- Content-Type header is not
application/json
- Validate your JSON with a linter before sending
- Ensure the
Content-Type: application/jsonheader is set - Check that the request body is not empty
400 — 'users array is required and must not be empty'
400 — 'users array is required and must not be empty'
Possible causes:
- The
usersfield is missing from the JSON body - The
usersarray is empty ([])
users array.400 — 'at least one identifier is required'
400 — 'at least one identifier is required'
Possible causes:
- The
identifiersobject is missing or empty - None of the four primary identifiers (
user_id,email,phone_number,anon_id) are present
identifiers object.400 — 'events array is required and must not be empty'
400 — 'events array is required and must not be empty'
Possible causes:
- The
eventsfield is missing from a user object - The
eventsarray is empty
400 — 'event_name is required'
400 — 'event_name is required'
Possible causes:
- An event object is missing the
event_namefield - The
event_namevalue is an empty string
event_name string.400 — 'revenue must be a number'
400 — 'revenue must be a number'
Possible causes:
- The
revenuefield is a string instead of a number - The value is not a valid number
revenue as a numeric value: "revenue": 49.99, not "revenue": "49.99".400 — 'timestamp must be valid ISO 8601'
400 — 'timestamp must be valid ISO 8601'
Possible causes:
- The timestamp is in a non-standard format
- Invalid date values
2026-01-15T14:30:00Z or 2026-01-15T14:30:00.413 — Payload Too Large
413 — Payload Too Large
Possible causes:
- The request body exceeds 10 MB
503 — Service Unavailable
503 — Service Unavailable
Retry strategy
For503 responses and network errors, implement exponential backoff:
