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, or non-POST workflow write succeeded. |
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. |
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 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.
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.
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.