Status Codes and Errors

When interacting with Apollo API endpoints, it helps to understand the status codes that might be returned.

To find a status code for an endpoint:

  1. Go to the reference documentation for an endpoint such as people API search.
  2. By default, the Response section of the reference docs shows an example response with a 200 status. To view other status codes, click the EXAMPLE drop-down, then select a status code.
  3. The status you select appears in the response section.

You don't need to supply an API key to review the Apollo-generated example response or other status codes. Check out How to Test API Endpoints to perform your own testing and generate unique responses.

Find API status codes in Apollo documentation.

The error_details object

Apollo is moving every API error onto one machine-readable shape. Where an endpoint has been migrated, its error response carries an error_details object alongside the fields it already returned. For example:

{
  "error": "Invalid access credentials.",
  "error_details": {
    "code": "AUTH.AUTHENTICATION.CREDENTIALS_MISSING",
    "message": "This request carried no credential Apollo could authenticate.",
    "suggestions": [
      { "label": "Send your API key in the X-Api-Key header", "header": "X-Api-Key" },
      { "label": "Check how to authenticate against the Apollo API", "url": "https://docs.apollo.io/reference/authentication" }
    ],
    "context": {}
  }
}

A refusal that has context to give returns it wrapped, one object per key:

"context": {
  "window": { "value": "hourly", "description": "The rate-limit window your request exceeded" }
}
FieldWhat it's for
codeA stable identifier in the form DOMAIN.CATEGORY.REASON. Branch your code on this, not on the message.
messageA human-readable explanation. The wording can change, so don't match on it.
suggestionsOrdered, actionable next steps. Each carries a label, and where relevant a url, parameter, parameters (array), header, example, or retry_after_seconds. On a rate-limit refusal, retry_after_seconds is the value to back off by.
contextValues from your request that explain the refusal. Each entry is an object, not a bare value: {"value": "hourly", "description": "The rate-limit window your request exceeded"}. Absent when the error needs no context.
⚠️

Read error_details, not the legacy fields

Most migrated errors still return their original root-level fields (error, error_code, message) next to error_details. Some already return error_details on its own — GET /organizations/enrich is one, so a 422 from it has no error key at all. On 16 February 2027 the legacy fields are removed everywhere and error_details becomes the only error payload. Move any logic that reads a root-level error field onto error_details.code now.

Common status codes

Most Apollo API endpoints share the following status codes. Some endpoints return additional, endpoint-specific codes and error messages — always check the Response examples on that endpoint's reference page for exact details.

Status codeMeaningCommon causeerror_code
401UnauthorizedYour API key or access token is missing or invalid, or your account is no longer active. See Authentication.INVALID_ACCESS_TOKEN (OAuth access tokens)
403ForbiddenYour plan doesn't include API access, or the endpoint isn't available through the public API for your credentials. Contact Apollo if you believe this is an error.API_INACCESSIBLE
404Not foundThe requested record doesn't exist or isn't accessible with your credentials. Double-check the ID in your request.
422Unprocessable entityYour request was received but couldn't be processed — usually a validation error or an invalid or missing parameter. The response body describes the specific issue; the exact shape varies by endpoint.varies by endpoint
429Too many requestsYou've exceeded your rate limit. Rate-limit details are returned in the response headers. See Rate Limits.
500Internal server errorAn unexpected error occurred on Apollo's side. Retry the request; if it persists, contact Apollo.
📘

Status Report

Not all API status codes are currently documented by Apollo. This documentation contains the most common codes.