{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Leads Finder: Apollo, ZoomInfo & Lusha Alternative",
    "description": "LinkedIn leads finder: Apollo, ZoomInfo and Lusha alternative with fresh leads and live-verified work emails, no cookies or login. Search people and companies by job title, city and keywords, scrape LinkedIn profiles, companies, jobs and posts. Sales Navigator alternative. $3.50/1,000 profiles.",
    "version": "1.0",
    "x-build-id": "YWBUEkmBWMSBNtMgj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pnda~linkedin-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pnda-linkedin-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/pnda~linkedin-scraper/runs": {
      "post": {
        "operationId": "runs-sync-pnda-linkedin-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/pnda~linkedin-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-pnda-linkedin-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": "What do you want to do?",
            "enum": [
              "search",
              "urls"
            ],
            "type": "string",
            "description": "\"Search LinkedIn\": no URL needed. Give a job title, a location and keywords; the actor finds matching LinkedIn profiles or companies through Google (no login, no cookies, no LinkedIn account), then can scrape each one and find its verified work email. \"Scrape LinkedIn URLs\": paste LinkedIn URLs you already have and get full records.",
            "default": "urls"
          },
          "searchType": {
            "title": "Search for",
            "enum": [
              "people",
              "company"
            ],
            "type": "string",
            "description": "Search mode: find people (linkedin.com/in profiles) or companies (linkedin.com/company pages).",
            "default": "people"
          },
          "role": {
            "title": "Job title / role",
            "type": "string",
            "description": "Job title to look for, e.g. \"CEO\", \"head of sales\", \"recruiter\". People search: added to the query. Company search with \"Find people at each company\": the role searched at each company."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region or country, e.g. \"Paris\", \"London\", \"Texas\"."
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Industry, skills or any words, e.g. \"SaaS\", \"marketing agency\", \"fintech\", \"shopify\". When a search finds nothing, it is retried without the keywords, then without the location (said in the results), before ending with a free \"0 results\" row."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 5,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of leads (people or companies) to return. Google pages hold about 10 results, so multiples of 10 work best. Minimum 5.",
            "default": 20
          },
          "onlyNew": {
            "title": "Only new leads (skip what you already got)",
            "type": "boolean",
            "description": "Search mode: skip the people / companies you already received from this Actor in previous runs (same Apify account, last 12 months) and keep searching until you have \"Max results\" NEW ones. Example: 20 growth marketers in Lille yesterday, run again with onlyNew for 20 more, no duplicate. Leads skipped are never charged.",
            "default": false
          },
          "scrapeResults": {
            "title": "Step 2: scrape full details of each lead",
            "type": "boolean",
            "description": "Also scrape each profile / company found (same full record as URL mode: experience, education, company size, etc.), billed per record like URL mode. Without it you get the Google data only: LinkedIn URL, name, position, company, location.",
            "default": false
          },
          "findEmail": {
            "title": "Step 3: find verified work email (people)",
            "type": "boolean",
            "description": "Finds each person's professional email from their name and current company (company domain from the profile, otherwise guessed from the company name), then verifies it live over SMTP with the built-in email finder. Works in search mode (people) and in URL mode with Profile URLs. Billed only when a verified email is found ($9 / 1,000). Catch-all domains return a best guess with confidence \"catch-all\", free of charge.",
            "default": false
          },
          "requireEmail": {
            "title": "Only leads with a verified email",
            "type": "boolean",
            "description": "People search only: deliver only people whose work email was found and verified. Profiles without one are skipped and not charged; the search looks at up to 3x more profiles to fill your list. Turns \"Find emails\" on.",
            "default": false
          },
          "companies": {
            "title": "People at these companies (optional)",
            "type": "array",
            "description": "Skip the open search and find people at these companies: [{\"name\": \"SV Angel\", \"website\": \"svangel.com\"}, …]. Uses \"Job title / role\" (e.g. partner, CEO) and \"peoplePerCompany\" (default 3). The website is used to find each person's email. Max 200 companies."
          },
          "type": {
            "title": "Content type",
            "enum": [
              "Profile",
              "Company",
              "Job",
              "Post"
            ],
            "type": "string",
            "description": "Used when \"What do you want to do?\" is \"Scrape LinkedIn URLs\": what kind of LinkedIn URLs are you providing?",
            "default": "Profile"
          },
          "urls": {
            "title": "LinkedIn URLs",
            "type": "array",
            "description": "LinkedIn URLs matching the selected content type.",
            "items": {
              "type": "string"
            }
          },
          "findPeopleAtCompanies": {
            "title": "Find people at each company (company search)",
            "type": "boolean",
            "description": "Company search only: for every company found, also search its employees with the job title in \"Job title / role\" (one extra search per company, up to \"People per company\" profiles, each billed as a search result).",
            "default": false
          },
          "peoplePerCompany": {
            "title": "People per company",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "With \"Find people at each company\": maximum profiles per company (5 to 10).",
            "default": 10
          },
          "country": {
            "title": "Google country",
            "type": "string",
            "description": "Two-letter Google country code used for the search (gl), e.g. us, fr, gb, de.",
            "default": "us"
          },
          "language": {
            "title": "Google language",
            "type": "string",
            "description": "Two-letter Google interface language (hl), e.g. en, fr.",
            "default": "en"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}