Skip to main content
POST
/
monitors
/
webhook
/
validate
Validate monitor webhook
curl --request POST \
  --url https://api.pubrio.com/monitors/webhook/validate \
  --header 'Content-Type: application/json' \
  --header 'pubrio-api-key: <api-key>' \
  --data '
{
  "destination_type": "webhook",
  "destination_config": {
    "webhook_url": "https://your-webhook.com/endpoint",
    "headers": {
      "Authorization": "Bearer token"
    },
    "body": {
      "pipeline": "my-webhook"
    }
  },
  "monitor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "description": "<string>",
  "detection_mode": "company_first",
  "signal_types": [
    "jobs"
  ],
  "signal_filters": [
    {
      "filters": {
        "locations": [
          "US"
        ]
      },
      "signal_type": "jobs"
    },
    {
      "filters": {
        "locations": [
          "US"
        ]
      },
      "signal_type": "news"
    },
    {
      "filters": {
        "target_locations": [
          "US"
        ]
      },
      "signal_type": "advertisements"
    }
  ],
  "company_filters": {
    "locations": [
      "US"
    ],
    "employees": [
      [
        501,
        1000
      ],
      [
        1001,
        5000
      ]
    ]
  },
  "companies": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ],
  "domains": [
    "<string>"
  ],
  "linkedin_urls": [
    "<string>"
  ],
  "is_company_enrichment": true,
  "is_people_enrichment": true,
  "people_enrichment_configs": [
    {
      "filters": {
        "people_locations": [
          "US"
        ]
      },
      "max_people_to_return": 3,
      "people_contact_types": [
        "email-work"
      ]
    }
  ],
  "frequency_minute": 5040,
  "max_failure_trigger": 5,
  "max_daily_trigger": 43200,
  "max_records_per_trigger": 50,
  "notification_email": "[email protected]",
  "max_retry_per_trigger": 1,
  "retry_delay_second": 3,
  "profile_id": 123
}
'
{
  "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"
  }
}

Authorizations

pubrio-api-key
string
header
required

A unique API token that represents the actions you perform through the API and the corresponding permissions and operations. You can create it through the Settings section.

Body

application/json
destination_type
enum<string>
required

Delivery destination type.

Available options:
webhook,
email,
sequences
destination_config
object
required

Configuration for the destination. For webhook: requires webhook_url (string), optional headers (object) and body (object). For email: requires email (string). For sequences: requires sequence_identifier (string) and record_type (string).

Example:
{
"webhook_url": "https://your-webhook.com/endpoint",
"headers": { "Authorization": "Bearer token" },
"body": { "pipeline": "my-webhook" }
}
monitor_id
string<uuid>

Unique identifier of an existing monitor to test. Optional for testing new configurations.

name
string

Name of the monitor.

description
string

Description of the monitor.

detection_mode
enum<string>

Detection mode.

Available options:
company_first,
signal_first
signal_types
enum<string>[]

Types of signals to monitor.

Available options:
jobs,
news,
advertisements
signal_filters
object[]

Array of signal filter objects. Each object has signal_type and filters. See Job Search, News Search, or Advertisement Search for filter parameters.

Example:
[
{
"filters": { "locations": ["US"] },
"signal_type": "jobs"
},
{
"filters": { "locations": ["US"] },
"signal_type": "news"
},
{
"filters": { "target_locations": ["US"] },
"signal_type": "advertisements"
}
]
company_filters
object

Global company filters. Accepts the same parameters as the Company Search endpoint.

Example:
{
"locations": ["US"],
"employees": [[501, 1000], [1001, 5000]]
}
companies
string<uuid>[]

List of company domain_search_id UUIDs. Alternative: use domains or linkedin_urls.

domains
string[]

List of company domains. Alternative to companies.

linkedin_urls
string<uri>[]

List of LinkedIn company URLs. Alternative to companies.

is_company_enrichment
boolean

Whether to enrich company data.

is_people_enrichment
boolean

Whether to enrich people data.

people_enrichment_configs
object[]

Array of people enrichment layers. Contains max_people_to_return (1-25), people_contact_types (see Redeem), and filters (see People Search).

Example:
[
{
"filters": { "people_locations": ["US"] },
"max_people_to_return": 3,
"people_contact_types": ["email-work"]
}
]
frequency_minute
integer

Trigger frequency in minutes. Min: 0, Max: 10080.

Required range: 0 <= x <= 10080
max_failure_trigger
integer

Maximum consecutive failures before pausing. Min: 1, Max: 10.

Required range: 1 <= x <= 10
max_daily_trigger
integer

Maximum triggers per day. Min: 0, Max: 86400.

Required range: 0 <= x <= 86400
max_records_per_trigger
integer

Controls the maximum number of records delivered per trigger. Lower values reduce payload size per delivery, which is recommended for large result sets or rate-limited integrations. Min: 1, Max: 100, Default: 25. See Setting up Webhooks for guidance.

Required range: 1 <= x <= 100
notification_email
string<email>

Email for failure notifications.

max_retry_per_trigger
integer

Maximum retries per trigger. Min: 0, Max: 3.

Required range: 0 <= x <= 3
retry_delay_second
integer

Delay between retries in seconds. Min: 1, Max: 5.

Required range: 1 <= x <= 5
profile_id
integer

Optional. An identifier for the user profile (workspace) making the request. This is no longer required as the API key already includes your workspace information. If provided, it helps in associating the lookup with a specific user, allowing for data retrieval and credit tracking.

Check out user details endpoints under the Profile tab for more information.

Response

Successful response containing the webhook validation results, including the destination configuration and the test request/response payloads.

data
object