> ## 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 de monitor

> Envía una carga útil de prueba firmada a una URL de webhook e informa si fue aceptada.

**Esto realiza una entrega HTTP real**, no una simple verificación de sintaxis de la URL. El receptor debe aceptar un `POST` y responder correctamente — una URL que solo sirve una página en `GET` seguirá fallando. Si falla, obtienes `40023` (URL no válida o inaccesible) o `40022` (fallo en la entrega de prueba), y `details` incluye el cuerpo de la respuesta original del servidor de destino, que puede tener varios kilobytes de HTML. Pasa `monitor_id` para firmar la prueba con la firma real de ese monitor; si lo omites, se usa una firma de marcador de posición.



## OpenAPI

````yaml es-openapi POST /monitors/webhook/validate
openapi: 3.0.0
info:
  description: >-
    La API de Pubrio ofrece inteligencia de expansión de mercado —señales en
    tiempo real que indican cuándo una empresa entra en un nuevo mercado— junto
    con los datos de empresas y personas que las respaldan. Busca, consulta y
    enriquece cuentas y contactos, y suscríbete a señales de movimiento tipadas
    y fechadas en más de 200 mercados.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/es/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/es/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: Información del perfil del espacio de trabajo y estadísticas de uso
  - name: Enrichment
    description: Enriquece registros de personas y empresas con datos B2B detallados
  - name: Lookalike
    description: Encuentra empresas similares a una empresa determinada
  - name: Search
    description: Busca personas, empresas, empleos, noticias y anuncios con filtros
  - name: Lookup
    description: >-
      Consulta información detallada de personas, empresas, empleos, noticias,
      anuncios y tecnologías específicos
  - name: LinkedIn
    description: Consulta datos de personas y empresas mediante URL de perfil de LinkedIn
  - name: Redeem
    description: >-
      Canjea créditos para desbloquear datos de contacto de personas (individual
      y por lotes)
  - name: Channels
    description: >-
      Gestiona plantillas de canales de contacto (crear, actualizar, eliminar,
      listar)
  - name: Monitor
    description: >-
      Crea y gestiona monitores de datos con webhooks, estadísticas y
      procesamiento
  - name: Filters
    description: >-
      Obtén los valores de filtro disponibles para los parámetros de búsqueda
      (tecnologías, ubicaciones, verticales, etc.)
  - name: API Keys
    description: >-
      Lista e inspecciona los registros de solicitudes a la API y las analíticas
      de uso de las claves de API
  - name: Insights
    description: >-
      Información agregada de señales para empresas (empleos, noticias,
      anuncios).
  - name: Export
    description: Exportaciones de datos masivas (sujetas a créditos).
  - name: Expansion
    description: >-
      Inteligencia de expansión de mercado de empresas: señales, etapas,
      mercados y exportaciones.
externalDocs:
  description: >-
    La API de Pubrio se utiliza para buscar, previsualizar y enriquecer
    contactos y cuentas. La base de datos de Pubrio ofrece amplios datos de
    contactos B2B e inteligencia de ventas.
  url: https://docs.pubrio.com
paths:
  /monitors/webhook/validate:
    post:
      tags:
        - Monitor
      summary: Validar webhook de monitor
      description: >-
        Envía una carga útil de prueba firmada a una URL de webhook e informa si
        fue aceptada.


        **Esto realiza una entrega HTTP real**, no una simple verificación de
        sintaxis de la URL. El receptor debe aceptar un `POST` y responder
        correctamente — una URL que solo sirve una página en `GET` seguirá
        fallando. Si falla, obtienes `40023` (URL no válida o inaccesible) o
        `40022` (fallo en la entrega de prueba), y `details` incluye el cuerpo
        de la respuesta original del servidor de destino, que puede tener varios
        kilobytes de HTML. Pasa `monitor_id` para firmar la prueba con la firma
        real de ese monitor; si lo omites, se usa una firma de marcador de
        posición.
      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 un monitor existente que se va a
                    probar. Opcional para probar configuraciones nuevas.
                name:
                  type: string
                  description: Nombre del monitor.
                description:
                  type: string
                  description: Descripción del monitor.
                detection_mode:
                  type: string
                  description: >-
                    Cómo se detectan las señales. `signal_first` escanea el
                    mercado de forma amplia; `company_first` da seguimiento a
                    una lista de cuentas específicas y requiere al menos una
                    empresa, dominio o URL de LinkedIn. **Inmutable después de
                    la creación** — cambiarlo en un monitor existente devuelve
                    `40021`. Crea un monitor nuevo en su lugar.
                  enum:
                    - company_first
                    - signal_first
                signal_types:
                  type: array
                  items:
                    type: string
                    enum:
                      - jobs
                      - news
                      - advertisements
                      - expansions
                  description: Tipos de señales que se van a monitorear.
                signal_filters:
                  type: array
                  items:
                    type: object
                    required:
                      - signal_type
                    properties:
                      signal_type:
                        type: string
                        enum:
                          - jobs
                          - news
                          - advertisements
                          - expansions
                        description: Qué flujo filtra esta entrada.
                      filters:
                        type: object
                        description: >-
                          Filtros para este flujo. `jobs`, `news` y
                          `advertisements` toman los parámetros de [Job
                          Search](/es/api-reference/endpoint/companies/job_search),
                          [News
                          Search](/es/api-reference/endpoint/companies/news_search)
                          y [Advertisement
                          Search](/es/api-reference/endpoint/companies/advertisements_search).
                          `expansions` toma el vocabulario de [Expansion
                          Search](/es/api-reference/endpoint/expansions/market_lookup):
                          `froms` / `tos`, `window_days`, `stages`, `scopes`,
                          `momentum`, `freshness`, `signal_types`,
                          `signal_subtypes`, `signal_strengths`, `source_types`.
                          Resuelve los slugs desde [Expansion
                          Reference](/es/api-reference/endpoint/expansions/types).
                  description: >-
                    Una entrada por cada flujo de señales que observa el
                    monitor.
                  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 globales de empresa. Acepta los mismos parámetros
                    que el endpoint [Company
                    Search](/es/api-reference/endpoint/companies/search).
                  example:
                    locations:
                      - US
                    employees:
                      - - 501
                        - 1000
                      - - 1001
                        - 5000
                companies:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    Lista de UUID de domain_search_id de empresa. Alternativa:
                    usa `domains` o `linkedin_urls`.
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de dominios de empresa. Alternativa a `companies`.
                linkedin_urls:
                  type: array
                  items:
                    type: string
                    format: uri
                  description: >-
                    Lista de URL de LinkedIn de empresas. Alternativa a
                    `companies`.
                is_company_enrichment:
                  type: boolean
                  description: Indica si se deben enriquecer los datos de empresa.
                is_people_enrichment:
                  type: boolean
                  description: Indica si se deben enriquecer los datos de personas.
                people_enrichment_configs:
                  type: array
                  items:
                    type: object
                  description: >-
                    Array de capas de enriquecimiento de personas. Contiene
                    `max_people_to_return` (1-25), `people_contact_types`
                    (consulta
                    [Redeem](/es/api-reference/endpoint/redeem/people)) y
                    `filters` (consulta [People
                    Search](/es/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: >-
                    Configuración del destino. Para webhook: requiere
                    `webhook_url` (string), y opcionalmente `headers` (object) y
                    `body` (object). Para email: acepta `email` (string) o
                    `emails` (array de strings). Para sequences: requiere
                    `sequence_identifier` (string) además de al menos uno de
                    `is_people_search_enrolled` / `is_company_contact_enrolled`
                    establecido en true.
                  example:
                    webhook_url: https://your-webhook.com/endpoint
                    headers:
                      Authorization: Bearer token
                    body:
                      pipeline: my-webhook
                frequency_minute:
                  type: integer
                  description: 'Frecuencia de activación en minutos. Mín.: 0, Máx.: 10080.'
                  minimum: 0
                  maximum: 10080
                max_failure_trigger:
                  type: integer
                  description: >-
                    Número máximo de fallos consecutivos antes de pausar. Mín.:
                    1, Máx.: 10.
                  minimum: 1
                  maximum: 10
                max_daily_trigger:
                  type: integer
                  description: 'Número máximo de activaciones por día. Mín.: 0, Máx.: 86400.'
                  minimum: 0
                  maximum: 86400
                max_records_per_trigger:
                  type: integer
                  description: >-
                    Controla el número máximo de registros entregados por
                    activación. Los valores más bajos reducen el tamaño de la
                    carga útil por entrega, lo cual se recomienda para conjuntos
                    de resultados grandes o integraciones con límite de tasa.
                    Mín.: 1, Máx.: 100, Predeterminado: 25. Consulta [Setting up
                    Webhooks](/es/developer-guides/setting-up-webhooks) para más
                    orientación.
                  minimum: 1
                  maximum: 100
                notification_email:
                  type: string
                  format: email
                  description: Correo electrónico para notificaciones de fallo.
                max_retry_per_trigger:
                  type: integer
                  description: >-
                    Número máximo de reintentos por activación. Mín.: 0, Máx.:
                    3.
                  minimum: 0
                  maximum: 3
                retry_delay_second:
                  type: integer
                  description: 'Retraso entre reintentos en segundos. Mín.: 1, Máx.: 5.'
                  minimum: 1
                  maximum: 5
              required:
                - destination_config
      responses:
        '200':
          description: >-
            Respuesta correcta que contiene los resultados de la validación del
            webhook: la configuración del destino y las cargas útiles de
            solicitud/respuesta de la prueba. Si el webhook falla, el endpoint
            responde 400 (MONITOR_WEBHOOK_URL_INVALID) con la respuesta del
            webhook en los detalles del error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      destination_config:
                        type: object
                        description: La configuración del destino que se probó.
                      request_payload:
                        type: object
                        description: >-
                          La carga útil de la solicitud enviada al webhook
                          durante la validación.
                      response_payload:
                        type: object
                        description: La carga útil de la respuesta recibida del 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: >-
        Solicitud incorrecta. La solicitud estaba mal formada o contenía
        parámetros no válidos. Consulta el código de error y el mensaje para más
        detalles.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Errors and codes will vary depending on the scenario, please
                  see the documentation for information.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        Límite de tasa excedido. Se realizaron demasiadas solicitudes en un
        período de tiempo determinado. Vuelve a intentarlo después de que se
        restablezca la ventana de límite de tasa.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Request rate limit exceeded. Please wait and try again later.
                type: string
    server_error:
      description: >-
        Error interno del servidor. Se produjo un error inesperado en el
        servidor. Contacta con soporte si el error persiste.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: An unexpected error occurred on the server.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        Un token de API único que representa las acciones que realizas a través
        de la API, junto con los permisos y operaciones correspondientes. Puedes
        crearlo en la sección
        [Configuración](https://dashboard.pubrio.com/#/settings/).
      in: header

````