curl --request POST \
--url https://api.pubrio.com/expansions/companies/pulse_events \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signal_types": [
"EXEC",
"HIRE"
],
"country_codes": [
"JP",
"SG"
],
"transitioned_dates": [
"2026-04-01",
"2026-06-29"
],
"window_days": 90,
"query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
"is_explain_match": true,
"domain": "pubrio.com",
"linkedin_url": "https://www.linkedin.com/company/pubrio",
"page": 1,
"per_page": 25
}
'import requests
url = "https://api.pubrio.com/expansions/companies/pulse_events"
payload = {
"domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signal_types": ["EXEC", "HIRE"],
"country_codes": ["JP", "SG"],
"transitioned_dates": ["2026-04-01", "2026-06-29"],
"window_days": 90,
"query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
"is_explain_match": True,
"domain": "pubrio.com",
"linkedin_url": "https://www.linkedin.com/company/pubrio",
"page": 1,
"per_page": 25
}
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({
domain_search_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
signal_types: ['EXEC', 'HIRE'],
country_codes: ['JP', 'SG'],
transitioned_dates: ['2026-04-01', '2026-06-29'],
window_days: 90,
query: 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
is_explain_match: true,
domain: 'pubrio.com',
linkedin_url: 'https://www.linkedin.com/company/pubrio',
page: 1,
per_page: 25
})
};
fetch('https://api.pubrio.com/expansions/companies/pulse_events', 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/expansions/companies/pulse_events",
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([
'domain_search_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'signal_types' => [
'EXEC',
'HIRE'
],
'country_codes' => [
'JP',
'SG'
],
'transitioned_dates' => [
'2026-04-01',
'2026-06-29'
],
'window_days' => 90,
'query' => 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
'is_explain_match' => true,
'domain' => 'pubrio.com',
'linkedin_url' => 'https://www.linkedin.com/company/pubrio',
'page' => 1,
'per_page' => 25
]),
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/expansions/companies/pulse_events"
payload := strings.NewReader("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\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/expansions/companies/pulse_events")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/expansions/companies/pulse_events")
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 \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"filters": {
"domain_search_id": "8f3c1b04-2e7a-4d19-9c55-6ab21f0e7d3c"
}
},
"data": {
"pagination": {
"page": 1,
"per_page": 25,
"total_entries": 42,
"total_pages": 2,
"total_display_pages": 2,
"is_timeout": false
},
"events": [
{
"signal_type_slug": "EXEC",
"stage_slug": "expanding",
"country_code": "US",
"signal_subtype_slug": "country_manager",
"source_type": "linkedin",
"polarity": "expansion",
"display_label": "Hired Country Manager",
"evidence_url": "https://linkedin.com/company/example-corp",
"event_date": "2026-06-20T14:00:00.000Z"
}
],
"summary": {
"text": "Example Corp is hiring across Tokyo[1] and just added a Japan Country Manager[2], yet has no legal entity on file — it is staffing the market before incorporating, which is exactly your window.",
"citations": [
{
"n": 1,
"type": "HIRE",
"label": "Tokyo software & field-ops roles",
"country": "JP",
"date": "2026-06",
"url": null
},
{
"n": 2,
"type": "EXEC",
"label": "Country Manager, Japan",
"country": "JP",
"date": "2026-06",
"url": "https://linkedin.com/in/example"
}
]
}
}
}{
"code": 40001,
"message": "Errors and codes will vary depending on the scenario, please see the documentation for information.",
"details": {}
}{
"error": "Request rate limit exceeded. Please wait and try again later."
}{
"error": "An unexpected error occurred on the server."
}События сигналов компании
Обогащённая, постраничная детализация событий сигналов, определяющих экспансию отдельной компании.
curl --request POST \
--url https://api.pubrio.com/expansions/companies/pulse_events \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signal_types": [
"EXEC",
"HIRE"
],
"country_codes": [
"JP",
"SG"
],
"transitioned_dates": [
"2026-04-01",
"2026-06-29"
],
"window_days": 90,
"query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
"is_explain_match": true,
"domain": "pubrio.com",
"linkedin_url": "https://www.linkedin.com/company/pubrio",
"page": 1,
"per_page": 25
}
'import requests
url = "https://api.pubrio.com/expansions/companies/pulse_events"
payload = {
"domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signal_types": ["EXEC", "HIRE"],
"country_codes": ["JP", "SG"],
"transitioned_dates": ["2026-04-01", "2026-06-29"],
"window_days": 90,
"query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
"is_explain_match": True,
"domain": "pubrio.com",
"linkedin_url": "https://www.linkedin.com/company/pubrio",
"page": 1,
"per_page": 25
}
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({
domain_search_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
signal_types: ['EXEC', 'HIRE'],
country_codes: ['JP', 'SG'],
transitioned_dates: ['2026-04-01', '2026-06-29'],
window_days: 90,
query: 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
is_explain_match: true,
domain: 'pubrio.com',
linkedin_url: 'https://www.linkedin.com/company/pubrio',
page: 1,
per_page: 25
})
};
fetch('https://api.pubrio.com/expansions/companies/pulse_events', 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/expansions/companies/pulse_events",
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([
'domain_search_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'signal_types' => [
'EXEC',
'HIRE'
],
'country_codes' => [
'JP',
'SG'
],
'transitioned_dates' => [
'2026-04-01',
'2026-06-29'
],
'window_days' => 90,
'query' => 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
'is_explain_match' => true,
'domain' => 'pubrio.com',
'linkedin_url' => 'https://www.linkedin.com/company/pubrio',
'page' => 1,
'per_page' => 25
]),
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/expansions/companies/pulse_events"
payload := strings.NewReader("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\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/expansions/companies/pulse_events")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/expansions/companies/pulse_events")
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 \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"signal_types\": [\n \"EXEC\",\n \"HIRE\"\n ],\n \"country_codes\": [\n \"JP\",\n \"SG\"\n ],\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"window_days\": 90,\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"page\": 1,\n \"per_page\": 25\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"filters": {
"domain_search_id": "8f3c1b04-2e7a-4d19-9c55-6ab21f0e7d3c"
}
},
"data": {
"pagination": {
"page": 1,
"per_page": 25,
"total_entries": 42,
"total_pages": 2,
"total_display_pages": 2,
"is_timeout": false
},
"events": [
{
"signal_type_slug": "EXEC",
"stage_slug": "expanding",
"country_code": "US",
"signal_subtype_slug": "country_manager",
"source_type": "linkedin",
"polarity": "expansion",
"display_label": "Hired Country Manager",
"evidence_url": "https://linkedin.com/company/example-corp",
"event_date": "2026-06-20T14:00:00.000Z"
}
],
"summary": {
"text": "Example Corp is hiring across Tokyo[1] and just added a Japan Country Manager[2], yet has no legal entity on file — it is staffing the market before incorporating, which is exactly your window.",
"citations": [
{
"n": 1,
"type": "HIRE",
"label": "Tokyo software & field-ops roles",
"country": "JP",
"date": "2026-06",
"url": null
},
{
"n": 2,
"type": "EXEC",
"label": "Country Manager, Japan",
"country": "JP",
"date": "2026-06",
"url": "https://linkedin.com/in/example"
}
]
}
}
}{
"code": 40001,
"message": "Errors and codes will vary depending on the scenario, please see the documentation for information.",
"details": {}
}{
"error": "Request rate limit exceeded. Please wait and try again later."
}{
"error": "An unexpected error occurred on the server."
}Авторизации
Тело
- Domain Search ID
- Domain
- LinkedIn URL
Уникальный идентификатор операции поиска компаний.
Ограничить конкретными типами сигналов. Определения и уровни см. в каталоге Signal Types в базе знаний (DNS и INFRA — сигналы уровня Premier).
AD, AUDIENCE, DNS, ENTITY, EVENT, EVENT_PLUS, EXEC, HIRE, INFRA, IP, NEWS, OFFICE, PARTNER, PRODUCT, REG, SCALE, TECH ["EXEC", "HIRE"]
Необязательно. Ограничить ленту одним или несколькими зарубежными рынками (ISO 3166-1 alpha-2, например ["JP","SG"]). Если не указано → все зарубежные рынки (домашний рынок всегда исключается).
["JP", "SG"]
Диапазон дат ISO [from, to] для окна сигналов/переходов. Имеет приоритет над window_days, если указаны оба.
["2026-04-01", "2026-06-29"]
Необязательно. Размер скользящего окна событий в днях. По умолчанию 90 (стандартное окно отображения), если не указаны ни этот параметр, ни transitioned_dates. Если указаны оба, приоритет имеет transitioned_dates.
90
Описание на естественном языке того, что вы продаёте, или профиля покупателя, по которому вы оцениваете эту компанию. Используется только для обоснования summary от ИИ (см. is_explain_match); в отличие от поиска компаний, здесь это НЕ интерпретируется в фильтры.
"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity."
Если true и указан query, data.summary возвращает единую сводку от ИИ по активности экспансии этой компании, составленную с учётом вашего query и обоснованную реальными сигналами компании с цитатами [n]. В отличие от match_summary для отдельной компании в поиске компаний, эта сводка строится на ОСНОВЕ ВСЕЙ ленты компании за период (все рынки, каждый сигнал), поэтому она стабильна независимо от page / per_page.
true
Домен компании, используемый для операций поиска компаний. Если получен URL вида www.pubrio.com или https://docs.pubrio.com/, система преобразует его в pubrio.com для обработки.
"pubrio.com"
Полностью сформированный URL профиля компании в LinkedIn. URL начинается с http и содержит linkedin.com/company/
"https://www.linkedin.com/company/pubrio"
Количество записей на странице. По умолчанию — 25, что также является пределом на большинстве тарифов — лимит определяется параметром max_search_per_page вашей подписки, который возвращает Profile. Превышение возвращает HTTP 416 с кодом 41676 (или 41613 для поиска компаний и людей), а не усечённый набор результатов.
x <= 2525
Ответ
Постраничные события сигналов. Если is_explain_match равен true и указан query, data.summary содержит сводку от ИИ ({ text, citations }) по активности компании на основе полной ленты, составленную с учётом запроса; в противном случае — null.

