Skip to main content

Rate limits and constraints

If you need higher limits for bulk imports or high-throughput pipelines, contact us at support@revbridge.ai.

HTTP status codes

Error response formats

Validation errors (400 / 202 with rejected users)

When users fail validation, the response includes an errors array with the index of the failed user and a message describing the issue.
The 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

Possible causes:
  • Missing Authorization header
  • API key does not start with Bearer prefix
  • Invalid or revoked API key
  • Missing x-customer-id header
  • The API key does not belong to the specified customer ID
Resolution:
  1. Verify you are sending both headers: Authorization: Bearer <KEY> and x-customer-id: <ID>
  2. Check that your API key is active in Settings → API Keys
  3. Ensure the customer ID matches the account that owns the API key
Possible causes:
  • Malformed JSON (missing commas, unclosed brackets, etc.)
  • Body is empty or not valid JSON
  • Content-Type header is not application/json
Resolution:
  1. Validate your JSON with a linter before sending
  2. Ensure the Content-Type: application/json header is set
  3. Check that the request body is not empty
Possible causes:
  • The users field is missing from the JSON body
  • The users array is empty ([])
Resolution: Include at least one user object in the users array.
Possible causes:
  • The identifiers object is missing or empty
  • None of the four primary identifiers (user_id, email, phone_number, anon_id) are present
Resolution: Add at least one primary identifier to the user’s identifiers object.
Possible causes:
  • The events field is missing from a user object
  • The events array is empty
Resolution: Include at least one event for each user.
Possible causes:
  • An event object is missing the event_name field
  • The event_name value is an empty string
Resolution: Every event must have a non-empty event_name string.
Possible causes:
  • The revenue field is a string instead of a number
  • The value is not a valid number
Resolution: Send revenue as a numeric value: "revenue": 49.99, not "revenue": "49.99".
Possible causes:
  • The timestamp is in a non-standard format
  • Invalid date values
Resolution: Use ISO 8601 format: 2026-01-15T14:30:00Z or 2026-01-15T14:30:00.
Possible causes:
  • The request body exceeds 10 MB
Resolution: Split your data into smaller batches. Reduce the number of users per request or remove unnecessary properties.
Possible causes:
  • Temporary service disruption
Resolution: Retry the request with exponential backoff. Start with a 1-second delay and double it on each retry, up to a maximum of 60 seconds. Check status.revbridge.ai for any ongoing incidents.

Retry strategy

For 503 responses and network errors, implement exponential backoff:
Only retry on 503 and network errors. Do not retry 202 responses — even if some users were rejected, the accepted users were already processed. Fix the rejected users and send them in a new request.