Errors and rate limits
Interpret API errors, respect request limits, and resolve workflow conflicts.
Last updated
HTTP status codes
| Status | Meaning and next step |
|---|---|
200 |
A read, update, logo upload, organization deletion, or non-POST workflow write succeeded. Organization exports return an Excel file. |
201 |
A record was created, or a POST workflow succeeded. |
204 |
An inventory record was deleted; there is no body to parse. |
401 |
Missing, invalid, expired, revoked, or wrong token type. Check the bearer token. |
403 |
Missing permission, inactive user, or the creator no longer has administrator access. Check token and account access. |
404 |
The record or child is unavailable in this token’s organization. Check the ID and organization. |
409 |
State, chronology, concurrency, or idempotency conflict. Read the message and refresh the relevant record. |
422 |
Invalid fields, unsupported input, missing required key, or a future-dated state change. Correct the request. |
429 |
A token or organization rate limit was reached. Wait and retry. |
503 |
Billing invoices are temporarily unavailable. Retry with backoff; code is billing_unavailable. |
5xx |
Server failure. Retry reads with backoff; use the original idempotency key for workflow retries. |
Always send Accept: application/json. Errors generally contain message; validation errors also contain an errors map. Do not assume every error has that map.
Validation example
{
"message": "The first name field is required.",
"errors": {
"first_name": ["The first name field is required."]
}
}
Messages depend on which validation failed. Inspect the HTTP status and individual field errors. Unsupported body fields are rejected, and an empty record or organization update or to-do/space PATCH returns 422.
Rate limits
The customer API allows 60 requests per minute per token and 300 requests per minute per organization, shared across the organization’s customer tokens. Both limits apply to reads and writes, including options requests.
Organization Excel downloads have an additional limit of 10 requests per minute per token. They still count toward the standard token and organization limits.
Billing invoice reads have an additional limit of 30 requests per minute per organization, shared across its tokens. The billing summary uses only the standard API limits.
When throttled, wait for Retry-After when present. Use capped exponential backoff with jitter for transient failures. Fetch up to 100 items per page to reduce request volume, and retain workflow keys across retries. Requests that fail authorization may be rejected before reaching the limiter.
Invitation creation adds a limit of 20 requests per minute per token, and resending adds 6 per minute per token. Creation and resend also share a 60-per-minute organization limit. These apply in addition to the standard customer API limits.
State and plan constraints
API creation and reactivation respect the organization’s plan limits. A valid token does not override those limits or category validation. Workflow choice endpoints help discover the IDs and required fields available to your organization.
Effective state changes cannot be scheduled in the future (422) or precede newer relevant changes (409). Use a current timestamp or omit event_date to use the current time. The specific endpoint explains which states it accepts—for example, recurring subscriptions use cancel, while purchased and free subscriptions use retire.
Get help
Keep the HTTP method, endpoint path, status, and response message when diagnosing an integration. Remove Authorization headers and personal data before sharing logs. Contact AssetCenter with the failing operation and its response if the endpoint documentation does not resolve it.