API para Person Enrichment

API para Person Enrichment: Bettercontact

Passe um contato pelo waterfall de e-mail da BetterContact a partir de um nome mais o domínio da empresa ou de uma URL do LinkedIn, e receba o endereço vencedor com o veredito de entregabilidade, o provedor que o encontrou e o registro do empregador. Só um contato encontrado é cobrado.

POST/v1/run/person_enrichment.bettercontact
Disponibilidade
100,00%
30d · 3 chamadas
Requisições
3
30d · semanal, últimas 12 sem.
Resposta
110,1s
mediana · 30d

Como chamar

Faça sua primeira requisição

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/person_enrichment.bettercontact",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "firstName": "",
        "lastName": ""
    },
)
print(res.json())
Abrir em
Obter chave grátis
Resposta de exemplo
{
  "data": {
    "city": "San Francisco",
    "company": {
      "about": "A short example description of this item.",
      "addressCity": "San Francisco",
      "addressCountry": "US",
      "addressState": "CA",
      "addressStreet": "123 Main St",
      "addressZipcode": "123 Main St",
      "companyId": "Acme Inc",
      "countryCode": "US",
      "crunchbaseUrl": "https://example.com/page",
      "description": "A short example description of this item.",
      "directionsUrl": "https://example.com/page",
      "domain": "example.com",
      "employees": 42,
      "employeesOnLinkedin": 42,
      "followers": 12500,
      "founded": 42,
      "headquarters": "example",
      "headquartersAddress": "123 Main St",
      "headquartersCity": "San Francisco",
      "headquartersCountry": "US",
      "image": "https://example.com/image.jpg",
      "industryCode": "general",
      "legalId": "a1b2c3d4",
      "legalName": "Example title",
      "linkedinId": "https://example.com/page",
      "linkedinUrl": "https://example.com/page",
      "name": "Example title",
      "organizationType": "Acme Inc",
      "phone": "+1 555-0142",
      "size": "example",
      "website": "https://example.com/page"
    },
    "connections": 42,
    "contactId": "a1b2c3d4",
    "country": "US",
    "countryCode": "US",
    "currentCompany": "Acme Inc",
    "doNotContact": true,
    "email": "alex@example.com",
    "emailProvider": "alex@example.com",
    "emailStatus": "alex@example.com",
    "enriched": true,
    "firstName": "Alex",
    "followers": 12500,
    "fullName": "Alex Rivera",
    "gender": "example",
    "image": "https://example.com/image.jpg",
    "jobTitle": "Example title",
    "lastName": "Rivera",
    "linkedinId": "https://example.com/page",
    "linkedinUrl": "https://example.com/page",
    "location": "example",
    "postalCode": "94107",
    "provider": "a1b2c3d4"
  },
  "found": true,
  "reason": "not_found"
}
Interface da resposta
interface PersonEnrichmentBettercontactResponse {
  data: {
    city?: string;
    company?: {
      about?: string;
      addressCity?: string;
      addressCountry?: string;
      addressState?: string;
      addressStreet?: string;
      addressZipcode?: string;
      companyId?: string;
      countryCode?: string;
      crunchbaseUrl?: string;
      description?: string;
      directionsUrl?: string;
      domain?: string;
      employees?: number;
      employeesOnLinkedin?: number;
      followers?: number;
      founded?: number;
      headquarters?: string;
      headquartersAddress?: string;
      headquartersCity?: string;
      headquartersCountry?: string;
      image?: string;
      industryCode?: string;
      legalId?: string;
      legalName?: string;
      linkedinId?: string;
      linkedinUrl?: string;
      name?: string;
      organizationType?: string;
      phone?: string;
      size?: string;
      website?: string;
    };
    connections?: number;
    contactId?: string;
    country?: string;
    countryCode?: string;
    currentCompany?: string;
    doNotContact?: boolean;
    email?: string;
    emailProvider?: string;
    emailStatus?: string;
    enriched: boolean;
    firstName?: string;
    followers?: number;
    fullName?: string;
    gender?: string;
    image?: string;
    jobTitle?: string;
    lastName?: string;
    linkedinId?: string;
    linkedinUrl?: string;
    location?: string;
    postalCode?: string;
    provider?: string;
  } | 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 30d
POST /v1/run/person_enrichment.bettercontact
curl -X POST https://api.getanyapi.com/v1/run/person_enrichment.bettercontact \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"companyDomain":"stripe.com","firstName":"Patrick","lastName":"Collison","linkedinUrl":"https://www.linkedin.com/in/patrickcollison"}'
CampoTipoValor de exemplo
Corpo da requisição
firstNamestring"Patrick"Primeiro nome do contato.
lastNamestring"Collison"Sobrenome do contato.
companystringNome do empregador, para quando você não tem o domínio.
companyDomainstring"stripe.com"Domínio do empregador, ex.: stripe.com. O sinal de empresa mais forte para o waterfall.
customFieldsstringIdentificadores arbitrários devolvidos no resultado, para associar a resposta aos seus próprios registros.
linkedinUrlstring"https://www.linkedin.com/in/patrickcollison"URL do perfil do contato no LinkedIn, que aumenta a taxa de correspondência.
Resposta
dataobjectThe matched contact, or null when the waterfall found none.
data.citystringCity.
data.companyobjectThe contact's employer.
data.company.aboutstringCompany about text.
data.company.addressCitystringAddress city.
data.company.addressCountrystringAddress country.
data.company.addressStatestringAddress state or region.
data.company.addressStreetstringStreet address.
data.company.addressZipcodestringAddress postal code.
data.company.companyIdstringBetterContact's own company identifier.
data.company.countryCodestringISO 3166-1 alpha-2 country code.
data.company.crunchbaseUrlstringCompany Crunchbase profile URL.
data.company.descriptionstringCompany description.
data.company.directionsUrlstringMap directions URL for the office.
data.company.domainstringCompany domain.
data.company.employeesintegerEmployees BetterContact counts.
data.company.employeesOnLinkedinintegerEmployees LinkedIn shows for the company.
data.company.followersintegerLinkedIn follower count.
data.company.foundedintegerYear the company was founded.
data.company.headquartersstringHeadquarters as one display string.
data.company.headquartersAddressstringHeadquarters street address.
data.company.headquartersCitystringHeadquarters city.
data.company.headquartersCountrystringHeadquarters country.
data.company.imagestringCompany logo URL.
data.company.industryCodestringIndustry classification code.
data.company.legalIdstringCompany registration number.
data.company.legalNamestringRegistered legal name.
data.company.linkedinIdstringCompany LinkedIn numeric id.
data.company.linkedinUrlstringCompany LinkedIn page URL.
data.company.namestringCompany name.
data.company.organizationTypestringOrganization type.
data.company.phonestringCompany switchboard number.
data.company.sizestringEmployee headcount band.
data.company.websitestringCompany website URL.
data.connectionsintegerLinkedIn connection count.
data.contactIdstringBetterContact's own contact identifier.
data.countrystringCountry.
data.countryCodestringISO 3166-1 alpha-2 country code.
data.currentCompanystringCurrent employer as BetterContact names it.
data.doNotContactbooleanTrue when the contact is on a do-not-contact list.
data.emailstringThe email address the waterfall settled on.
data.emailProviderstringMailbox provider behind the address, e.g. Google.
data.emailStatusstringDeliverability verdict for the address, e.g. valid, catch_all_safe, catch_all_not_safe, undeliverable, not_found.
data.enrichedbooleanTrue when the waterfall matched a contact. A false answer is a legitimate miss and is not billed.
data.firstNamestringFirst name.
data.followersintegerLinkedIn follower count.
data.fullNamestringContact's full name.
data.genderstringGender recorded for the contact.
data.imagestringContact's profile picture URL.
data.jobTitlestringCurrent job title.
data.lastNamestringLast name.
data.linkedinIdstringContact's LinkedIn numeric id.
data.linkedinUrlstringContact's LinkedIn profile URL.
data.locationstringLocation as one display string.
data.postalCodestringPostal code.
data.providerstringWhich data source in the waterfall produced the address.
foundbooleanFalse when the waterfall matched no contact.
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çãoUSDUS$ 0,0828
Preço /mil req.USDUS$ 82,80

Dúvidas frequentes

Sobre o endpoint Bettercontact da API para Person Enrichment

O endpoint Bettercontact da AnyAPI para Person Enrichment retorna dados de Person Enrichment em JSON normalizado com uma chamada POST para /v1/run/person_enrichment.bettercontact. Passe um contato pelo waterfall de e-mail da BetterContact a partir de um nome mais o domínio da empresa ou de uma URL do LinkedIn, e receba o endereço vencedor com o veredito de entregabilidade, o provedor que o encontrou e o registro do empregador. Só um contato encontrado é cobrado. A AnyAPI retorna um schema normalizado, seja qual for a fonte que atende. Custa a partir de US$ 82,80 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Nos últimos 30 dias, 100,0% das chamadas ao endpoint Bettercontact da API para Person Enrichment feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 110,1 segundos, em 3 chamadas medidas.

Custa a partir de US$ 82,80 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Você recarrega uma carteira em dólares e cada chamada desconta dela. Algumas requisições pagas pela carteira que falham geram cobranças de processamento, que repassamos pelo custo, sem margem; a resposta de erro mostra o valor cobrado.

Passe um contato pelo waterfall de e-mail da BetterContact a partir de um nome mais o domínio da empresa ou de uma URL do LinkedIn, e receba o endereço vencedor com o veredito de entregabilidade, o provedor que o encontrou e o registro do empregador. Só um contato encontrado é cobrado. A resposta é JSON normalizado, com o mesmo envelope que todo endpoint da AnyAPI retorna, então processar um segundo endpoint é só trocar a URL, e nada mais.

Nos últimos 30 dias, 100,0% das chamadas ao endpoint Bettercontact da API para Person Enrichment feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 110,1 segundos, em 3 chamadas medidas. Estas são medições da própria AnyAPI sobre o tráfego que passa pelo gateway, recalculadas continuamente, e não uma meta de nível de serviço publicada.