Expansion Search
Find companies expanding into one or more markets using firmographic and signal filters or a plain-language query, with optional AI match explanations grounded in each company’s real signals.
Authorizations
Body
Origin markets (ISO 3166-1 alpha-2). Where a company is expanding FROM — its home / HQ countries. Use alone to find companies growing out of these markets; combine with tos for a specific from→to corridor.
Target markets (ISO 3166-1 alpha-2). Where a company is expanding TO. Use alone to find every company entering these markets; combine with froms for a specific from→to corridor.
Origin markets to exclude (ISO 3166-1 alpha-2).
Target markets to exclude (ISO 3166-1 alpha-2).
Values are case-sensitive and are not validated. An unrecognised value is silently discarded rather than rejected: on stages, freshness, scopes and momentum the whole filter is dropped and you get unfiltered results, while on signal_types and signal_strengths the filter is applied and matches nothing. Either way the response looks normal. Resolve valid slugs from Expansion Reference and compare data.pagination.total_entries against an unfiltered call if a result set looks wrong.
exploring, committing, expanding, scaling, established Trajectory of the company's movement in the market. advancing is gaining ground, steady is holding, pulling_back covers retreat and contraction.
Do not use the values from directions in Expansion Reference here. Those (advancing, steady, retreating, new) are the response values you get back on stage.direction; only the three listed above are accepted as a filter. Sending retreating or new silently disables the filter and returns unfiltered results.
accelerating, advancing, steady, pulling_back Values are case-sensitive and are not validated. An unrecognised value is silently discarded rather than rejected: on stages, freshness, scopes and momentum the whole filter is dropped and you get unfiltered results, while on signal_types and signal_strengths the filter is applied and matches nothing. Either way the response looks normal. Resolve valid slugs from Expansion Reference and compare data.pagination.total_entries against an unfiltered call if a result set looks wrong.
fresh, cooling, stale, cold Filter by market-entry scope.
entering_new_market, expanding_within_presence, established_only Limit to pairs moving faster than the typical pace for that market.
false
Values are case-sensitive and are not validated. An unrecognised value is silently discarded rather than rejected: on stages, freshness, scopes and momentum the whole filter is dropped and you get unfiltered results, while on signal_types and signal_strengths the filter is applied and matches nothing. Either way the response looks normal. Resolve valid slugs from Expansion Reference and compare data.pagination.total_entries against an unfiltered call if a result set looks wrong.
AD, NEWS, DNS, INFRA, PARTNER, EVENT_PLUS, EXEC, OFFICE, HIRE, SCALE, PRODUCT Values are case-sensitive and are not validated. An unrecognised value is silently discarded rather than rejected: on stages, freshness, scopes and momentum the whole filter is dropped and you get unfiltered results, while on signal_types and signal_strengths the filter is applied and matches nothing. Either way the response looks normal. Resolve valid slugs from Expansion Reference and compare data.pagination.total_entries against an unfiltered call if a result set looks wrong.
low, medium, high Minimum number of expansion signals a company must have in the window — "very active / heavy footprint".
3
When true, return only contraction-flagged expansions (companies scaling back).
false
Minimum number of new markets a company must have entered in the window.
3
Filter by company home country (ISO 3166-1 alpha-2). Intersects with froms when both are supplied.
Filter by industry name (free-text match).
Industries to exclude (free-text match).
A list of vertical_id used to search for companies in a specific vertical or industry. To find the ID, call the vertical endpoint under the Filters tab.
This filter supports is_enable_similarity_search, once enabled you can enter any free text, e.g. ["AI"].
A list of vertical_category_id used to search for companies in a specific vertical category. To find the ID, call the vertical category endpoint under the Filters tab.
This filter supports is_enable_similarity_search, once enabled you can enter any free text, e.g. ["Information Technology"].
A list of vertical_sub_category_id used to search for companies in a specific vertical sub-category. To find the ID, call the vertical sub category endpoint under the Filters tab.
This filter supports is_enable_similarity_search, once enabled you can enter any free text, e.g. ["Software"].
A list of tag_id used to search for specific technologies used by companies. To find the ID, call the technology endpoint under the Filters tab.
This filter supports is_enable_similarity_search, once enabled you can enter any free text, e.g. ["Shopify"].
The number range of employees working for the company. This enables you to find companies based on headcount. You can add multiple ranges to expand your search results.
Check out company size endpoints under the Filters tab for more information.
Minimum and maximum range of company revenue.
Years of company founded range. The maximum value founded is the current year.
A list of keywords to filter companies by relevance, specialties, or descriptions.
Scope to specific companies by any mix of domain_search_id, company domain, or a company social media profile URL. Domains and URLs resolve to their best-ranked company.
ISO 3166-1 alpha-2 (cca2) is used for filtering locations. Check out location endpoints under the Filters tab for more information.
Geographic locations to exclude from job posting results.
Date range of the posted date. The maximum value is the current day.
Job titles associated with the individuals you aim to locate.
The results will also encompass job titles that include similar terminology, even if they do not match exactly. For instance, searching for software engineer may yield results for individuals with the title senior software engineer.
Target geographic locations for advertisements.
Geographic locations to exclude from advertisement targeting.
Keywords used to search within advertisement content or titles.
Start date range for advertisement filtering.
End date range for advertisement filtering.
List of category slugs for searching for specific news categories. To find a slug, call the news categories endpoint under the Filters tab.
Date range of the published date. The maximum value is the current day.
ISO date range for the timeline window. Defaults to the last 90 days. A natural-language query may also set this from calendar phrases ("this year", "last year", "Q2 2026").
Optional. Size of the rolling window in days. Used when an explicit transitioned_dates range is not supplied; if both are omitted, a default window is used.
90
Natural-language query that Pubrio interprets into expansion + company filters.
"fintech companies expanding into the UK"
Include AI-generated explanations of why each company matches the search, grounded in the company's real signals. Best paired with a natural-language query. The number of signals cited and the batch size both scale with per_page; high-volume sources (job postings, ad campaigns) are summarized as a window-scoped count (e.g. "12 job postings") rather than listed individually.
true
Result ordering. Omit for the default relevance order: corroborated pairs first (2+ distinct signal types), then repeated-evidence pairs (3+ signals), then the rest — most recently transitioned first within each tier. recent — pure recency (most recently transitioned first). expansion_score — highest expansion score first. signal_count — most signals in the pair first. company_ranking — Pubrio's overall company ranking (lower is more prominent), ascending.
recent, expansion_score, signal_count, company_ranking "expansion_score"
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.
true
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.
x <= 2525
Response
Paginated list of companies expanding in the market(s). filters echoes the applied (or natural-language-interpreted) criteria; each company includes a match_summary when is_explain_match is true.
Search metadata: the filters actually applied, plus the market rollup (aggregate, geo scope, top origins/destinations/industries, timeline). API-key responses include the rollup only when is_include_metadata is true.
Result container (standard search envelope): the company list plus pagination.

