{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Lead & Contact Finder (Google SERP)",
    "description": "LinkedIn Lead & Contact Finder (Google SERP) extracts publicly listed phone numbers from LinkedIn profiles and linked pages. Build targeted contact lists by role, industry, or company. Ideal for sales teams running outbound campaigns.",
    "version": "0.1",
    "x-build-id": "2DPCavSrtAFkqnCgl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~linkedin-phone-number-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-linkedin-phone-number-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/scraper-engine~linkedin-phone-number-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-linkedin-phone-number-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/scraper-engine~linkedin-phone-number-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-linkedin-phone-number-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",
        "required": [
          "country"
        ],
        "properties": {
          "mode": {
            "title": "⚙️ Mode",
            "enum": [
              "discovery",
              "targeted"
            ],
            "type": "string",
            "description": "DISCOVERY = bulk-find leads by keyword/title/industry (fill 'Keywords'). TARGETED = look up specific people you already know by profile URL / public-id / name (fill 'Targets'). Default is discovery.",
            "default": "discovery"
          },
          "keywords": {
            "title": "🔑 Keywords / Job Titles (DISCOVERY mode)",
            "type": "array",
            "description": "DISCOVERY mode only. One or more search terms. Best results come from a role + industry (e.g. \"marketing director\", \"real estate agent London\"). Example: [\"marketing director\", \"founder saas\"]. Ignored in targeted mode.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "🎯 Max Leads Per Keyword (DISCOVERY mode)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "DISCOVERY mode only. Maximum number of lead rows to collect per keyword. Each unique profile URL with at least one contact (phone or email) is one lead. Default is 20.",
            "default": 20
          },
          "targets": {
            "title": "🎯 Targets — profile URL / public-id / name (TARGETED mode)",
            "type": "array",
            "description": "TARGETED mode only. One entry per person to resolve: a LinkedIn profile URL (https://www.linkedin.com/in/williamhgates), a public-id / vanity slug (williamhgates), or a full name (Bill Gates). URLs/slugs are searched as site:linkedin.com/in/<slug>; names as site:linkedin.com \"<name>\" (plus Company below). Returns one structured row per target with the resolved identity (name/headline/company/publicId). NOTE: a phone/email is returned only when Google indexed it into the snippet, which is UNCOMMON for a specific profile — most targeted rows resolve identity with phone/email null. Example: [\"https://www.linkedin.com/in/williamhgates\", \"satyanadella\", \"Melinda French Gates\"]. Ignored in discovery mode.",
            "items": {
              "type": "string"
            }
          },
          "company": {
            "title": "🏢 Company (TARGETED name lookups)",
            "type": "string",
            "description": "TARGETED mode only. Optional company/organization added to NAME-mode lookups to disambiguate common names. Ignored for profile-URL and slug targets. Example: company=\"Microsoft\" turns \"Bill Gates\" into site:linkedin.com \"Bill Gates\" \"Microsoft\"."
          },
          "maxPagesPerTarget": {
            "title": "📄 Max Google Pages Per Target (TARGETED mode)",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "TARGETED mode only. How many Google result pages (10 results each) to read per target before consolidating the best contact. 1-2 is usually enough. Default is 2.",
            "default": 2
          },
          "platform": {
            "title": "🌐 Target Site",
            "enum": [
              "Linkedin"
            ],
            "type": "string",
            "description": "Target site for the 'site:' search. This Actor targets LinkedIn (linkedin.com) — the site whose Google-indexed snippets reliably expose public contacts.",
            "default": "Linkedin"
          },
          "country": {
            "title": "🌍 Country (dial-code filter)",
            "enum": [
              "🌍 Any country (no dial-code filter)",
              "Afghanistan (+93)",
              "Albania (+355)",
              "Algeria (+213)",
              "Andorra (+376)",
              "Angola (+244)",
              "Antigua And Barbuda (+1-268)",
              "Argentina (+54)",
              "Armenia (+374)",
              "Australia (+61)",
              "Austria (+43)",
              "Azerbaijan (+994)",
              "Bahamas (+1-242)",
              "Bahrain (+973)",
              "Bangladesh (+880)",
              "Barbados (+1-246)",
              "Belarus (+375)",
              "Belgium (+32)",
              "Belize (+501)",
              "Benin (+229)",
              "Bhutan (+975)",
              "Bolivia (+591)",
              "Bosnia And Herzegovina (+387)",
              "Botswana (+267)",
              "Brazil (+55)",
              "Brunei (+673)",
              "Bulgaria (+359)",
              "Burkina Faso (+226)",
              "Burundi (+257)",
              "Cambodia (+855)",
              "Cameroon (+237)",
              "Canada (+1)",
              "Cape Verde (+238)",
              "Central African Republic (+236)",
              "Chad (+235)",
              "Chile (+56)",
              "China (+86)",
              "Colombia (+57)",
              "Comoros (+269)",
              "Congo (Democratic Republic) (+243)",
              "Congo (Republic) (+242)",
              "Costa Rica (+506)",
              "Croatia (+385)",
              "Cuba (+53)",
              "Cyprus (+357)",
              "Czech Republic (+420)",
              "Denmark (+45)",
              "Djibouti (+253)",
              "Dominica (+1-767)",
              "Dominican Republic (+1-809)",
              "East Timor (+670)",
              "Ecuador (+593)",
              "Egypt (+20)",
              "El Salvador (+503)",
              "Equatorial Guinea (+240)",
              "Eritrea (+291)",
              "Estonia (+372)",
              "Eswatini (+268)",
              "Ethiopia (+251)",
              "Fiji (+679)",
              "Finland (+358)",
              "France (+33)",
              "Gabon (+241)",
              "Gambia (+220)",
              "Georgia (+995)",
              "Germany (+49)",
              "Ghana (+233)",
              "Greece (+30)",
              "Grenada (+1-473)",
              "Guatemala (+502)",
              "Guinea (+224)",
              "Guinea-Bissau (+245)",
              "Guyana (+592)",
              "Haiti (+509)",
              "Honduras (+504)",
              "Hungary (+36)",
              "Iceland (+354)",
              "India (+91)",
              "Indonesia (+62)",
              "Iran (+98)",
              "Iraq (+964)",
              "Ireland (+353)",
              "Israel (+972)",
              "Italy (+39)",
              "Jamaica (+1-876)",
              "Japan (+81)",
              "Jordan (+962)",
              "Kazakhstan (+7)",
              "Kenya (+254)",
              "Kiribati (+686)",
              "Korea, North (+850)",
              "Korea, South (+82)",
              "Kuwait (+965)",
              "Kyrgyzstan (+996)",
              "Laos (+856)",
              "Latvia (+371)",
              "Lebanon (+961)",
              "Lesotho (+266)",
              "Liberia (+231)",
              "Libya (+218)",
              "Liechtenstein (+423)",
              "Lithuania (+370)",
              "Luxembourg (+352)",
              "Madagascar (+261)",
              "Malawi (+265)",
              "Malaysia (+60)",
              "Maldives (+960)",
              "Mali (+223)",
              "Malta (+356)",
              "Marshall Islands (+692)",
              "Mauritania (+222)",
              "Mauritius (+230)",
              "Mexico (+52)",
              "Micronesia (+691)",
              "Moldova (+373)",
              "Monaco (+377)",
              "Mongolia (+976)",
              "Montenegro (+382)",
              "Morocco (+212)",
              "Mozambique (+258)",
              "Myanmar (+95)",
              "Namibia (+264)",
              "Nauru (+674)",
              "Nepal (+977)",
              "Netherlands (+31)",
              "New Zealand (+64)",
              "Nicaragua (+505)",
              "Niger (+227)",
              "Nigeria (+234)",
              "North Macedonia (+389)",
              "Norway (+47)",
              "Oman (+968)",
              "Pakistan (+92)",
              "Palau (+680)",
              "Panama (+507)",
              "Papua New Guinea (+675)",
              "Paraguay (+595)",
              "Peru (+51)",
              "Philippines (+63)",
              "Poland (+48)",
              "Portugal (+351)",
              "Qatar (+974)",
              "Romania (+40)",
              "Russia (+7)",
              "Rwanda (+250)",
              "Saint Kitts And Nevis (+1-869)",
              "Saint Lucia (+1-758)",
              "Saint Vincent And The Grenadines (+1-784)",
              "Samoa (+685)",
              "San Marino (+378)",
              "Sao Tome And Principe (+239)",
              "Saudi Arabia (+966)",
              "Senegal (+221)",
              "Serbia (+381)",
              "Seychelles (+248)",
              "Sierra Leone (+232)",
              "Singapore (+65)",
              "Slovakia (+421)",
              "Slovenia (+386)",
              "Solomon Islands (+677)",
              "Somalia (+252)",
              "South Africa (+27)",
              "South Sudan (+211)",
              "Spain (+34)",
              "Sri Lanka (+94)",
              "Sudan (+249)",
              "Suriname (+597)",
              "Sweden (+46)",
              "Switzerland (+41)",
              "Syria (+963)",
              "Taiwan (+886)",
              "Tajikistan (+992)",
              "Tanzania (+255)",
              "Thailand (+66)",
              "Togo (+228)",
              "Tonga (+676)",
              "Trinidad And Tobago (+1-868)",
              "Tunisia (+216)",
              "Turkey (+90)",
              "Turkmenistan (+993)",
              "Tuvalu (+688)",
              "Uganda (+256)",
              "Ukraine (+380)",
              "United Arab Emirates (+971)",
              "United Kingdom (+44)",
              "United States (+1)",
              "Uruguay (+598)",
              "Uzbekistan (+998)",
              "Vanuatu (+678)",
              "Vatican City (+39-06)",
              "Venezuela (+58)",
              "Vietnam (+84)",
              "Yemen (+967)",
              "Zambia (+260)",
              "Zimbabwe (+263)"
            ],
            "type": "string",
            "description": "Pick a country to localise the search and keep only phone numbers with that dial code. Choose \"Any country\" to keep every valid international number instead of filtering to one dial code (recovers cross-border leads).",
            "default": "United Kingdom (+44)"
          },
          "requirePhone": {
            "title": "📞 Only Leads With a Phone (DISCOVERY mode)",
            "type": "boolean",
            "description": "DISCOVERY mode only. Keep only leads that have at least one valid phone number. Default is false.",
            "default": false
          },
          "requireEmail": {
            "title": "✉️ Only Leads With an Email (DISCOVERY mode)",
            "type": "boolean",
            "description": "DISCOVERY mode only. Keep only leads that have at least one email address. Default is false.",
            "default": false
          },
          "titleKeyword": {
            "title": "🏷️ Title / Headline Contains (DISCOVERY mode)",
            "type": "string",
            "description": "DISCOVERY mode only. Keep only leads whose title, name, headline, job title or company contains this text (case-insensitive). Example: \"founder\". Leave empty to disable."
          },
          "useApifyProxy": {
            "title": "🌐 Use Apify Proxy (GOOGLE_SERP)",
            "type": "boolean",
            "description": "Route Google search requests through the Apify GOOGLE_SERP proxy (strongly recommended). Turn off only if you know what you are doing — direct requests are almost always blocked by Google.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}