> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Validar Webhook do Monitor

> Envia um payload de teste assinado para uma URL de webhook e informa se ele foi aceito.

**Isso realiza uma entrega HTTP real**, não uma verificação de sintaxe da URL. O receptor precisa aceitar um `POST` e responder com sucesso — uma URL que apenas serve uma página em `GET` ainda assim falha. Em caso de falha, você recebe `40023` (URL inválida ou inacessível) ou `40022` (falha na entrega de teste), e `details` traz o corpo bruto da resposta upstream, que pode ter vários kilobytes de HTML. Informe `monitor_id` para assinar o teste com a assinatura real desse monitor; se omitido, é usada uma assinatura de placeholder.



## OpenAPI

````yaml pt-openapi POST /monitors/webhook/validate
openapi: 3.0.0
info:
  description: >-
    A API Pubrio entrega inteligência de expansão de mercado — sinais em tempo
    real que indicam quando uma empresa entra em um novo mercado — além dos
    dados de empresas e pessoas por trás desses sinais. Pesquise, consulte e
    enriqueça contas e contatos, e assine sinais de movimentação tipados e
    datados em mais de 200 mercados.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/pt-BR/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/pt-BR/get-in-touch
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.pubrio.com
security:
  - pubrio_api_key: []
tags:
  - name: Profile
    description: Informações do perfil da equipe e estatísticas de uso
  - name: Enrichment
    description: Enriqueça registros de pessoas e empresas com dados B2B detalhados
  - name: Lookalike
    description: Encontre empresas semelhantes a uma empresa específica
  - name: Search
    description: Pesquise pessoas, empresas, vagas, notícias e anúncios com filtros
  - name: Lookup
    description: >-
      Consulte informações detalhadas de pessoas, empresas, vagas, notícias,
      anúncios e tecnologias específicas
  - name: LinkedIn
    description: >-
      Consulte dados de pessoas e empresas por meio de URLs de perfil do
      LinkedIn
  - name: Redeem
    description: >-
      Resgate créditos para desbloquear detalhes de contato de pessoas
      (individual e em lote)
  - name: Channels
    description: >-
      Gerencie templates de canais de outreach (criar, atualizar, excluir,
      listar)
  - name: Monitor
    description: >-
      Crie e gerencie monitores de dados com webhooks, estatísticas e
      processamento
  - name: Filters
    description: >-
      Obtenha os valores de filtro disponíveis para os parâmetros de busca
      (tecnologias, localizações, verticais etc.)
  - name: API Keys
    description: >-
      Liste e inspecione logs de requisições da API e análises de uso das chaves
      de API
  - name: Insights
    description: Insights agregados de sinais para empresas (vagas, notícias, anúncios).
  - name: Export
    description: Exportações de dados em massa (consomem créditos).
  - name: Expansion
    description: >-
      Inteligência de expansão de mercado de empresas: sinais, estágios,
      mercados e exportações.
externalDocs:
  description: >-
    A API Pubrio é usada para pesquisar, pré-visualizar e enriquecer contatos e
    contas. O banco de dados Pubrio oferece dados extensos de contatos B2B e
    inteligência de vendas.
  url: https://docs.pubrio.com
paths:
  /monitors/webhook/validate:
    post:
      tags:
        - Monitor
      summary: Validar webhook do monitor
      description: >-
        Envia um payload de teste assinado para uma URL de webhook e informa se
        ele foi aceito.


        **Isso realiza uma entrega HTTP real**, não uma verificação de sintaxe
        da URL. O receptor precisa aceitar um `POST` e responder com sucesso —
        uma URL que apenas serve uma página em `GET` ainda assim falha. Em caso
        de falha, você recebe `40023` (URL inválida ou inacessível) ou `40022`
        (falha na entrega de teste), e `details` traz o corpo bruto da resposta
        upstream, que pode ter vários kilobytes de HTML. Informe `monitor_id`
        para assinar o teste com a assinatura real desse monitor; se omitido, é
        usada uma assinatura de placeholder.
      operationId: monitors_validate_webhook
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                monitor_id:
                  type: string
                  format: uuid
                  description: >-
                    Identificador único de um monitor existente a ser testado.
                    Opcional para testar novas configurações.
                name:
                  type: string
                  description: Nome do monitor.
                description:
                  type: string
                  description: Descrição do monitor.
                detection_mode:
                  type: string
                  description: >-
                    Como os sinais são detectados. `signal_first` varre o
                    mercado de forma ampla; `company_first` acompanha uma lista
                    nomeada de contas e exige pelo menos uma empresa, domínio ou
                    URL do LinkedIn. **Imutável após a criação** — alterar esse
                    valor em um monitor existente retorna `40021`. Crie um novo
                    monitor em vez disso.
                  enum:
                    - company_first
                    - signal_first
                signal_types:
                  type: array
                  items:
                    type: string
                    enum:
                      - jobs
                      - news
                      - advertisements
                      - expansions
                  description: Tipos de sinais a monitorar.
                signal_filters:
                  type: array
                  items:
                    type: object
                    required:
                      - signal_type
                    properties:
                      signal_type:
                        type: string
                        enum:
                          - jobs
                          - news
                          - advertisements
                          - expansions
                        description: Qual stream esta entrada filtra.
                      filters:
                        type: object
                        description: >-
                          Filtros para este stream. `jobs`, `news` e
                          `advertisements` aceitam os parâmetros de [Job
                          Search](/pt/api-reference/endpoint/companies/job_search),
                          [News
                          Search](/pt/api-reference/endpoint/companies/news_search)
                          e [Advertisement
                          Search](/pt/api-reference/endpoint/companies/advertisements_search).
                          `expansions` usa o vocabulário do [Expansion
                          Search](/pt/api-reference/endpoint/expansions/market_lookup):
                          `froms` / `tos`, `window_days`, `stages`, `scopes`,
                          `momentum`, `freshness`, `signal_types`,
                          `signal_subtypes`, `signal_strengths`, `source_types`.
                          Resolva os slugs em [Expansion
                          Reference](/pt/api-reference/endpoint/expansions/types).
                  description: Uma entrada para cada stream de sinal monitorado.
                  example:
                    - signal_type: jobs
                      filters:
                        locations:
                          - US
                    - signal_type: news
                      filters:
                        locations:
                          - US
                    - signal_type: advertisements
                      filters:
                        target_locations:
                          - US
                    - signal_type: expansions
                      filters:
                        tos:
                          - US
                        stages:
                          - expanding
                          - scaling
                        signal_types:
                          - HIRE
                          - EXEC
                        signal_strengths:
                          - high
                          - very_high
                company_filters:
                  type: object
                  description: >-
                    Filtros globais de empresa. Aceita os mesmos parâmetros do
                    endpoint [Company
                    Search](/pt/api-reference/endpoint/companies/search).
                  example:
                    locations:
                      - US
                    employees:
                      - - 501
                        - 1000
                      - - 1001
                        - 5000
                companies:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    Lista de UUIDs `domain_search_id` de empresas. Alternativa:
                    use `domains` ou `linkedin_urls`.
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios de empresas. Alternativa a `companies`.
                linkedin_urls:
                  type: array
                  items:
                    type: string
                    format: uri
                  description: >-
                    Lista de URLs do LinkedIn de empresas. Alternativa a
                    `companies`.
                is_company_enrichment:
                  type: boolean
                  description: Se deve enriquecer os dados da empresa.
                is_people_enrichment:
                  type: boolean
                  description: Se deve enriquecer os dados de pessoas.
                people_enrichment_configs:
                  type: array
                  items:
                    type: object
                  description: >-
                    Array de camadas de enriquecimento de pessoas. Contém
                    `max_people_to_return` (1-25), `people_contact_types` (veja
                    [Redeem](/pt/api-reference/endpoint/redeem/people)) e
                    `filters` (veja [People
                    Search](/pt/api-reference/endpoint/people/search)).
                  example:
                    - filters:
                        people_locations:
                          - US
                      max_people_to_return: 3
                      people_contact_types:
                        - email-work
                destination_type:
                  type: string
                  description: Tipo de destino de entrega.
                  enum:
                    - webhook
                    - email
                    - sequences
                destination_config:
                  type: object
                  description: >-
                    Configuração do destino. Para webhook: exige `webhook_url`
                    (string), com `headers` (objeto) e `body` (objeto)
                    opcionais. Para e-mail: aceita `email` (string) ou `emails`
                    (array de strings). Para sequences: exige
                    `sequence_identifier` (string) mais pelo menos um de
                    `is_people_search_enrolled` / `is_company_contact_enrolled`
                    definido como true.
                  example:
                    webhook_url: https://your-webhook.com/endpoint
                    headers:
                      Authorization: Bearer token
                    body:
                      pipeline: my-webhook
                frequency_minute:
                  type: integer
                  description: 'Frequência de disparo em minutos. Mín: 0, Máx: 10080.'
                  minimum: 0
                  maximum: 10080
                max_failure_trigger:
                  type: integer
                  description: >-
                    Número máximo de falhas consecutivas antes de pausar. Mín:
                    1, Máx: 10.
                  minimum: 1
                  maximum: 10
                max_daily_trigger:
                  type: integer
                  description: 'Número máximo de disparos por dia. Mín: 0, Máx: 86400.'
                  minimum: 0
                  maximum: 86400
                max_records_per_trigger:
                  type: integer
                  description: >-
                    Controla o número máximo de registros entregues por disparo.
                    Valores menores reduzem o tamanho do payload por entrega, o
                    que é recomendado para conjuntos de resultados grandes ou
                    integrações com limite de taxa. Mín: 1, Máx: 100, Padrão:
                    25. Consulte [Setting up
                    Webhooks](/pt/developer-guides/setting-up-webhooks) para
                    mais orientações.
                  minimum: 1
                  maximum: 100
                notification_email:
                  type: string
                  format: email
                  description: E-mail para notificações de falha.
                max_retry_per_trigger:
                  type: integer
                  description: >-
                    Número máximo de novas tentativas por disparo. Mín: 0, Máx:
                    3.
                  minimum: 0
                  maximum: 3
                retry_delay_second:
                  type: integer
                  description: 'Atraso entre as tentativas, em segundos. Mín: 1, Máx: 5.'
                  minimum: 1
                  maximum: 5
              required:
                - destination_config
      responses:
        '200':
          description: >-
            Resposta bem-sucedida contendo os resultados da validação do webhook
            — a configuração de destino e os payloads de requisição/resposta do
            teste. Em caso de falha do webhook, o endpoint responde com 400
            (MONITOR_WEBHOOK_URL_INVALID), trazendo a resposta do webhook nos
            detalhes do erro.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      destination_config:
                        type: object
                        description: A configuração de destino que foi testada.
                      request_payload:
                        type: object
                        description: >-
                          O payload de requisição enviado ao webhook durante a
                          validação.
                      response_payload:
                        type: object
                        description: O payload de resposta recebido do webhook.
              example:
                data:
                  destination_config:
                    webhook_url: https://usewebhook.com/example
                    headers:
                      X-Custom-Auth: your-token
                    body:
                      source: pubrio
                  request_payload:
                    monitor:
                      monitor_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                      name: My Monitor
                      detection_mode: signal_first
                      signal_types:
                        - jobs
                        - news
                        - advertisements
                      signal_filters:
                        - ...
                      company_filters:
                        ...: ...
                      is_company_enrichment: true
                      is_people_enrichment: true
                      people_enrichment_configs:
                        - ...
                    metadata:
                      total_signals: 3
                      total_companies: 1
                      total_people: 0
                    triggered_at: '2026-04-05T22:43:06.973Z'
                    signals:
                      - signal_type: jobs
                        signal:
                          signal_type: jobs
                          job_search_id: ...
                          companies:
                            - ...
                        companies:
                          - ...
                      - ...
                    source: pubrio
                  response_payload: OK
        '400':
          $ref: '#/components/responses/general_error'
        '429':
          $ref: '#/components/responses/rate_limit_error'
        '500':
          $ref: '#/components/responses/server_error'
components:
  responses:
    general_error:
      description: >-
        Requisição inválida. A requisição estava malformada ou continha
        parâmetros inválidos. Verifique o código de erro e a mensagem para mais
        detalhes.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Os erros e códigos variam de acordo com o cenário; consulte a
                  documentação para mais informações.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        Limite de requisições excedido. Foram feitas requisições em excesso em
        um determinado período de tempo. Tente novamente após a janela do limite
        de requisições ser reiniciada.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: >-
                  Limite de requisições excedido. Aguarde e tente novamente mais
                  tarde.
                type: string
    server_error:
      description: >-
        Erro interno do servidor. Ocorreu um erro inesperado no servidor. Entre
        em contato com o suporte caso o erro persista.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Ocorreu um erro inesperado no servidor.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        Um token de API exclusivo que representa as ações que você realiza por
        meio da API e as permissões e operações correspondentes. Você pode
        criá-lo na seção
        [Configurações](https://dashboard.pubrio.com/#/settings/).
      in: header

````