{
  "openapi": "3.0.1",
  "info": {
    "title": "Apollo Leads Scraper — B2B Leads & Verified Emails Export",
    "description": "Export B2B leads from Apollo.io with verified work emails, phones, and full company data. Use your own Apollo session cookies OR API key. 25+ filters: job title, seniority, department, location, industry, tech stack, revenue, headcount. Auto-paginates and resumes. Pay per lead.",
    "version": "0.1",
    "x-build-id": "wGt5aokSFkg1XULA2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bovi~apollo-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bovi-apollo-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/bovi~apollo-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-bovi-apollo-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/bovi~apollo-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-bovi-apollo-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Access mode",
            "enum": [
              "cookies",
              "api_key"
            ],
            "type": "string",
            "description": "How to reach Apollo. 'Session cookies' replays your logged-in Apollo browser session (broadest plan coverage). 'API key' calls Apollo's official API (cleaner, needs an Apollo API plan).",
            "default": "cookies"
          },
          "searchUrl": {
            "title": "Apollo search URL",
            "type": "string",
            "description": "Paste an Apollo People search URL from your browser (the page after you apply filters in app.apollo.io). Its filters are parsed automatically. Leave empty to use the structured filters below instead."
          },
          "maxLeads": {
            "title": "Max leads",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Total number of lead records to return across all pages. Each lead is one charged result.",
            "default": 500
          },
          "revealEmails": {
            "title": "Reveal & enrich emails / phones",
            "type": "boolean",
            "description": "Enrich each lead to reveal verified work email, personal emails and phone numbers. This consumes your own Apollo credits (one credit per revealed contact, billed to your Apollo account). Turn off to only return contacts whose email your plan already exposes.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Route requests through Apify Residential proxy so your Apollo account is not IP-flagged. Strongly recommended for cookies mode. The session is kept sticky so your login stays valid.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "cookies": {
            "title": "Apollo session cookies",
            "type": "string",
            "description": "Cookies mode only. Paste your Apollo cookies as a JSON array (export via the EditThisCookie / Cookie-Editor browser extension while logged into app.apollo.io) OR as a raw 'name=value; name2=value2' header string. The actor must see your 'remember_token_*' and CSRF cookies to replay your session."
          },
          "apiKey": {
            "title": "Apollo API key",
            "type": "string",
            "description": "API-key mode only. Your Apollo master API key (Settings → Integrations → API in Apollo). Used as the X-Api-Key header against Apollo's official API."
          },
          "personTitles": {
            "title": "Job titles (include)",
            "type": "array",
            "description": "Job titles to include, e.g. 'CEO', 'VP of Sales', 'Head of Marketing'. Apollo also matches similar titles unless you disable that below.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitles": {
            "title": "Job titles (exclude)",
            "type": "array",
            "description": "Job titles to exclude from results, e.g. 'Intern', 'Assistant'.",
            "items": {
              "type": "string"
            }
          },
          "includeSimilarTitles": {
            "title": "Match similar titles",
            "type": "boolean",
            "description": "Keep on to let Apollo expand each title to similar ones (e.g. 'CEO' also matches 'Chief Executive'). Turn off for exact-title matching only.",
            "default": true
          },
          "seniorities": {
            "title": "Seniority levels",
            "type": "array",
            "description": "Filter by seniority. Pick from: owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments / functions",
            "type": "array",
            "description": "Department or job function, e.g. 'sales', 'engineering', 'marketing', 'finance', 'information_technology'.",
            "items": {
              "type": "string"
            }
          },
          "personLocations": {
            "title": "Person locations (include)",
            "type": "array",
            "description": "Where the person is based. Use cities, states, regions or countries, e.g. 'United States', 'California', 'London'.",
            "items": {
              "type": "string"
            }
          },
          "excludePersonLocations": {
            "title": "Person locations (exclude)",
            "type": "array",
            "description": "Locations to exclude, e.g. 'India', 'Pakistan'.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Free-text keyword filter applied across the person and company profile, e.g. 'fintech founder'."
          },
          "organizationLocations": {
            "title": "Company HQ locations",
            "type": "array",
            "description": "Company headquarters location, e.g. 'United States', 'Berlin, Germany'.",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Company industries, e.g. 'information technology & services', 'hospital & health care', 'marketing & advertising'.",
            "items": {
              "type": "string"
            }
          },
          "employeeRanges": {
            "title": "Employee count ranges",
            "type": "array",
            "description": "Company headcount bands as 'min,max' strings, e.g. '1,10', '11,50', '51,200', '201,500', '501,1000', '1001,5000', '5001,10000', '10001,1000000'.",
            "items": {
              "type": "string"
            }
          },
          "revenueMin": {
            "title": "Min company revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum annual company revenue in USD. Leave at 0 to ignore.",
            "default": 0
          },
          "revenueMax": {
            "title": "Max company revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum annual company revenue in USD. Leave at 0 to ignore.",
            "default": 0
          },
          "companyDomains": {
            "title": "Company domains",
            "type": "array",
            "description": "Restrict to specific company domains (no www / no @), e.g. 'stripe.com', 'shopify.com'. Up to 1000.",
            "items": {
              "type": "string"
            }
          },
          "technologies": {
            "title": "Company tech stack (any of)",
            "type": "array",
            "description": "Match companies using any of these technologies, e.g. 'salesforce', 'hubspot', 'shopify', 'react'.",
            "items": {
              "type": "string"
            }
          },
          "fundingStages": {
            "title": "Funding stages",
            "type": "array",
            "description": "Company funding stage, e.g. 'seed', 'series_a', 'series_b', 'series_c', 'private_equity', 'ipo'.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesSafetyCap": {
            "title": "Max pages safety cap",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard ceiling on pages fetched, regardless of Max leads (Apollo serves up to 100 leads per page; 500 pages = 50,000 max). Protects against runaway runs.",
            "default": 500
          },
          "perPage": {
            "title": "Leads per page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Page size for the Apollo search request. 100 is the Apollo maximum and the most efficient.",
            "default": 100
          },
          "resume": {
            "title": "Resume from last run",
            "type": "boolean",
            "description": "Continue an identical previous run from the last page it scraped (progress is stored in the key-value store keyed by the search filters). Turn off to always start from page 1.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}