Errors & Rate Limits
This page describes the most common response codes and integration patterns to handle when using the NeuralVerge API.Common status codes
400 Bad Request
The request body or parameters are invalid. Typical causes:- missing required fields
- invalid JSON
- invalid UUID, URL, email, or phone format
- unsupported option values
401 Unauthorized
Authentication failed. Typical causes:- missing
Authorizationheader - invalid bearer token format
- expired or invalid token
402 Payment Required
The operation cannot proceed because of plan or usage limits. Typical causes:- points limit exceeded
- inactive subscription
- expired subscription
404 Not Found
The requested resource does not exist or is not available to the current user. Typical causes:- invalid
session_id - missing agent
- inaccessible resource
429 Too Many Requests
The request was queued but could not be started within the queue timeout. Typical causes:- your organization’s requests-per-second limit is saturated
- your organization’s concurrent request limit is saturated
- a specific endpoint’s own per-function rate limit is saturated
500 Internal Error
An internal processing error occurred. Typical causes:- upstream provider issues
- temporary service failure
- unexpected backend processing error
Rate limits
Rate limits apply per organization — they’re shared across every API key and user in your organization, not tracked per key. Instead of rejecting a request the instant a limit is hit, NeuralVerge queues it (oldest request first, per endpoint) and starts it as soon as capacity frees up. A request only fails with429 Too Many Requests if it’s still waiting after 60 seconds in the queue. Under normal load this queueing is invisible — it just means an occasional call takes a little longer to start, not that it fails.
Three limits are enforced together, checked in this order:
Higher organization-wide limits can be configured on your account — reach out if your integration needs sustained throughput above the defaults.
Handling 429
- Back off and retry — the queue timeout means the request never ran, so it’s always safe to retry
- Use exponential backoff rather than retrying immediately in a tight loop
- If you’re regularly hitting the queue timeout, spread requests out over time instead of bursting them
Polling asynchronous jobs
For async endpoints:- Call the run endpoint
- Save the returned
session_id - Poll
Get Session Status - Stop polling when the status becomes
completeorfailed
Recommended polling interval
A practical polling strategy is:- poll every 2 to 5 seconds
- set a reasonable overall timeout
- log the last known status
- handle temporary failures gracefully
Retry guidance
Retries are useful for:- temporary network errors
- intermittent
500responses - short-lived upstream issues
429responses, after a backoff — see Handling 429
400401402404