canonical: https://jentic.com/apis/apollo.io/apollo

# Apollo.Io API

Jentic publishes the only available OpenAPI specification for Apollo.Io API, keeping it validated and agent-ready. Apollo is a sales intelligence and engagement platform that combines a B2B contact and company database with native CRM, email sequencing, and call tracking. The API exposes people and organisation enrichment, contact and account management, deal pipeline operations, email sequencing, and supporting metadata such as job postings and news articles, so revenue teams can drive prospecting and outbound from their own tooling. Authentication is by an x-api-key header tied to an Apollo workspace user.

## For AI agents

Enrich people and companies, search the Apollo database, and manage contacts, accounts, deals, and email sequences from your own workflow.

## Scope

Does not handle starting email sequences inside Apollo, dialer-based calling, or billing operations - use for enrichment, search, and CRM contact, account, and deal management only.

## Capabilities

- Enrich a person or company record with verified email, phone, and firmographic data via /people/match and /organizations/enrich
- Run bulk enrichment for up to a list of records in one call via /people/bulk_match and /organizations/bulk_enrich
- Search Apollo's database for prospects and accounts via /mixed_people/search and /mixed_companies/search
- Create, update, and search contacts and accounts in the Apollo CRM
- Manage deal pipeline stages via /opportunities and /opportunity_stages
- Pull organisation job postings and news articles for trigger-based outbound

## Use cases

### Outbound Lead Enrichment

Sales operations teams pipe form submissions, webinar registrants, and inbound leads through Apollo to enrich each record with verified email, phone, title, and company firmographics before pushing into the CRM. POST /people/match handles single-record enrichment in real time and POST /people/bulk_match handles batch lists of up to several hundred at a time, so outbound sequences fire against fresh data.

Example prompt: Call POST /people/match with the lead's name and company domain, capture the verified email, and create the contact in the CRM with that email.

### Account-Based Prospecting

Account-based marketing teams identify ICP-fit accounts and the right buying-committee contacts within them. POST /mixed_companies/search filters companies by employee count, industry, and technographics, while POST /mixed_people/search returns the matching personas inside those companies, ready to enroll in a sequence.

Example prompt: Run POST /mixed_companies/search for SaaS companies with 200-1000 employees, then POST /mixed_people/search for VP-of-Marketing personas at those accounts.

### Pipeline Hygiene Automation

Revenue operations teams automate pipeline hygiene by promoting and demoting deals based on activity. POST /opportunities/search returns deals with stale activity, PUT /accounts/{account_id} updates the parent account's stage, and POST /accounts/bulk_update reassigns segments without manual click-through. Combined, the workflow keeps the pipeline accurate without burning rep time.

Example prompt: Search opportunities older than 30 days with no activity via POST /opportunities/search and update each via PUT /accounts/{account_id} to demote the related account stage.

### Trigger-based Outreach

Marketing teams listen for hiring spikes and news mentions on target accounts and time their outbound to those events. GET /organizations/{organization_id}/job_postings exposes hiring signals and POST /news_articles/search exposes news triggers, so a sequence can fire 'I saw you're hiring 12 SDRs' rather than a generic intro.

Example prompt: Call GET /organizations/{organization_id}/job_postings for each ICP account and enroll matching contacts in a hiring-trigger sequence.

### AI Agent Sales Assistant

An AI sales assistant uses Jentic to call Apollo without managing the x-api-key directly. Jentic exposes the search, enrichment, and CRM operations by intent, validates inputs against the schema, and isolates the API key, so the agent only has to choose which operation matches the user's request.

Example prompt: Search Jentic for 'enrich a person', load the POST /people/match schema, and execute it with the lead's first name, last name, and company domain.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /people/match | Enrich a single person record with email, phone, and firmographic data. |
| POST | /people/bulk_match | Bulk-enrich a list of person records in one call. |
| POST | /mixed_people/search | Search Apollo's people database with persona and account filters. |
| POST | /mixed_companies/search | Search Apollo's organisation database by firmographics. |
| GET | /organizations/enrich | Enrich a single organisation. |
| POST | /accounts | Create a CRM account. |
| POST | /contacts | Create a CRM contact. |
| POST | /opportunities | Create a deal in the pipeline. |

## Key resources

- **People** — Enrich, search, and manage individual contacts. Includes single and bulk match operations and saved-search retrieval.
- **Organizations** — Enrich and inspect companies. Includes single and bulk enrichment, full company info, and job postings.
- **Accounts** — Create, update, search, and bulk-update CRM accounts. Manage account stages and ownership.
- **Contacts** — Create, update, search, and bulk-update CRM contacts. Manage contact stages and ownership.
- **Opportunities** — Manage the deal pipeline - create deals, search, view, and progress stages.
- **News and Job Postings** — Pull news articles and organisation job postings for trigger-based outbound.

## Why Jentic

- **Setup:** Wiring Apollo by hand means learning its x-api-key header scheme and mapping between Apollo's UI terminology and its match, search, and CRM write endpoints yourself. Through Jentic you install once, import the Apollo API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Apollo takes its search and match targets in the request body rather than the URL path, so you limit the agent to the operations it needs, such as enriching a person or searching for companies, rather than to one record. You choose the operations it may call, so CRM writes like creating accounts, contacts, or opportunities are not included unless you add them.
- **Credential handling:** Your Apollo x-api-key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'enrich a person' or 'search Apollo for marketing leaders', and Jentic returns the matching Apollo operation with its input schema so the agent calls the right endpoint without mapping Apollo's UI terminology by hand.

## Related APIs

- **Hunter.io API** — Email-finder and verification API focused purely on contact enrichment, lighter than Apollo's full sales platform.
- **Clearbit API** — B2B enrichment API with strong company firmographics and reveal data.
- **SalesLoft API** — Sales engagement platform that pairs with Apollo enrichment to run outbound cadences.
- **Outreach API** — Enterprise sales engagement platform commonly paired with Apollo for prospecting.

## FAQ

### Why is there no official OpenAPI spec for Apollo.Io API?

Apollo.io publishes its developer reference as HTML rather than an OpenAPI document. Jentic generates and maintains this spec so that AI agents and developers can call Apollo.Io API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Apollo.io API use?

Apollo uses API key authentication via the x-api-key header. Generate the key from your Apollo workspace settings; it is tied to a workspace user and inherits that user's permissions. Through Jentic the key is stored encrypted in the vault and injected at call time, so it never enters the agent's prompt.

### Can I bulk-enrich a list of contacts in one call?

Yes. POST /people/bulk_match takes an array of person identifiers and returns enriched records in a single response, and POST /organizations/bulk_enrich does the same for companies. Use these instead of looping the single-match endpoint when you have more than a handful of records to process.

### What are the rate limits for the Apollo API?

Limits are not declared in the OpenAPI spec and depend on your Apollo plan and add-ons. The platform applies per-minute and per-day caps that surface as 429 responses; bulk endpoints are usually the most cost-effective way to stay inside the limits.

### How do I enrich a person's email through Jentic?

Run pip install jentic, then search Jentic for 'enrich a person', load the schema for POST /people/match, and execute it with the person's name and company domain. Jentic injects the x-api-key from your stored Apollo credentials. Run it through Jentic One, the self-hosted execution layer.

### Does the API cover Apollo's email sequences?

The contact and account endpoints let you create and update CRM records that feed sequences, but starting and stopping a sequence itself is handled inside Apollo. For trigger-based outreach, combine the enrichment, contact creation, and search endpoints with sequence enrolment performed in the Apollo UI.

### Can I limit what my agent is allowed to do with the Apollo API?

Yes. Because you run Jentic One yourself, your own rules decide which Apollo operations and credentials the agent can use. Apollo takes its search and match targets in the request body rather than the URL path, so you scope the agent by operation, for example allowing it to enrich a person via POST /people/match or search companies via POST /mixed_companies/search while excluding CRM writes such as creating accounts, contacts, or opportunities. Only the operations you approve are exposed to the agent, and the x-api-key stays with your instance rather than the agent's prompt.
