Errors & troubleshooting

Every error response from the Reporting API is served as application/problem+json (RFC 9457) with the following shape:

{
  "type": "ANL_00400",
  "title": "Validation Error",
  "detail": "Maximum of 50 campaignIds allowed."
}
Field Use
type Machine-readable code — branch on this value in integration code.
title Short static label for the type. Stable per failure mode, but not intended for programmatic branching.
detail Human-readable explanation for this request. Safe to log for operators; wording may evolve, so do not parse it.

There is no status field in the JSON body; rely on the HTTP status line.

Error type values

All error responses share a single ANL_00xxx namespace. Branch on type rather than HTTP status alone.

type HTTP When it happens What to do
ANL_00400 400 Query parameter validation failed — bad shape, date range > 2 years, more than 50 campaignIds, unsupported metrics for the requested platform / contentType, etc. Fix parameters; read detail for the offending fields.
ANL_00422 400 The sortProperty is not supported for this endpoint, or not available for the selected filters. Choose a value from Querying the API.
ANL_00401 401 On /oauth/token: the clientId is unknown or the clientSecret is incorrect. Elsewhere: the JWT is missing, malformed, invalid, or expired — when it has expired, the detail field will say so. Check your credentials, or fetch a new JWT via POST /oauth/token and retry once.
ANL_00403 403 Your credentials or JWT were accepted, but access is not permitted. See the three causes below. Depends on the cause — see below.
ANL_00404 404 The requested resource or route could not be found. Verify IDs and path.
ANL_00500 500 Unexpected server-side failure. Your request was not processed and your credentials are not implicated. Retry with exponential backoff; if persistent, contact support with timestamp and any request / trace ID.

Note: ANL_00422 is returned with HTTP 400 (not 422). The 422 suffix in the code reflects its domain meaning (unprocessable sortProperty) but the transport status remains 400 to keep a single "validation failed" class for clients.

Every error uses the same application/problem+json envelope, so a single error-handling code path works for all of them.

Understanding 403 responses

A 403 means your credentials were accepted but the request is not permitted. All three cases share type: ANL_00403 and are distinguished by title.

title Meaning What to do
Client Disabled Your API client has been deactivated. Retrying will not help. Contact your Later account team.
No Accessible Instances No instances are currently associated with your client. Retrying will not help. Contact your Later account team to have the associations restored.
Forbidden One or more requested instanceIds are not bound to your client credentials. Verify the values you are requesting are included in your contract.

Browser and CORS errors

If you see CORS policy errors or Failed to fetch when calling the API from a browser or frontend framework:

  • The Reporting API does not support browser clients. Cross-origin requests from web pages are intentionally blocked and CORS is not enabled.
  • clientId and clientSecret must not be used in client-side code. Route all API traffic through a backend service you operate.

Server-side clients with valid credentials (see Getting started) are unaffected. For the full policy, see Authentication → Server-side integrations only.

Rate limiting

Requests are rate-limited per IP at 120 requests per minute.

Every response includes the following headers:

Header Description Example
X-Ratelimit-Limit Maximum requests allowed in the current window 120
X-Ratelimit-Window Window duration in seconds 60

When the limit is exceeded, the API responds with 429 status (Too Many Requests). Clients should implement retry logic with exponential backoff to avoid hitting the limit.

Support

Need help with the Reporting API? Contact support through these channels:

Need Channel
Credentials & access Your Later account team or urvash.chheda@later.com
API bugs / unexpected 5xx Email urvash.chheda@later.com with timestamps (UTC), request path, and redacted params
Product how-tos Later Influence Help Center

When reporting an issue, include:

  • HTTP status code and error type / detail from the response
  • Approximate UTC timestamp of the request
  • Request path and redacted query parameters
  • Instance IDs you were querying (if applicable)
  • Any request / trace IDs provided by the gateway

Enterprise customers: Request dedicated onboarding sessions (architecture review, pagination patterns, warehouse integration) through your Account Manager or urvash.chheda@later.com.