Skip to main content
POST
/
monitors
/
create
Create a monitor
curl --request POST \
  --url https://api.pubrio.com/monitors/create \
  --header 'Content-Type: application/json' \
  --header 'pubrio-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "detection_mode": "company_first",
  "signal_types": [
    "jobs"
  ],
  "destination_type": "webhook",
  "destination_config": {
    "webhook_url": "https://your-webhook.com/endpoint",
    "headers": {
      "Authorization": "Bearer token"
    },
    "body": {
      "pipeline": "my-webhook"
    }
  },
  "description": "<string>",
  "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": 0,
  "max_failure_trigger": 5,
  "max_daily_trigger": 500,
  "max_records_per_trigger": 25,
  "notification_email": "[email protected]",
  "max_retry_per_trigger": 1,
  "retry_delay_second": 1,
  "profile_id": 123
}
'
{
  "data": {
    "monitor_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "name": "My Monitor",
    "description": "Monitors news and job signals for target companies",
    "detection_mode": "signal_first",
    "destination_type": "webhook",
    "is_active": true,
    "is_paused": false,
    "masked_signature": "7••••••••••••••••8df",
    "created_at": "2026-04-05T20:30:17.792Z",
    "signature": "d4e5f6a7-b8c9-0123-defa-234567890123"
  }
}

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

Name of the monitor.

detection_mode
enum<string>
required

Detection mode: 'company_first' starts by finding companies then checks signals, 'signal_first' starts by finding signals then matches companies.

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

Types of signals to monitor.

Available options:
jobs,
news,
advertisements
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" }
}
description
string

Description of the monitor.

signal_filters
object[]

Array of signal filter objects. Each object has signal_type (one of: jobs, news, advertisements) and filters (object with signal-specific parameters). See Job Search, News Search, or Advertisement Search for available filter parameters per signal type.

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 applied as a second layer across all signal types. Accepts the same parameters as the Company Search endpoint — locations, employees, technologies, verticals, industries, and more.

Example:
{
"locations": ["US"],
"employees": [[501, 1000], [1001, 5000]]
}
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:
[
{
"filters": { "people_locations": ["US"] },
"max_people_to_return": 3,
"people_contact_types": ["email-work"]
}
]
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
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 newly created monitor details.

data
object