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, whether they originate at the authentication gateway or at the Reporting API itself. 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 JWT is missing, malformed, invalid, or expired. When the token has expired, the detail field will say so. Fetch a new JWT via POST /oauth/token and retry once.
ANL_00403 403 JWT is valid but the requested scope is not accessible — typically one or more instanceIds are not bound to your client credentials. Verify the instanceIds you are requesting are included in your contract.
ANL_00404 404 The requested resource or route could not be found. Verify IDs and path.
ANL_00500 500 Unexpected server-side failure. 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.

401 and 403 responses are produced at the authentication gateway before requests reach the Reporting API itself, but use the same application/problem+json envelope so a single error-handling code path works for every error.

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.