{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Leads Scraper with Work Emails | No Cookies",
    "description": "Filter by title, seniority, location and company size. Get B2B leads with a work email matched to the company domain and emailStatus per row. No login, free audience preview, phones on request. Pay per lead, spend cap. JSON/CSV, Clay, n8n, Zapier. Free plan: 100 leads per run.",
    "version": "0.1",
    "x-build-id": "QzmvcEewB3YahCljd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/b2bdata~linkedin-leads-verified-work-emails/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-b2bdata-linkedin-leads-verified-work-emails",
        "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/b2bdata~linkedin-leads-verified-work-emails/runs": {
      "post": {
        "operationId": "runs-sync-b2bdata-linkedin-leads-verified-work-emails",
        "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/b2bdata~linkedin-leads-verified-work-emails/run-sync": {
      "post": {
        "operationId": "run-sync-b2bdata-linkedin-leads-verified-work-emails",
        "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": {
          "jobTitles": {
            "title": "Job titles",
            "type": "array",
            "description": "Current job title contains any of these (e.g. \"VP Sales\", \"Head of Growth\"). At least one of jobTitles, seniority, countries, cities or companyDomains is required. Leave empty if you're targeting specific companies via companyDomains instead.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Filter by seniority level. Leave empty to skip this filter. Gotcha: \"founder\" and \"cxo\" overlap at small companies, so pick both if you want every top decision maker.",
            "items": {
              "type": "string",
              "enum": [
                "cxo",
                "vp",
                "director",
                "manager",
                "founder"
              ],
              "enumTitles": [
                "C-level",
                "VP",
                "Director",
                "Manager",
                "Founder"
              ]
            },
            "default": []
          },
          "companyDomains": {
            "title": "Target company domains",
            "type": "array",
            "description": "Restrict to these companies (bare domains, e.g. \"stripe.com\"). Leave empty for open discovery.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "countries": {
            "title": "Countries (ISO codes)",
            "type": "array",
            "description": "Lowercase ISO country codes, max 5 (e.g. \"us\", \"gb\", \"de\"). Upstream data gap: many profiles have this field blank even when their city clearly shows the country — combining this with companyDomains on a specific company can silently return 0 real matches. Leave empty when targeting specific companies via companyDomains.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "cities": {
            "title": "Cities / regions",
            "type": "array",
            "description": "City or region name, substring match (e.g. \"San Francisco\"). Gotcha: \"York\" also matches \"New York\" and \"York, UK\", so use the most specific name you can.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "titleMatch": {
            "title": "Title match mode",
            "enum": [
              "broad",
              "exact_words"
            ],
            "type": "string",
            "description": "Broad = substring match. Exact words = whole-word match only (fewer false positives, e.g. \"VP Sales\" no longer matches \"VP of Sales Development Representative Sourcing\"). Applies to jobTitles only.",
            "default": "broad"
          },
          "companySizeMin": {
            "title": "Company size — min employees",
            "type": "integer",
            "description": "Minimum employees at the lead's current company. Leave blank for no minimum. Companies with unknown size are dropped unless you tick the unknown-size box below."
          },
          "companySizeMax": {
            "title": "Company size — max employees",
            "type": "integer",
            "description": "Maximum employees at the lead's current company. Leave blank for no maximum. Gotcha: enter a single number such as 200, not a range like 2-10."
          },
          "includeUnknownSize": {
            "title": "Include companies with unknown size",
            "type": "boolean",
            "description": "Only applies when a min/max company size is set. Many small companies have no size on file, so leaving this off can drop real matches; turn it on to keep them.",
            "default": false
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Exact LinkedIn industry name, case-insensitive (e.g. \"Computer Software\", \"Information Technology and Services\", \"Financial Services\", \"Marketing and Advertising\") — not free text. A wrong name (e.g. \"Software\") fails the run with no charge. The filter matches the employer's industry classification, which can differ from the `industry` column in the results. Test first with Preview only (free). Leave empty to skip.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "excludeTitleWords": {
            "title": "Exclude titles containing",
            "type": "array",
            "description": "Drop candidates whose title contains any of these (e.g. \"Intern\", \"Assistant\"). Gotcha: it is a substring match, so \"Assistant\" also drops \"Assistant Vice President\".",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "requirePhone": {
            "title": "Require a phone number",
            "type": "boolean",
            "description": "Only deliver leads that also have a phone number on file (roughly 1 in 6 people do), returned in the phoneNumbers column. Same price per lead, but the run scans many more people, so it takes longer and may deliver fewer than Max leads. Numbers are as listed in the database — not verified, and some may be company switchboard lines.",
            "default": false
          },
          "maxLeads": {
            "title": "Max leads (0 = up to 2000, hard max 2000)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of leads to deliver; 0 means \"as many as match\", still capped at 2000 per run. A lead needs a real, company-domain-matched email, so the run can deliver fewer than you ask for. Free Apify plans get up to 100 leads per run; paid plans have no per-run limit.",
            "default": 100
          },
          "maxPerCompany": {
            "title": "Max leads per company",
            "type": "integer",
            "description": "Cap how many leads come from the same company, so one large employer does not dominate the list. Leave blank for no cap; 1 gives at most one contact per company, which suits cold outreach."
          },
          "previewOnly": {
            "title": "Preview only (free)",
            "type": "boolean",
            "description": "Return only the estimated audience size for these filters. Charges nothing and writes one notice row. Use this to size your list before a real run; the estimate counts people, not leads with a verified email.",
            "default": false
          },
          "excludeHeadlineWords": {
            "title": "Exclude headlines containing",
            "type": "array",
            "description": "Drop candidates whose headline contains any of these (e.g. \"retired\", \"open to work\"). Gotcha: substring match, so \"intern\" also drops \"International Sales Lead\".",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "includeCompanyDetails": {
            "title": "Include company details",
            "type": "boolean",
            "description": "Look up each company's LinkedIn URL (one extra lookup per unique company, cached across leads at the same company). Off = companyLinkedinUrl is left out, fewer lookups, same price per lead.",
            "default": true
          },
          "minLeadScore": {
            "title": "Minimum lead score (0-100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only deliver leads whose leadScore is at least this value; lower-scoring leads are not pushed and not charged. 0 delivers everything. Gotcha: a lead with an unconfirmed email and no phone tops out around 70, so 80+ keeps mostly confirmed emails.",
            "default": 0
          },
          "deltaMode": {
            "title": "Delta mode (only new or changed leads)",
            "type": "boolean",
            "description": "Skip leads you already received unchanged in an earlier run with the same delta store. Skipped leads are not pushed and not charged. Gotcha: the first run delivers everything, savings start from the second run.",
            "default": false
          },
          "deltaStoreName": {
            "title": "Delta store name",
            "type": "string",
            "description": "Named key-value store in your account that remembers what each lead looked like. Use a different name per campaign so lists do not skip each other's leads.",
            "default": "linkedin-leads-verified-work-emails-delta"
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "default",
              "compatible"
            ],
            "type": "string",
            "description": "default = this actor's field names. compatible = common LinkedIn scraper field names (profileUrl, title, companyWebsite, location and so on) so existing pipelines keep working. Pricing is identical.",
            "default": "default"
          },
          "maxChargeUsd": {
            "title": "Max charge (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Stop when this run's charges reach this amount. The run ends SUCCEEDED with the leads so far and one explanation row (status max_charge_reached). 0 = no limit.",
            "default": 0
          },
          "sourceTag": {
            "title": "Source tag",
            "maxLength": 100,
            "type": "string",
            "description": "Free text copied onto every lead row as sourceTag, to tell batches or campaigns apart.",
            "default": ""
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Parallel lookup workers. Default 3. If the data provider pushes back, extra workers stop and one carries on alone.",
            "default": 3
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}