API review

Apollo API review

All-in-one sales platform whose API exposes a 240M-contact / 30M-company database (search, person and company enrichment, job postings, news) plus its full CRM and sequencing engine. Best for people search at 0 credits on paid plans to size and pull prospect lists.

Verified 25 Oct 2026 · 27 endpoints listed · Official MCP server

What a call costs

The actions you pay for, as Apollo prices them.

ActionCostPer
People search (API)0 credits (paid plans; Free plan gets 403 in live test)per request
Email / demographics on person enrichment1 creditper matched person (0 if no credit-consuming data found)
Mobile phone on person enrichment+8 creditsper phone returned
Waterfall emailtypically 1-4 credits, can be 20+per person; some vendors charge per lookup even with no result
Waterfall phonetypically 8-25 credits, can be 45+per person
Organization enrichment / bulk / complete org info1 creditper organization
Organization search1 creditper page of up to 100
Job postings1 creditper page of up to 10,000
Show all 13 priced actionsHide the rest
ActionCostPer
News articles search1 creditper page of up to 25
Get complete person info1 creditper person
Conversation info / export with AI insights1 creditper conversation
AI research1 creditper run
US dialer1 creditper 30 seconds

Pricing, plan by plan

US dollars, as Apollo's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier Free: $0, 900 credits per seat per year granted monthly (75/month). Docs say all plans include API access and Free accounts need a work email for search/enrichment; live test on a work-email Free account: people search API returned 403 (paid plans only), org enrichment worked.

Free

$0

Free

900 credits per seat per year, granted monthly (annual billing); 75 credits per seat per month, granted upfront (monthly billing)

API included

Basic

$65/mo

billed monthly

$49/mo

billed annually

30,000 credits per seat per year, granted upfront (annual); 2,500 credits per seat per month (monthly billing)

API included
Plan details

Add-on credits via Customize Credits slider; charged immediately and recur each cycle until removed

Professional

$99/mo

billed monthly

$79/mo

billed annually

48,000 credits per seat per year, granted upfront (annual); 4,000 credits per seat per month (monthly billing)

API included
Plan details

Same add-on credit slider

Organization

$119/mo

annual billing only

$119/mo

billed annually

72,000 credits per seat per year, granted upfront; min 3 seats.

API included
Plan details

Annual only: the Monthly toggle shows $149/seat/mo labelled 'Annual Only' (6,000 credits/seat/mo)

Same add-on credit slider

Rate limits

Per team (all keys share), per endpoint, enforced in fixed minute/hour/day windows at once.

Free

Default
50/min, 200/h, 600/day
Enrichment
50/min (20 bulk), 200/h (100 bulk), 600/day
Search
50/min, 200/h, 600/day

Basic

Default
200/min, 400/h, 2,000/day
Enrichment
1,000/min, no hourly/daily limit
Search
200/min, 6,000/h, 50,000/day

Professional

Default
200/min, 400/h, 2,000/day
Enrichment
1,000/min, no hourly/daily limit
Search
200/min, 6,000/h, 50,000/day

Organization

Default
200/min, 600/h, 6,000/day
Enrichment
1,000/min, no hourly/daily limit
Search
200/min, 6,000/h, 50,000/day

Lower-limit endpoints

Default
Query analytics report 5/h; Export conversations 1/min and 20/h on Free
More on limitsLess

Enrichment endpoints on paid plans: 1,000/min with no hourly or daily cap. Search endpoints on paid plans: 200/min, 6,000/h, 50,000/day. Everything else uses the plan default. 429 with retry-after header; error_details.code separates your limit (API_RATE_LIMIT_EXCEEDED) from platform load (PLATFORM_RATE_LIMIT, retry after 60s). MCP has separate limits and no rate headers.

How to get an API key

Apollo uses API key. The steps below follow Apollo's own docs.

  1. Create a Apollo account. The Free plan includes API access.
  2. Apollo admin (or permitted profile) > Settings > Integrations > API Keys > create key; pick endpoints (scoped key, default) or toggle 'Set as master key' for all endpoints. Some endpoints (list users, usage stats) need a master key.
  3. Send it with every request: header: x-api-key (partners use OAuth 2.0).
  4. Make a first call: People search (net-new prospects in Apollo DB). Keep the key in an environment variable, never in the command.
    curl -X POST "https://api.apollo.io/api/v1/mixed_people/api_search" \
      -H "x-api-key: $APOLLO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{}'

Where the docs live

WhatWhere
Documentationdocs.apollo.io
API referencedocs.apollo.io/reference/apollo-api
OpenAPI specdocs.apollo.io/reference/openapi-specification
llms.txtdocs.apollo.io/llms.txt
Changelogdocs.apollo.io/changelog/api-errors-now-include-structured-details
Base URLhttps://api.apollo.io
MCP serverhttps://mcp.apollo.io/mcp
SDKsApollo CLI (Homebrew apolloio/apollo-io-cli, prebuilt binaries, OAuth login) - https://docs.apollo.io/docs/apollo-cli-overview

Strengths and limits

Where it fits

  • People search at 0 credits on paid plans to size and pull prospect lists (ids and titles only; not callable via API on the Free plan in our live test)
  • Cheap work-email enrichment at 1 credit per matched person
  • Company firmographics incl. parent/subsidiary hierarchy, job postings and news in one API
  • Teams already running sequences in Apollo who want to automate list adds and CRM updates
  • Agent workflows via the official remote MCP (mcp.apollo.io) or CLI

Where it falls short

  • Building a product or reselling data: standard plans are internal use only; external use needs a separate agreement
  • LinkedIn automation tools (terms ban using the API with LinkedIn automations)
  • Training commercial or third-party AI models on the data (terms allow only your own internal models; MCP bans model training outright). Source: apollo.io/terms; docs.apollo.io/docs/apollo-mcp (verified 2026-10-25)
  • Bulk enrichment at volume: max 10 records per bulk call
  • Pulling beyond 50,000 records per search query (500 pages x 100)
  • Platforms that need a plain env-var BYOK key

Worth knowing

12 moreShow fewer
  • Get complete person info returns the placeholder email_not_unlocked@domain.com (with email_status 'verified') for people who are not your contacts; it passes null checks and collapses records if used as a dedupe key. Source: docs.apollo.io/reference/get-complete-person-info
  • Bulk people enrichment returns status 'success' even when people are unmatched (unmatched entries are null); read missing_records. request_id can be negative, pass it unchanged. Source: docs.apollo.io/reference/bulk-people-enrichment
  • Rate limits are per team, not per key: every key and child workspace shares the same counters. Source: docs.apollo.io/reference/rate-limits
  • An API key acts as the workspace's longest-standing active admin, so records are owned by that user and a key made by a limited user is not limited. Source: docs.apollo.io/reference/authentication
  • Legacy root-level error 'message' field disappears after 16 February 2027; parse error_details.code instead. Source: docs.apollo.io/reference/rate-limits
  • Free accounts must be registered with a work email to use search/enrichment endpoints. Source: docs.apollo.io/docs/developer-faqs
  • Credits do not roll over, and add-on credits recur every billing cycle until you drag the slider back to zero. Source: apollo.io/pricing
  • Terms ban reselling or redistributing the data, using any API with LinkedIn automations, and training AI/ML models on Business Contact Information except your own internal, non-commercial models; Apollo MCP prohibits AI model training entirely. Source: apollo.io/terms; docs.apollo.io/docs/apollo-mcp (verified 2026-10-25)
  • Source: docs.apollo.io/reference/people-api-search
  • Monthly billing costs more: Basic $65 vs $49 annual, Professional $99 vs $79; Organization is annual only ($119/seat/mo, min 3 seats; the Monthly toggle shows $149 labelled 'Annual Only'). Monthly plans grant credits per month (2,500 / 4,000 / 6,000) instead of a yearly pool. Credits do not roll over. Fair use: email credit cap is the lesser of (amount paid for the term / $0.025) or 1 million email credits per account per year. Source: apollo.io/pricing (headless render, verified 2026-10-25)
  • Docs vs live: docs say every plan includes API access and Free work-email accounts can use people search; our live Free account got 403 API_INACCESSIBLE on mixed_people/api_search even with a master key. The usage-stats endpoint still lists that bucket, so do not read it as the callable set.
  • Pricing page FAQ says 'API access is available on Custom plans' for advanced integrations while plan cards list 'API Access' (Free) and 'API Enrichment' (Basic+); treat Free as partial API. Source: apollo.io/pricing (verified 2026-10-25)

Our take

When we built an enrichment waterfall for a B2B data company, we left Apollo out: in the enrichment orchestration platform we used, it was the only provider that could not be connected with an environment-variable API key or fall back to the platform's own credits, and other providers already covered what it does.

Who should use it

Use Apollo for
People search at 0 credits on paid plans to size and pull prospect lists (ids and titles only; not callable via API on the Free plan in our live test)
Look elsewhere for
Building a product or reselling data: standard plans are internal use only; external use needs a separate agreement

If Apollo is not the answer

Other Sourcing tools in this directory, each with its own review.

Before you build

Four things to settle first, each read off Apollo's own pages.

  • Confirm the API is on your planThe Free plan includes API access. Free tier: Free: $0, 900 credits per seat per year granted monthly (75/month).
  • Keep the key out of your codeAPI key. It is sent as: header: x-api-key (partners use OAuth 2.0).
  • Design around the rate limitPer team (all keys share), per endpoint, enforced in fixed minute/hour/day windows at once.
  • Know the catch before you scalePeople search returns no emails or phones at all; you must enrich (people/match or bulk_match) to get contact data. Source: docs.apollo.io/reference/people-api-search

Want us to build it for you?

Tell us what you want Apollo to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

Read from apollo.io/pricing, docs.apollo.io/reference/apollo-api and docs.apollo.io/reference/rate-limits. Verified 25 Oct 2026.

All 27 endpointsFor developers: method, path, what it does and what it costs.

Base URL: api.apollo.io

Bulk and async: Bulk people enrichment and bulk organization enrichment, max 10 records per request; no async bulk job API. Source: docs.apollo.io/reference/bulk-people-enrichment

Webhooks: Outbound per-request webhooks only: phone reveal and waterfall enrichment results go to the webhook_url you pass (HTTPS, idempotent, may retry); or set poll_only=true and poll /webhook_result/{request_id} (results kept 30 days). No event-subscription webhooks documented. Source: docs.apollo.io/reference/people-enrichment

27 endpoints
MethodPathWhat it doesCost
POST/api/v1/mixed_people/api_searchPeople search (net-new prospects in Apollo DB)0 credits on paid plans. Free plan: 403 API_INACCESSIBLE ('not included in your Free plan... even with a master key') in our live test 2026-10-25, although docs say Free work-email accounts may call it
POSTasync/api/v1/people/matchPeople enrichment (one person)1 credit demographics/email + 8 if mobile returned (1-9); 0 if nothing found; waterfall email typically 1-4 (can be 20+), waterfall phone typically 8-25 (can be 45+)
POSTasync/api/v1/people/bulk_matchBulk people enrichment (up to 10 people per call)1-9 credits per person, same logic as single
GET/api/v1/people/{id}Get complete person info by Apollo id1 credit per person
GET/api/v1/webhook_result/{request_id}Poll webhook result (phone reveal / waterfall results)0 credits
POST/api/v1/mixed_companies/searchOrganization search (net-new companies in Apollo DB)1 credit per page (up to 100 results per page)
GET/api/v1/organizations/enrichOrganization enrichment (one company)1 credit per organization
POST/api/v1/organizations/bulk_enrichBulk organization enrichment (up to 10 companies)1 credit per organization
GET/api/v1/organizations/{id}Get complete organization info by Apollo id1 credit per company
GET/api/v1/organizations/{organization_id}/job_postingsOrganization job postings (hiring signal)1 credit per page (up to 10,000 results per page)
POST/api/v1/news_articles/searchNews articles search for companies1 credit per page (up to 25 results per page)
POST/api/v1/usage_stats/credit_usage_statsView team credit balance per credit type (lead_credit, direct_dial_credit, export_credit, ai_credit, etc.)0 credits
POST/api/v1/usage_stats/api_usage_statsView API usage and rate limits per endpoint0 credits (master key)
GET/api/v1/users/api_profileGet current user profile (shows which user the key acts as; include_credit_usage=true for per-user credits)0 credits
POSTasync/api/v1/agents/taskRun an Apollo AI Assistant task (create / continue)Variable: depends on actions the Assistant performs (e.g. enrichment)
POST/api/v1/agents/poll_taskPoll an Assistant task0 credits
POST/api/v1/contacts/searchSearch your saved contacts (not the Apollo DB)0 credits
POST/api/v1/accounts/searchSearch your saved accounts0 credits
POST/PATCH/GET/api/v1/contacts, /contacts/bulk_create, /contacts/bulk_update, /contacts/{contact_id}, /contacts/update_owners, /contacts/update_stagesCRM group: contacts create / bulk create / bulk update / view / update / ownership / stage (8 endpoints)0 credits
POST/PATCH/GET/api/v1/accounts, /accounts/bulk_create, /accounts/bulk_update, /accounts/{id}, /accounts/update_ownersCRM group: accounts create / bulk create / bulk update / view / update / ownership (6 endpoints)0 credits
POST/PATCH/GET/api/v1/opportunities, /opportunities/search, /opportunities/{opportunity_id}, /contacts/{contact_id}/opportunities, /opportunity_stagesCRM group: deals create / list / view / update / associated deals / stages (6 endpoints)0 credits
POST/PUT/api/v1/sequences, /sequences/{id}, /emailer_campaigns/search, /emailer_campaigns/{sequence_id}/approve|abort|archive|add_contact_ids, /emailer_campaigns/remove_or_stop_contact_ids, /emailer_campaigns/activity_feedEngagement group: sequences create / update / search / activate / deactivate / archive / add or remove contacts / activity (10 endpoints)0 credits
GET/POST/api/v1/emailer_messages, /emailer_messages/search, /emailer_messages/{id}/send_now, /emailer_messages/{id}/activities, /emailer_messages/email_send_status, /emailer_messages/get_content, /email_accounts, /emailer_schedulesEngagement group: outreach emails (draft, send now, search, stats, status, content), mailboxes, schedules (8 endpoints)0 credits
POST/PATCH/GET/api/v1/tasks, /tasks/bulk_create, /tasks/search, /tasks/{id}, /tasks/{id}/complete, /tasks/{id}/skipCRM group: tasks create / bulk create / search / get / update / complete / skip (7 endpoints)0 credits
POST/PUT/GET/api/v1/phone_calls, /phone_calls/search, /phone_calls/{id}, /conversations/search, /conversations/{id}, /conversations/export, /conversations/export/{id}Calls and conversation intelligence: call records, search, conversation info, export (7 endpoints)0 credits; conversation info and export: 1 credit per conversation with AI insights
POST/PATCH/GET/api/v1/labels, /labels/{id}, /labels/add_entity_ids_to_label_names, /labels/remove_entity_ids_from_label_names, /fields, /typed_custom_fields, /notes, /users/search, /account_stages, /contact_stagesAdmin group: lists, custom fields, notes, users (master key), stages (11 endpoints)0 credits
POST/api/v1/reports/sync_reportQuery analytics report (sequence / email / engagement metrics)0 credits