Skip to main content
POST
Create a monitor

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
query
string
required

A natural-language description of the monitor (any language), e.g. "monitor companies expanding into Japan, get C-level people with their work email, and email alerts to [email protected] in real time". It is interpreted into the fields below (detection_mode, signal_types, signal_filters, people_enrichment_configs, destination_type/destination_config, frequency_minute) in the same request. Any field you also pass explicitly overrides the interpreted value. If the text is not a monitor request, the call returns 400. Capped at 2000 characters.

Maximum string length: 2000
name
string

Name of the monitor.

description
string

Description of the monitor.

status
enum<string>
default:active

Lifecycle status to create the monitor with. Defaults to active. Use draft to save a half-built monitor: only name is required, validation is deferred until you activate it, and a draft never runs.

Available options:
draft,
active,
paused,
inactive
detection_mode
enum<string>

How signals are detected. signal_first scans the market broadly; company_first tracks a named account list and requires at least one company, domain or LinkedIn URL. Immutable after creation — changing it on an existing monitor returns 40021. Create a new monitor instead.

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

Types of signals to monitor.

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

Array of signal filter objects. Each object has signal_type (one of: jobs, news, advertisements, expansions) and filters (object with signal-specific parameters). See Job Search, News Search or Advertisement Search for the available filter parameters per signal type. For expansions, use the Expansion Search filter vocabulary — froms / tos, stages, momentum, freshness, scopes, signal_types, signal_strengths and window_days.

Example:
company_filters
object

Global company filters applied as a second layer across all signal types. Accepts the same parameters as the Company Search endpoint — locations, employees, technologies, verticals, and more.

Example:
companies
string<uuid>[]

List of company domain_search_id UUIDs to monitor. Used primarily in company_first mode to specify target companies. You can also use domains or linkedin_urls as alternatives — only one of the three is required.

domains
string[]

List of company domains to monitor (e.g., ["openai.com", "google.com"]). Alternative to companies — Pubrio resolves these to the corresponding companies. Only one of companies, domains, or linkedin_urls is required.

linkedin_urls
string<uri>[]

List of LinkedIn company URLs to monitor (e.g., ["https://linkedin.com/company/pubrio"]). Alternative to companies — Pubrio resolves these to the corresponding companies. Only one of companies, domains, or linkedin_urls is required.

is_company_enrichment
boolean

Whether to enrich company data in results.

is_people_enrichment
boolean

Whether to enrich people data in results.

people_enrichment_configs
object[]

Array of people enrichment layers. Each layer runs an independent people search. Contains max_people_to_return (1-25), people_contact_types (array — refers to Redeem contact types: email-work, email-personal, phone), and filters (same parameters as People Search endpoint).

Example:
destination_type
enum<string>

Delivery destination type.

Available options:
webhook,
email,
sequences
destination_config
object

Configuration for the destination. For webhook: requires webhook_url (string), optional headers (object) and body (object). For email: accepts email (string) or emails (array of strings). For sequences: requires sequence_identifier (string) plus at least one of is_people_search_enrolled / is_company_contact_enrolled set to true.

Example:
frequency_minute
integer
default:0

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

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

Maximum consecutive failures before pausing the monitor. Min: 1, Max: 10, Default: 5.

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

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

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

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 address for monitor failure notifications.

max_retry_per_trigger
integer
default:1

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

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

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

Required range: 1 <= x <= 5
deep
boolean

Optional, only used with query. Run the reflection pass for higher interpretation accuracy (default true; roughly doubles the interpretation latency). Set false for a faster single pass.

Response

Successful response containing the newly created monitor details.

data
object