{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Email Finder API - Work Emails, Phones, Profiles",
    "description": "Find work emails, personal emails and phone numbers behind professional profiles. Search people by job title, seniority, skills, company, technology and job change signals, pull decision makers at any company, and enrich a profile URL, an email or a domain. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "69lauMw3JtCfMpUUs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~linkedin-email-finder-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-linkedin-email-finder-api",
        "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/nabeelbaghoor~linkedin-email-finder-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-linkedin-email-finder-api",
        "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/nabeelbaghoor~linkedin-email-finder-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-linkedin-email-finder-api",
        "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 to do",
            "enum": [
              "peopleSearch",
              "companySearch",
              "decisionMakers",
              "linkedinContact",
              "linkedinEnrich",
              "emailEnrich",
              "domainEnrich"
            ],
            "type": "string",
            "description": "People search finds profiles matching your filters. Company search finds companies. Decision makers returns the senior people at a company. Profile contacts and profile enrichment take a list of profile URLs. Email enrichment turns an address into a profile, and company enrichment turns a domain into a company.",
            "default": "peopleSearch"
          },
          "jobTitles": {
            "title": "Job titles",
            "type": "array",
            "description": "Current job titles to match, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "pastJobTitles": {
            "title": "Past job titles",
            "type": "array",
            "description": "Titles the person held earlier in their career, one per line. Useful for finding people who have since been promoted out of a role you sell into. People search only.",
            "items": {
              "type": "string"
            }
          },
          "jobFunctions": {
            "title": "Job functions",
            "type": "array",
            "description": "Broad functions such as Engineering, Marketing or Sales, one per line. Coarser than a job title and useful when titles vary between companies. People search only.",
            "items": {
              "type": "string"
            }
          },
          "seniorities": {
            "title": "Seniority levels",
            "type": "array",
            "description": "Seniority levels such as Manager, Director or Vice President, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Skills listed on the profile, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Company names, one per line. In people search these are the current employers to match. In company search they are the companies to look up. In decision makers mode each name is one company to walk.",
            "items": {
              "type": "string"
            }
          },
          "pastCompanies": {
            "title": "Past companies",
            "type": "array",
            "description": "Companies the person used to work at, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Companies to leave out of the results, one per line. The quickest way to keep your own customers and your own staff out of a prospecting list. People search only.",
            "items": {
              "type": "string"
            }
          },
          "companyFilter": {
            "title": "Company match period",
            "enum": [
              "current",
              "past",
              "past_only",
              "both"
            ],
            "type": "string",
            "description": "Whether the company names above should match where someone works now, where they used to work, or either. People search only.",
            "default": "current"
          },
          "domains": {
            "title": "Company domains",
            "type": "array",
            "description": "Company domains, one per line. Used by people search, company search, company enrichment and decision makers. A pasted URL is reduced to the bare hostname, so a messy list still works.",
            "items": {
              "type": "string"
            }
          },
          "profileUrls": {
            "title": "Profile URLs",
            "type": "array",
            "description": "Public professional profile URLs, one per line. Used by profile contacts and profile enrichment. A bare handle is expanded to a full URL and tracking parameters are stripped, so a list copied out of a browser still works.",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "Email addresses",
            "type": "array",
            "description": "Email addresses, one per line. Used by email enrichment. An address pasted inside a longer string, such as a mail header, is extracted before the request.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Locations to match, one per line. In people search this is where the person is; in company search it is where the company is.",
            "items": {
              "type": "string"
            }
          },
          "locationRadiusMiles": {
            "title": "Location radius (miles)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Widen each location to a radius around it, up to 500 miles. Useful when a metropolitan area is spelled differently on different profiles. People search only."
          },
          "currentWorkLocations": {
            "title": "Current work locations",
            "type": "array",
            "description": "Where the person works now, one per line, as distinct from where they live. People search only.",
            "items": {
              "type": "string"
            }
          },
          "pastWorkLocations": {
            "title": "Past work locations",
            "type": "array",
            "description": "Where the person used to work, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Industries to match, one per line. Used by people search and company search.",
            "items": {
              "type": "string"
            }
          },
          "education": {
            "title": "Schools and degrees",
            "type": "array",
            "description": "Schools or degrees on the profile, one per line. People search only.",
            "items": {
              "type": "string"
            }
          },
          "technologies": {
            "title": "Technologies used",
            "type": "array",
            "description": "Technologies the company runs, one per line. This is the technographic filter: it finds companies by what is in their stack rather than by what they say they do. Company search only.",
            "items": {
              "type": "string"
            }
          },
          "companySizes": {
            "title": "Company size",
            "type": "array",
            "description": "Headcount bands to match. Used by people search and company search.",
            "items": {
              "type": "string",
              "enum": [
                "1_10",
                "11_50",
                "51_200",
                "201_500",
                "501_1000",
                "1001_5000",
                "5001_10000",
                "10001"
              ],
              "enumTitles": [
                "1 to 10 employees",
                "11 to 50 employees",
                "51 to 200 employees",
                "201 to 500 employees",
                "501 to 1000 employees",
                "1001 to 5000 employees",
                "5001 to 10000 employees",
                "More than 10000 employees"
              ]
            },
            "default": []
          },
          "yearsOfExperience": {
            "title": "Years of experience",
            "type": "array",
            "description": "Total career length bands. People search only.",
            "items": {
              "type": "string",
              "enum": [
                "0_1",
                "1_2",
                "3_5",
                "6_10",
                "10"
              ],
              "enumTitles": [
                "Under 1 year",
                "1 to 2 years",
                "3 to 5 years",
                "6 to 10 years",
                "More than 10 years"
              ]
            },
            "default": []
          },
          "yearsInCurrentRole": {
            "title": "Years in current role",
            "type": "array",
            "description": "How long the person has been in the job they hold now. Short tenures pair well with the recently changed jobs filter; long ones find people overdue for a move. People search only.",
            "items": {
              "type": "string",
              "enum": [
                "0_1",
                "1_2",
                "3_5",
                "6_10",
                "10"
              ],
              "enumTitles": [
                "Under 1 year",
                "1 to 2 years",
                "3 to 5 years",
                "6 to 10 years",
                "More than 10 years"
              ]
            },
            "default": []
          },
          "recentlyChangedJobs": {
            "title": "Recently changed jobs",
            "type": "boolean",
            "description": "Only return people who started a new role recently. A job change is the strongest buying signal in most B2B motions, because budgets and tooling get revisited. People search only.",
            "default": false
          },
          "includeRelatedJobTitles": {
            "title": "Include related job titles",
            "type": "boolean",
            "description": "Widen each job title to the titles the provider considers equivalent, so Head of Engineering also matches VP Engineering and Engineering Director. People search only.",
            "default": false
          },
          "currentTitlesOnly": {
            "title": "Match current titles only",
            "type": "boolean",
            "description": "Match the job titles above against the role someone holds now rather than anything in their history. On by default. People search only.",
            "default": true
          },
          "keyword": {
            "title": "Free text keyword",
            "type": "string",
            "description": "A free text term matched across the profile, for anything the structured filters do not cover. People search only."
          },
          "name": {
            "title": "Person name",
            "type": "string",
            "description": "Narrow a people search to one named person. Combine it with a company or a domain when the name is a common one. People search only."
          },
          "minRevenue": {
            "title": "Minimum revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return companies at or above this annual revenue. Company search only."
          },
          "maxRevenue": {
            "title": "Maximum revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return companies at or below this annual revenue. Company search only."
          },
          "foundedFrom": {
            "title": "Founded from year",
            "minimum": 1985,
            "type": "integer",
            "description": "Only return companies founded in or after this year. Company search only."
          },
          "foundedTo": {
            "title": "Founded to year",
            "type": "integer",
            "description": "Only return companies founded in or before this year. Company search only."
          },
          "headquartersOnly": {
            "title": "Headquarters only",
            "type": "boolean",
            "description": "Match a company's location against its headquarters rather than any office it has. Company search only.",
            "default": false
          },
          "revealContactInfo": {
            "title": "Reveal contact details",
            "type": "boolean",
            "description": "Return the actual email addresses and phone numbers rather than only whether they exist. This is what spends your provider contact credits, so it is off by default: with it off you still get the full profile, the employer and a flag for each contact type the provider holds.",
            "default": false
          },
          "dataTypes": {
            "title": "Contact types wanted",
            "type": "array",
            "description": "Which contact types to ask for. In people search this also narrows the results to profiles that have them. In profile contacts mode it decides which addresses are returned. Leave empty for the provider's default.",
            "items": {
              "type": "string",
              "enum": [
                "work_email",
                "personal_email",
                "phone"
              ],
              "enumTitles": [
                "Work email",
                "Personal email",
                "Phone number"
              ]
            },
            "default": []
          },
          "detailedExperience": {
            "title": "Detailed work history",
            "type": "boolean",
            "description": "Return the full role by role work history rather than the current position alone. People search only.",
            "default": false
          },
          "detailedEducation": {
            "title": "Detailed education history",
            "type": "boolean",
            "description": "Return the full education history rather than a summary. People search only.",
            "default": false
          },
          "pageSize": {
            "title": "Results per request",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many profiles or companies to ask for in one search request. The provider allows up to 25, which is the default. The actor pages through the results until they run out, so this changes the request count rather than the total returned.",
            "default": 25
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Pace the run below the provider's own per-route ceilings, which are 60 per minute on profile search, 150 on the contact availability checks and 1000 elsewhere. Leave empty to use each route's own ceiling, which is what you want unless your plan is capped lower."
          },
          "skipNotFound": {
            "title": "Skip inputs with no result",
            "type": "boolean",
            "description": "Leave inputs the provider had nothing for out of the dataset. Off by default, because keeping the misses is what lets you see which inputs resolved and which did not. Misses are never charged for either way.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many rows. This is the cap on both spend and run time.",
            "default": 100
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own API key for the contact data API, sent in the request header rather than a URL parameter, so it never appears in a log line or a redirect. Required for every lookup. Stored as a secret."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}