Hunter API
    • Introdução
    • Autenticação
    • limites e taxas
    • Erros
    • Webhooks
    • Pipelines
      • Listar pipelines
        GET
      • Obter pipeline
        GET
    • Contatos
      • Listar contatos
        GET
      • Criar contato
        POST
      • Buscar contatos (filtros avançados)
        POST
      • Obter contato por ID
        GET
      • Atualizar contato
        PATCH
      • Excluir contato
        DELETE
      • Associar contato a empresa
        POST
      • Associar contato a negócio
        POST
      • Desassociar contato de empresa
        DELETE
      • Desassociar contato de negócio
        DELETE
    • Empresas
      • Listar empresas
        GET
      • Criar empresa
        POST
      • Buscar empresas (filtros avançados)
        POST
      • Obter empresa por ID
        GET
      • Atualizar empresa
        PATCH
      • Excluir empresa
        DELETE
      • Vincular contato à empresa
        POST
      • Promover email da empresa a contato
        POST
      • Vincular negócio à empresa
        POST
      • Desvincular contato da empresa
        DELETE
      • Desvincular negócio da empresa
        DELETE
    • Negocios
      • Listar negócios
      • Criar negócio
      • Buscar negócios (filtros avançados)
      • Timeline de outcomes do negócio
      • Obter negócio por ID
      • Atualizar negócio
      • Excluir negócio
      • Vincular contato ao negócio
      • Vincular empresa ao negócio
      • Desvincular contato do negócio
      • Desvincular empresa do negócio
    • Atividades
      • Listar atividades
    • Conversas
      • Listar conversas
      • Obter conversa
      • Listar mensagens da conversa
    • Campanhas
      • Listar campanhas
      • Criar campanha
      • Buscar campanha por id
      • Atualizar campanha
      • Listar bloqueios da campanha
    • Campos personalizados
      • Listar campos personalizados
      • Criar campo personalizado
      • Obter campo personalizado
      • Atualizar campo personalizado
      • Excluir campo personalizado
    • Webhooks
      • Evento: contact.created
      • Evento: contact.updated
      • Evento: contact.deleted
      • Evento: company.created
      • Evento: company.updated
      • Evento: company.deleted
      • Evento: deal.created
      • Evento: deal.updated
      • Evento: deal.stage_changed
      • Evento: deal.won
      • Evento: deal.lost
      • Evento: message.received
      • Evento: message.sent
      • Evento: account_plan.approved
      • Evento: account_plan.completed
    • Cadências
      • Listar cadências
      • Atualizar cadência
      • Aprovar cadência
      • Rejeitar cadência
      • Gerar cadência para um negócio
      • Gerar cadência para um contato do negócio
      • Listar passos de cadência por entidade
      • Atualizar passo de cadência
      • Remover passo de cadência
      • Verificar se é possível gerar cadência
      • Ajustar copy do passo com IA
      • Desfazer ajuste de copy do passo
      • Adicionar passo à cadência
      • Marcar passo como já conectado
    • Leads
      • Criar lead inbound (contato + empresa + negócio)
    • Schemas
      • ContactEntity
      • ContactFilterCondition
      • SearchContactDto
      • CreateContactDto
      • LinkCompanyDto
      • LinkDealDto
      • CompanyEntity
      • CompanyFilterCondition
      • SearchCompanyDto
      • LinkContactDto
      • PromoteEmailDto
      • DealEntity
      • DealFilterCondition
      • SearchDealDto
      • CreateDealDto
      • LinkContactToDealDto
      • LinkCompanyToDealDto
      • AccountPlanStepEntity
      • AccountPlanEntity
      • OkResponse
      • LeadContactInput
      • LeadDealInput
      • LeadCompanyInput
      • CreateLeadDto
      • ActivityEntity
      • PipelineStageEntity
      • PipelineEntity
      • ConversationEntity
      • MessageEntity
      • CampaignEntity
      • CustomFieldDefinitionEntity
      • ContactCreatedEvent
      • ContactUpdatedEvent
      • ContactDeletedEvent
      • CompanyCreatedEvent
      • CompanyUpdatedEvent
      • CompanyDeletedEvent
      • DealCreatedEvent
      • DealUpdatedEvent
      • DealStageChangedEvent
      • DealWonEvent
      • DealLostEvent
      • MessageReceivedEvent
      • MessageSentEvent
      • AccountPlanApprovedEvent
      • AccountPlanCompletedEvent

    Webhooks

    Alem de consultar dados via REST, voce pode configurar webhooks para receber eventos em tempo real — sem polling, sem desperdicio de requisicoes.

    Configuracao

    Em Configuracoes > Desenvolvedores > Webhooks:

    1. Informe a URL HTTPS do seu endpoint
    2. Selecione os eventos que quer receber
    3. Salve e copie o Signing Secret — use pra validar que o payload veio da Hunter

    Eventos disponiveis

    Contatos

    • contact.created
    • contact.updated
    • contact.deleted

    Empresas

    • company.created
    • company.updated
    • company.deleted

    Negocios

    • deal.created
    • deal.updated
    • deal.stage_changed
    • deal.won
    • deal.lost

    Conversas

    • message.received
    • message.sent

    Planos de conta

    • account_plan.approved
    • account_plan.completed

    Formato do payload

    {
      "event": "deal.stage_changed",
      "workspaceId": "wks_abc123",
      "occurredAt": "2026-04-18T14:23:00.000Z",
      "data": {
        "id": "deal_xyz789",
        "title": "Proposta Acme Corp",
        "previousStage": "qualificacao",
        "newStage": "proposta",
        "...": "..."
      }
    }
    

    Assinatura e validacao

    Cada entrega inclui o header X-Hunter-Signature contendo um HMAC-SHA256 do body bruto usando seu signing secret:

    X-Hunter-Signature: sha256=abc123...
    

    Valide antes de processar. Exemplo em Node.js:

    import crypto from 'crypto'
    
    function verify(rawBody, signature, secret) {
      const expected = 'sha256=' + crypto
        .createHmac('sha256', secret)
        .update(rawBody)
        .digest('hex')
      return crypto.timingSafeEqual(
        Buffer.from(signature),
        Buffer.from(expected)
      )
    }
    

    Retentativas

    Entregas com falha (qualquer resposta non-2xx ou timeout de 10s) sao reenviadas com backoff exponencial:

    • 1a retry: 30s depois
    • 2a retry: 2min depois
    • 3a retry: 10min depois
    • 4a retry: 1h depois
    • 5a retry: 6h depois

    Depois da 5a, aparecem como falhas na pagina de Webhooks pra voce reprocessar manualmente.

    Boas praticas

    • Responda rapido — processe o payload em background, retornando 200 OK em <3 segundos
    • Seja idempotente — eventos podem ser entregues mais de uma vez. Use occurredAt + data.id como chave de deduplicacao
    • Ignore eventos desconhecidos — vamos adicionar novos tipos com o tempo; faca seu handler ignorar event que nao reconhece em vez de quebrar
    Modified at 2026-04-18 19:48:10
    Previous
    Erros
    Next
    Listar pipelines
    Built with