Skip to main content
POST
Company expansion detail

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
domain_search_id
string<uuid>
required

A unique identifier for the company search operation.

country_code
string

Target market as an ISO 3166-1 alpha-2 (cca2) country code. Omit to auto-pick the company's single most active market; set is_all_markets for a cross-market view of every market.

Example:

"US"

is_all_markets
boolean

Return the company's entire expansion footprint across ALL markets in one call, rather than a single market. When true, country_code is ignored, the home market is excluded from the signal aggregates when it can be identified, data becomes a company-level rollup (dominant stage, total signals, date span, top expansion score), and markets_summary lists every market. Defaults to false.

Example:

false

signal_type
enum<string>

Filter the returned signals to a single type.

Available options:
AD,
NEWS,
DNS,
INFRA,
PARTNER,
EVENT_PLUS,
EXEC,
OFFICE,
HIRE,
SCALE,
PRODUCT
Example:

"EXEC"

query
string

Plain-language description of what you sell, or the buyer profile you're evaluating this company against. Used only to ground the AI summary (see is_explain_match); unlike the company search, it is NOT interpreted into filters here.

Example:

"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
boolean

When true and a query is supplied, summary returns a single AI summary of this company's expansion activity in the current scope (the selected market, or all foreign markets when is_all_markets is true), read against your query and grounded in the company's real signals with [n] citations.

Example:

true

window_days
integer
default:90

Optional. Rolling window (in days) that bounds the AI summary feed. Defaults to 90 when neither this nor transitioned_dates is supplied. Does not affect the paginated signals list (full history).

Example:

90

transitioned_dates
string<date>[]

ISO [from, to] date range for the signal/transition window. Takes precedence over window_days when both are supplied.

Example:
domain
string

A company domain used for company search operations. If we receive a URL such as www.pubrio.com or https://docs.pubrio.com/, the system will convert it to pubrio.com for processing.

Example:

"pubrio.com"

linkedin_url
string

The fully formed URL of the LinkedIn company profile. URL begin with http and contain linkedin.com/company/

Example:

"https://www.linkedin.com/company/pubrio"

is_include_established
boolean

Include the established stage (long-standing operators with no active expansion signals). Defaults to false.

Example:

false

page
integer
default:1

Page number, starting at 1. The ceiling is your subscription's max_search_page (max_company_search_page for company search), returned by Profile. Exceeding it returns HTTP 416.

Example:

1

per_page
integer
default:25

Records per page. Defaults to 25, which is also the ceiling on most plans — the limit is your subscription's max_search_per_page, returned by Profile. Exceeding it returns HTTP 416 with code 41676 (or 41613 on company and people search), not a clamped result set.

Required range: x <= 25
Example:

25

is_include_metadata
boolean

Return the full detail payload. API-key traffic is lean by default: the model block, the confidence figures (stage.confidence on Company Expansion Detail, confidence_score on other_markets[] and on Rankings markers[]) and the established_min / share_of_detected / has_known_office fields are all omitted unless this is true.

Example:

true

summary_only
boolean

Return only the stage summary block (data, company, markets_summary, signal_weekly_totals, recent_signals, expansion_score, summary) and skip the signal list and its aggregates. Much cheaper for hero/header views.

Example:

true

markets_summary_full
boolean

Include the full ranked market set as markets_summary alongside the capped other_markets list.

Example:

true

Response

200 - application/json

Company-in-market detail.

metadata
object
data
any
signals
object[]

The paginated signal rows behind this company/market pair — the evidence list. Page size and totals come from metadata.pagination.

summary
object

One-line stage summary for the pair. First page only.

company
object

Company chrome — name, domain, logo and social URLs. First page only.

signal_group_totals
object[]

Signal counts per type, bucketed by day in your timezone. First page only.

signal_type_totals
object[]

All-time signal totals per signal type. First page only.

signal_type_recent_totals
object[]

Signal totals per type over the trailing 12 weeks. First page only.

signal_weekly_totals
object[]

Weekly signal counts for the heatmap, same window as signal_type_recent_totals. First page only.

evidence_breakdown
object

Evidence roll-up by source type, computed from the returned (redacted) signals. First page only.

presence
object

Observed physical and digital presence for the company in this market. First page only.

suppressions
object[]

Signals suppressed from the stage calculation, with the reason for each. First page only.

timeline
object[]

Stage-transition history for this company/market pair. First page only.

other_markets
object[]

The company's other active markets. Capped on limited plans — see other_markets_locked_count. First page only.

other_markets_locked_count
integer

How many additional markets your plan did not return in other_markets. 0 when nothing was withheld.

markets_summary
object[]

Full ranked market set for this company. Returned only when markets_summary_full is true, on the first page.