API para LinkedIn: Buscar perfis (com e-mail)
Busca de pessoas que retorna um perfil completo E um e-mail de trabalho verificado para cada resultado. Busque perfis do LinkedIn por palavra-chave com filtros opcionais de localização e cargo; cada resultado retorna o registro de perfil completo (nome, título, localização, cargo atual, experiência profissional, formação e habilidades, além da URL do perfil, nome de usuário e ID) junto com um array emails com o e-mail de trabalho encontrado e sua entregabilidade. A descoberta de e-mail é feita por melhor esforço e exige que o perfil exponha um domínio de empresa resolvível; por isso, em uma busca ampla, muitos resultados retornam um array emails vazio e ainda são cobrados pela tarifa com e-mail. Se você já tem nomes e domínios de empresa, email.find, email_finding.icypeas e email_finding.dropleads encontram endereços diretamente por menos, e linkedin.email enriquece uma única URL de perfil conhecida. Para um perfil completo sem e-mail, use linkedin.search_profiles; para uma busca mais barata só com nome/título/URL, use linkedin.search_profiles_thin.
Como chamar
Faça sua primeira requisição
import os, requests res = requests.post( "https://api.getanyapi.com/v1/run/linkedin.search_profiles_email", headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"}, json={ "query": "" }, ) print(res.json())
{
"data": {
"items": [
{
"about": "A short example description of this item.",
"city": "San Francisco",
"connectionsCount": 12500,
"country": "US",
"countryCode": "US",
"coverImage": "https://example.com/image.jpg",
"creator": true,
"currentPosition": [
{}
],
"education": [
{}
],
"emails": [
{}
],
"experience": [
{}
],
"firstName": "Alex",
"followerCount": 12500,
"handle": "alex_rivera",
"headline": "Example title",
"hiring": true,
"id": "a1b2c3d4",
"image": "https://example.com/image.jpg",
"influencer": true,
"lastName": "Rivera",
"location": "example",
"openToWork": true,
"premium": true,
"skills": [
null
],
"state": "CA",
"url": "https://example.com/page",
"verified": true
}
]
},
"found": true,
"reason": "not_found"
}interface LinkedinSearchProfilesEmailResponse {
data: {
items: {
about?: string;
city?: string;
connectionsCount?: number;
country?: string;
countryCode?: string;
coverImage?: string;
creator?: boolean;
currentPosition?: {
}[];
education?: {
}[];
emails?: {
}[];
experience?: {
}[];
firstName?: string;
followerCount?: number | null;
handle?: string;
headline?: string;
hiring?: boolean;
id: string;
image?: string;
influencer?: boolean;
lastName?: string;
location?: string;
openToWork?: boolean;
premium?: boolean;
skills?: any[];
state?: string;
url: string;
verified?: boolean;
}[];
} | null;
found: boolean;
reason?: "not_found";
}Referência completa de parâmetros e resposta - todos os campos, tipos e exemplos deste endpoint.
Referência
Requisição, resposta e preço
Última verificação em 2026-09-29 · disponibilidade e latência medidas em 30dcurl -X POST https://api.getanyapi.com/v1/run/linkedin.search_profiles_email \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"companyHeadcount":["B"],"limit":5,"query":"founder"}'| Campo | Tipo | Valor de exemplo |
|---|---|---|
| Corpo da requisição | ||
| query | string | "founder"Consulta de busca de perfis do LinkedIn: um cargo, nome ou palavras-chave (ex.: 'Marketing Manager'). |
| companyHeadcount | array | ["B"]Filtra pelo porte da empresa atual (número de funcionários). Códigos: A=Autônomo, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1.000, G=1.001-5.000, H=5.001-10.000, I=10.001+. |
| companyHeadquarterLocations | array | Filtra pela localização da sede da empresa atual da pessoa, pelo nome do lugar (ex.: ['United States']). |
| currentCompanies | array | Filtra pessoas que trabalham atualmente em qualquer uma destas empresas, pelo nome (ex.: ['Google','Meta']). Vários nomes ampliam a correspondência (OR). |
| excludeCompanyHeadquarterLocations | array | Exclui pessoas cuja empresa atual tem sede em qualquer uma destas localizações. |
| excludeCurrentCompanies | array | Exclui pessoas que trabalham atualmente em qualquer uma destas empresas, pelo nome. |
| excludeCurrentJobTitles | array | Exclui pessoas cujo cargo atual corresponde a qualquer um destes. |
| excludeFunctionIds | array | Exclui estas funções (mesmos códigos de functionIds). |
| excludeLocations | array | Exclui pessoas em qualquer uma destas localizações, pelo nome do lugar. |
| excludePastCompanies | array | Exclui pessoas que já trabalharam em qualquer uma destas empresas, pelo nome. |
| excludePastJobTitles | array | Exclui pessoas que já tiveram qualquer um destes cargos. |
| excludeSchools | array | Exclui pessoas que estudaram em qualquer uma destas escolas, pelo nome. |
| excludeSeniorityLevelIds | array | Exclui estes níveis de senioridade (mesmos códigos de seniorityLevelIds). |
| firstNames | array | Filtra pessoas cujo primeiro nome corresponde a qualquer um destes. |
| functionIds | array | Filtra por função. Códigos: 1=Contabilidade, 2=Administrativo, 3=Artes e design, 4=Desenvolvimento de negócios, 5=Serviços comunitários e sociais, 6=Consultoria, 7=Educação, 8=Engenharia, 9=Empreendedorismo, 10=Finanças, 11=Serviços de saúde, 12=Recursos humanos, 13=Tecnologia da informação, 14=Jurídico, 15=Marketing, 16=Mídia e comunicação, 17=Serviços militares e de proteção, 18=Operações, 19=Gestão de produto, 20=Gestão de programas e projetos, 21=Compras, 22=Garantia de qualidade, 23=Imobiliário, 24=Pesquisa, 25=Vendas, 26=Sucesso e suporte ao cliente. |
| jobTitle | string | Filtro opcional por cargo atual (ex.: 'Software Engineer'). |
| lastNames | array | Filtra pessoas cujo sobrenome corresponde a qualquer um destes. |
| limit | integer | 5Número máximo de perfis completos (com e-mail) a retornar (1-25, padrão 10). A cobrança é por perfil retornado, então um limite menor custa menos. |
| location | string | Filtro opcional de localização (ex.: 'San Francisco'). |
| pastCompanies | array | Filtra pessoas que já trabalharam em qualquer uma destas empresas, pelo nome. |
| pastJobTitles | array | Filtra por um cargo anterior que a pessoa teve (ex.: ['Product Manager']). |
| profileLanguages | array | Filtra pelo idioma principal do perfil. |
| recentlyChangedJobs | boolean | Quando true, retorna só pessoas que mudaram de emprego recentemente (um sinal forte para vendas/recrutamento). |
| recentlyPostedOnLinkedIn | boolean | Quando true, retorna só pessoas que publicaram no LinkedIn recentemente (um sinal de atividade). |
| schools | array | Filtra pessoas que estudaram em qualquer uma destas escolas, pelo nome. |
| seniorityLevelIds | array | Filtra por nível de senioridade. Códigos: 100=Em treinamento, 110=Nível de entrada, 120=Sênior, 130=Estratégico, 200=Gerente iniciante, 210=Gerente experiente, 220=Diretor, 300=Vice-presidente, 310=CXO, 320=Proprietário/Sócio. |
| yearsAtCurrentCompanyIds | array | Filtra pelo tempo na empresa atual. Códigos: 1=Menos de 1 ano, 2=1 a 2 anos, 3=3 a 5 anos, 4=6 a 10 anos, 5=Mais de 10 anos. |
| yearsOfExperienceIds | array | Filtra pelo total de anos de experiência. Códigos: 1=Menos de 1 ano, 2=1 a 2 anos, 3=3 a 5 anos, 4=6 a 10 anos, 5=Mais de 10 anos. |
| Resposta | ||
| data | object | The results wrapper, or null when nothing was found. |
| data.items | object[] | Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity. |
| data.items[].about | string | Profile about / summary text. Populated whenever the provider has data for the entity. |
| data.items[].city | string | City of the member. |
| data.items[].connectionsCount | integer | Number of connections on the profile. |
| data.items[].country | string | Country of the member. |
| data.items[].countryCode | string | Two-letter country code of the member. |
| data.items[].coverImage | string | Profile cover (banner) image URL. The query string is a signed token, so keep the URL intact. |
| data.items[].creator | boolean | Whether the member is in LinkedIn creator mode. |
| data.items[].currentPosition | object[] | Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. |
| data.items[].education | object[] | Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile. |
| data.items[].emails | object[] | Discovered work email(s) for the member. Each entry is an open object with the email address plus deliverability signals (deliverable, disposable, catchAllDomain, validEmailServer, qualityScore, status); may be empty when no email could be verified. Populated whenever the provider has data for the entity. |
| data.items[].experience | object[] | Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity. |
| data.items[].firstName | string | Member's first name. Populated whenever the provider has data for the entity. |
| data.items[].followerCount | integer | Number of followers of the profile; null when the source does not report it. |
| data.items[].handle | string | Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity. |
| data.items[].headline | string | Profile headline (the tagline under the name). Populated whenever the provider has data for the entity. |
| data.items[].hiring | boolean | Whether the member shows the Hiring badge. |
| data.items[].id | string | LinkedIn member URN id for the profile. |
| data.items[].image | string | Profile picture URL. Populated whenever the provider has data for the entity. |
| data.items[].influencer | boolean | Whether LinkedIn marks the member as an influencer. |
| data.items[].lastName | string | Member's last name. Populated whenever the provider has data for the entity. |
| data.items[].location | string | Member's location as a single string (city, region, country). Populated whenever the provider has data for the entity. |
| data.items[].openToWork | boolean | Whether the member has the Open to Work flag set. |
| data.items[].premium | boolean | Whether the member has a LinkedIn Premium subscription. |
| data.items[].skills | any[] | Listed skills, as free-form strings when present. |
| data.items[].state | string | State or region of the member. |
| data.items[].url | string | Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity. |
| data.items[].verified | boolean | Whether LinkedIn has verified the member's identity. |
| found | boolean | True when at least one profile was returned. |
| reason | "not_found" | Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost. |
| Preço | ||
| Preço por requisição (teto) | USD | US$ 0,336 |
| Preço /mil resultados | USD | US$ 12,92 |
Dúvidas frequentes
Sobre o endpoint Buscar perfis (com e-mail) da API para LinkedIn
O endpoint Buscar perfis (com e-mail) da AnyAPI para LinkedIn retorna dados de LinkedIn em JSON normalizado com uma chamada POST para /v1/run/linkedin.search_profiles_email. Busca de pessoas que retorna um perfil completo E um e-mail de trabalho verificado para cada resultado. Busque perfis do LinkedIn por palavra-chave com filtros opcionais de localização e cargo; cada resultado retorna o registro de perfil completo (nome, título, localização, cargo atual, experiência profissional, formação e habilidades, além da URL do perfil, nome de usuário e ID) junto com um array emails com o e-mail de trabalho encontrado e sua entregabilidade. A descoberta de e-mail é feita por melhor esforço e exige que o perfil exponha um domínio de empresa resolvível; por isso, em uma busca ampla, muitos resultados retornam um array emails vazio e ainda são cobrados pela tarifa com e-mail. Se você já tem nomes e domínios de empresa, email.find, email_finding.icypeas e email_finding.dropleads encontram endereços diretamente por menos, e linkedin.email enriquece uma única URL de perfil conhecida. Para um perfil completo sem e-mail, use linkedin.search_profiles; para uma busca mais barata só com nome/título/URL, use linkedin.search_profiles_thin. A AnyAPI retorna um schema normalizado, seja qual for a fonte que atende. Custa US$ 12,92 por mil resultados, e nunca mais de US$ 0,336 por requisição, em dólares, sem assinatura e sem mínimo mensal. Nos últimos 30 dias, 88,7% das chamadas ao endpoint Buscar perfis (com e-mail) da API para LinkedIn feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 13,1 segundos, em 71 chamadas medidas.