Status Codes and Meaning
401 - Unauthorized
A 401 Unauthorized error means the request lacks valid authentication credentials. This occurs if the authorization token has expired or if the API client ID or API key is invalid.
How to resolve:
- Check and correct your API key or client ID values.
- Refresh the authorization token.
{
"error": "invalid_client"
}403 - Forbidden
A 403 Forbidden error indicates that the server understood the request but refuses to authorize it. This usually happens when required user group permissions or scopes are missing, or if the API endpoint is incorrect.
How to resolve:
- Adjust user group permissions.
- Include the required Scope in the authentication request.
- Verify and correct the URL endpoint.
429 - Rate Limit Exceeded
A 429 error is received when a rate limit or throttling event has been met. The response may include a 'Retry-After' header specifying the number of seconds to wait before retrying. If not present, wait a short period before retrying the API call.
Note that rate limits and throttling are applied on an endpoint basis. When a rate limit is exceeded, an HTTP 429 error will be triggered with a message similar to 'API calls quota exceeded! maximum admitted 5 per 1 second.'
Date: Fri, 18 Jul 2025 19:02:35 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Retry-After: 1
Request-Context: appId=cid-v1:4d41dfdfabd7-752319-4eeeee8-adaaba4-f986dfdfdfe9ebd658
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN415 - Unsupported Media Type
An unsupported media type error will be primary caused when no, or an invalid Content-Type header is sent in the payload. For most of the API, a Content-Type = application/json will be required.
Response from a PUT where the Content-Type header was not included.
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.16",
"title": "Unsupported Media Type",
"status": 415,
"traceId": "00-e5301e2925cf99bed73710e4ec4a7b21-8d92b268f9e04d2a-00"
}500 - Internal Server Error
A 5XX Internal Server Error indicates that the request was accepted by the API, but the server was temporarily unable to process it due to an internal issue (e.g., transient dependency failures, network issues, timeouts, etc.).
What this means
- The error is likely not caused by malformed input or incorrect request. Should be validated during testing.
- 500-level errors are typically temporary and may succeed if retried.
How to Handle:
- Retry Mechanisms: - Assume 500-level errors can happen. Implement retries using best practices (exponential backoff, capped retry attempts, etc.)
- Implement Monitoring & Alerting: Log failed requests & attempted retries. Alert if errors persist
- Fail Gracefully If Issues Persist - Queue the request for later processing or surface a recoverable error. Avoid blocking critical workflows indefinitely.
Example Response:
{
"error": "internal_server_error"
}