메인 콘텐츠로 건너뛰기
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_url (문자열) 필수, headers (객체) 및 body (객체) 선택 사항. 이메일의 경우: email (문자열) 필수. sequences 유형은 sequence_identifier(문자열)와 record_type(문자열)이 필요합니다.

description
string

모니터의 설명입니다.

signal_filters
object[]

신호 필터 객체 배열입니다. 각 객체는 signal_type (jobs, news, advertisements 중 하나)과 filters (신호별 매개변수가 포함된 객체)로 구성됩니다. 사용 가능한 필터 매개변수는 Job Search, News Search 또는 Advertisement 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 모드에서 대상 기업을 지정하는 데 사용됩니다. domains 또는 linkedin_urls를 대안으로 사용할 수 있습니다 — 셋 중 하나만 입력하면 됩니다.

domains
string[]

모니터링할 회사 도메인 목록 (예: ["openai.com", "google.com"]). companies의 대안으로 사용 가능 — Pubrio가 해당 회사를 자동으로 확인합니다. companies, domains, linkedin_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 엔드포인트와 동일한 매개변수)를 포함합니다. 사용 가능한 필터 매개변수는 인물 검색(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. 자세한 내용은 Webhook 설정을 참조하세요.

필수 범위: 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 키에 이미 워크스페이스 정보가 포함되어 있으므로 이 매개변수는 더 이상 필수가 아닙니다. 제공되면 조회 및 사용 크레딧 추적을 위해 특정 팀(작업 공간)과 연계됩니다.

자세한 내용은 팀 탭의 user details 엔드포인트를 참고하세요.

응답

새로 생성된 모니터 세부 정보가 포함된 성공적인 응답입니다.

data
object