跳转到主要内容
POST
/
monitors
/
create
创建监控
curl --request POST \
  --url https://api.pubrio.com/monitors/create \
  --header 'Content-Type: application/json' \
  --header 'pubrio-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "signal_types": [],
  "destination_config": {},
  "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
}
'
import requests

url = "https://api.pubrio.com/monitors/create"

payload = {
"name": "<string>",
"signal_types": [],
"destination_config": {},
"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
}
headers = {
"pubrio-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'pubrio-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
signal_types: [],
destination_config: {},
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
})
};

fetch('https://api.pubrio.com/monitors/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pubrio.com/monitors/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'signal_types' => [

],
'destination_config' => [

],
'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
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pubrio-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.pubrio.com/monitors/create"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"signal_types\": [],\n \"destination_config\": {},\n \"description\": \"<string>\",\n \"signal_filters\": [\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"jobs\"\n },\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"news\"\n },\n {\n \"filters\": {\n \"target_locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"advertisements\"\n }\n ],\n \"company_filters\": {\n \"locations\": [\n \"US\"\n ],\n \"employees\": [\n [\n 501,\n 1000\n ],\n [\n 1001,\n 5000\n ]\n ]\n },\n \"companies\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"domains\": [\n \"<string>\"\n ],\n \"linkedin_urls\": [\n \"<string>\"\n ],\n \"is_company_enrichment\": true,\n \"is_people_enrichment\": true,\n \"people_enrichment_configs\": [\n {\n \"filters\": {\n \"people_locations\": [\n \"US\"\n ]\n },\n \"max_people_to_return\": 3,\n \"people_contact_types\": [\n \"email-work\"\n ]\n }\n ],\n \"frequency_minute\": 0,\n \"max_failure_trigger\": 5,\n \"max_daily_trigger\": 500,\n \"max_records_per_trigger\": 25,\n \"notification_email\": \"[email protected]\",\n \"max_retry_per_trigger\": 1,\n \"retry_delay_second\": 1,\n \"profile_id\": 123\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("pubrio-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.pubrio.com/monitors/create")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"signal_types\": [],\n \"destination_config\": {},\n \"description\": \"<string>\",\n \"signal_filters\": [\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"jobs\"\n },\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"news\"\n },\n {\n \"filters\": {\n \"target_locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"advertisements\"\n }\n ],\n \"company_filters\": {\n \"locations\": [\n \"US\"\n ],\n \"employees\": [\n [\n 501,\n 1000\n ],\n [\n 1001,\n 5000\n ]\n ]\n },\n \"companies\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"domains\": [\n \"<string>\"\n ],\n \"linkedin_urls\": [\n \"<string>\"\n ],\n \"is_company_enrichment\": true,\n \"is_people_enrichment\": true,\n \"people_enrichment_configs\": [\n {\n \"filters\": {\n \"people_locations\": [\n \"US\"\n ]\n },\n \"max_people_to_return\": 3,\n \"people_contact_types\": [\n \"email-work\"\n ]\n }\n ],\n \"frequency_minute\": 0,\n \"max_failure_trigger\": 5,\n \"max_daily_trigger\": 500,\n \"max_records_per_trigger\": 25,\n \"notification_email\": \"[email protected]\",\n \"max_retry_per_trigger\": 1,\n \"retry_delay_second\": 1,\n \"profile_id\": 123\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.pubrio.com/monitors/create")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["pubrio-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"signal_types\": [],\n \"destination_config\": {},\n \"description\": \"<string>\",\n \"signal_filters\": [\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"jobs\"\n },\n {\n \"filters\": {\n \"locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"news\"\n },\n {\n \"filters\": {\n \"target_locations\": [\n \"US\"\n ]\n },\n \"signal_type\": \"advertisements\"\n }\n ],\n \"company_filters\": {\n \"locations\": [\n \"US\"\n ],\n \"employees\": [\n [\n 501,\n 1000\n ],\n [\n 1001,\n 5000\n ]\n ]\n },\n \"companies\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"domains\": [\n \"<string>\"\n ],\n \"linkedin_urls\": [\n \"<string>\"\n ],\n \"is_company_enrichment\": true,\n \"is_people_enrichment\": true,\n \"people_enrichment_configs\": [\n {\n \"filters\": {\n \"people_locations\": [\n \"US\"\n ]\n },\n \"max_people_to_return\": 3,\n \"people_contact_types\": [\n \"email-work\"\n ]\n }\n ],\n \"frequency_minute\": 0,\n \"max_failure_trigger\": 5,\n \"max_daily_trigger\": 500,\n \"max_records_per_trigger\": 25,\n \"notification_email\": \"[email protected]\",\n \"max_retry_per_trigger\": 1,\n \"retry_delay_second\": 1,\n \"profile_id\": 123\n}"

response = http.request(request)
puts response.read_body
{
  "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"
  }
}
{
"code": 40001,
"message": "错误及代码会根据不同场景有所不同,详情请参阅文档。",
"details": {}
}
{
"error": "请求频率超出限制。请稍后再试。"
}
{
"error": "服务器在处理请求时遇到了未预料的异常。"
}

授权

pubrio-api-key
string
header
必填

一个唯一的 API 令牌,用于标识您通过 API 执行的操作以及相应的权限和操作。您可以在 设置 部分创建该令牌。

请求体

application/json
name
string
必填

监控名称。

detection_mode
enum<string>
必填

检测模式:'company_first' 先查找公司再检查信号,'signal_first' 先查找信号再匹配公司。

可用选项:
company_first,
signal_first
signal_types
enum<string>[]
必填

要监控的信号类型。

可用选项:
jobs,
news,
advertisements
destination_type
enum<string>
必填

投递目标类型。

可用选项:
webhook,
email,
sequences
destination_config
object
必填

目标配置。Webhook:需要 webhook_url(字符串),可选 headers(对象)和 body(对象)。Email:需要 email(字符串)。sequences 类型需要 sequence_identifier(字符串)和 record_type(字符串)。

description
string

监控描述。

signal_filters
object[]

信号过滤器对象数组。每个对象包含 signal_type(jobs、news、advertisements 之一)和 filters(包含信号特定参数的对象)。请参见 Job SearchNews SearchAdvertisement Search 了解过滤器参数。

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

全局公司过滤器,作为第二层应用。接受与Company Search端点相同的参数 — locations、employees、technologies、verticals 等。

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

要监控的公司 domain_search_id UUID 列表。主要在 company_first 模式下用于指定目标公司。也可使用 domainslinkedin_urls 作为替代方式 — 三者填写其一即可。

domains
string[]

公司域名列表(如 ["openai.com", "google.com"])。可作为 companies 的替代方式 — Pubrio 会自动解析对应的公司。companiesdomainslinkedin_urls 三者填写其一即可。

linkedin_urls
string<uri>[]

LinkedIn 公司主页 URL 列表(如 ["https://linkedin.com/company/pubrio"])。可作为 companies 的替代方式。三者填写其一即可。

is_company_enrichment
boolean

是否在结果中增强公司数据。

is_people_enrichment
boolean

是否在结果中增强人员数据。

people_enrichment_configs
object[]

人员增强层数组。每层执行独立的人员搜索。包含 max_people_to_return(1-25)、people_contact_types(联系类型数组,参见 Redeem 端点:email-work、email-personal、phone)和 filters(与People Search端点相同的参数)。详见人员搜索端点了解可用过滤器,Redeem 端点了解联系类型。

示例:
[
{
"filters": { "people_locations": ["US"] },
"max_people_to_return": 3,
"people_contact_types": ["email-work"]
}
]
frequency_minute
integer
默认值:0

触发频率(分钟)。最小值:0,最大值:10080,默认值:0。

必填范围: 0 <= x <= 10080
max_failure_trigger
integer
默认值:5

暂停监控前的最大连续失败次数。最小值:1,最大值:10,默认值:5。

必填范围: 1 <= x <= 10
max_daily_trigger
integer
默认值:500

每日最大触发次数。最小值:0,最大值:86400,默认值:500。

必填范围: 0 <= x <= 86400
max_records_per_trigger
integer
默认值:25

控制每次触发最多推送的记录数量。较低的值可减少每次推送的数据量,适用于结果集较大或下游系统有速率限制的场景。最小值:1,最大值:100,默认值:25。详情请参阅 配置 Webhooks

必填范围: 1 <= x <= 100
notification_email
string<email>

监控失败通知的邮箱地址。

max_retry_per_trigger
integer
默认值:1

每次触发的最大重试次数。最小值:0,最大值:3,默认值:1。

必填范围: 0 <= x <= 3
retry_delay_second
integer
默认值:1

重试间隔(秒)。最小值:1,最大值:5,默认值:1。

必填范围: 1 <= x <= 5
profile_id
integer

可选。发起请求的团队标识符。由于 API 密钥已包含您的工作区信息,此参数不再是必填项。如果提供,该 ID 有助于将查找与特定团队(工作区)关联,实现数据检索和额度追踪。

更多信息请参见团队标签下的 user details 端点。

响应

成功响应,包含新创建的监控详情。

data
object