OpenAPI Specification

Import the full Apollo API into your tooling, generate client SDKs, or power AI agents.

The complete Apollo API is published as a machine-readable OpenAPI 3 specification โ€” a single file describing every endpoint, parameter, and example request.

๐Ÿ“˜

Download the spec

https://docs.apollo.io/openapi/apollo-rest-api.json

What you can do with it

  • Import into an API client โ€” load the spec into tools like Postman or any OpenAPI-compatible client to get every Apollo endpoint, parameter, and example request ready to send.
  • Generate a client SDK โ€” feed the spec to tools like OpenAPI Generator or another tool of your choice to scaffold a typed client in your language of choice.
  • Power AI and custom tooling โ€” point LLM agents, MCP servers, or your own doc viewers at the spec for an always-current, structured description of the API. OpenAPI specifications are easier for automated tooling and AI agents to consume than HTML documentation.

The spec is regenerated whenever these docs are published, so the download URL always reflects the latest version of the API. Before you make live calls, create an API key and review Authentication.

Generate a client SDK

You can turn the spec into a fully typed client library using a tool like OpenAPI Generator or a similar tool. This guide builds a TypeScript client on macOS and runs a People Search. To generate for another language or platform, see the OpenAPI Generator docs.

1. Install the tools. You can install OpenAPI Generator and Node.js with Homebrew or another tool of your choice:

brew install openapi-generator node

2. Generate the client. Point the generator at the published spec:

openapi-generator generate \
  -i https://docs.apollo.io/openapi/apollo-rest-api.json \
  -g typescript-fetch \
  -o ./apollo-client

3. Run a People Search.

  1. Create an API key.

  2. Set the key as an environment variable:

    export APOLLO_API_KEY="your-api-key"
  3. Run the search with npx tsx:

    cd apollo-client
    npx tsx -e "import { SearchApi, Configuration } from './'; new SearchApi(new Configuration({ apiKey: process.env.APOLLO_API_KEY })).peopleApiSearch({ personTitles: ['sales manager'], personLocations: ['california'], perPage: 10 }).then(r => console.log(r.people?.map(p => p.firstName)))"

The generated client handles authentication, request building, and response parsing, so you work with typed TypeScript objects instead of raw HTTP.