ScraperCity logo

Apollo Scraper API Documentation

Apollo Scraper

Extract B2B leads from Apollo.io search URLs (Filters 1.0 only)

$0.0039 per leadPOST /api/v1/scrape/apollo

Parameters

NameTypeRequiredDescription
urlstringRequiredApollo.io search URL with Filters 1.0 formatExample: https://app.apollo.io/#/people?personTitles[]=CTO
countnumberOptionalNumber of leads to scrape (500-50,000)Default: 1000Example: 5000
fileNamestringOptionalCustom filename for export (max 50 chars)Example: Q1_2025_Leads

Examples

Extract leads from Apollo search

curl -X POST https://app.scrapercity.com/api/v1/scrape/apollo \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://app.apollo.io/#/people?personTitles[]=CTO&organizationIndustryTagIds[]=5567cd4473696438b1160000",
    "count": 1000,
    "fileName": "SaaS_CTOs"
  }'

Extract 50,000 leads from saved search

curl -X POST https://app.scrapercity.com/api/v1/scrape/apollo \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "YOUR_APOLLO_SEARCH_URL",
    "count": 50000
  }'

Check scrape status

curl -X GET https://app.scrapercity.com/api/v1/scrape/status/{runId} \
  -H "Authorization: Bearer YOUR_API_KEY"

Check Apollo service status

curl -X GET https://app.scrapercity.com/api/v1/apollo-status \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response
{
  "status": "url-based",  // or "legacy"
  "message": "Service operating normally",
  "timestamp": "2025-10-21T12:00:00Z"
}

Use Cases

  • Extract leads from saved Apollo.io searches
  • Bulk export Apollo search results beyond free tier limits
  • Automate daily lead list generation from Apollo filters
  • Scale outreach by pulling 50,000+ leads at once
  • Bypass Apollo's manual export restrictions

Best Practices

  • Apollo scrapes CANNOT be cancelled - verify parameters before starting
  • Must use Filters 1.0 URLs - look for [] in parameters like personTitles[]
  • Filters 2.0 URLs without [] notation will be rejected
  • Remove uniqueUrlId parameter if present (automatically stripped)
  • Copy URL directly from Apollo.io after building your search
  • Maximum 50,000 leads per run (auto-splits larger requests)
  • Minimum 500 leads per scrape
  • Test with smaller counts (500-1000) before large scrapes
  • Download results within 48 hours before expiration
  • Wallet-based limits apply - scrapes auto-cap at wallet balance + $1

Every scrape returns a runId. Poll GET /api/v1/scrape/status/{runId} until it completes, then download via GET /api/downloads/{runId}?format=csv.

Authenticate every request with Authorization: Bearer YOUR_API_KEY. See the full API reference for authentication, rate limits and error codes.