{"uid":"cap_pRcn3CA9s-G-O4p7kdjeT","slug":"agents-pubrio-com-pubrio-expansion-search-d1ef6afe","name":"Pubrio Expansion Search","description":"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. Send at least one of `tos`, `froms`, `companies` or `query`.","url":"https://agents.pubrio.com/expansions/search?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","anyOf":[{"title":"From Markets","required":["froms"]},{"title":"To Markets","required":["tos"]},{"title":"Plain-language Query","required":["query"]},{"title":"Companies","required":["companies"]}],"properties":{"tos":{"type":"array","items":{"type":"string"},"example":["US","GB"],"description":"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."},"page":{"type":"integer","default":1,"example":1,"description":"Page number, starting at 1. The ceiling is your subscription's `max_search_page` (`max_company_search_page` for company search), returned by [Profile](/en/api-reference/endpoint/profile/profile). Exceeding it returns **HTTP 416**."},"froms":{"type":"array","items":{"type":"string"},"example":["US","GB"],"description":"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."},"query":{"type":"string","example":"fintech companies expanding into the UK","description":"Natural-language query that Pubrio interprets into expansion + company filters."},"scopes":{"type":"array","items":{"enum":["entering_new_market","expanding_within_presence","established_only"],"type":"string"},"example":["entering_new_market"],"description":"Filter by market-entry scope."},"stages":{"type":"array","allOf":[{"type":"array","items":{"enum":["exploring","committing","expanding","scaling"],"type":"string"},"example":["committing","expanding"],"description":"Filter to one or more expansion stages. See the Expansion Signals knowledge base for stage definitions."}],"items":{"type":"string","description":"Allowed values: exploring, committing, expanding, scaling."},"example":["committing","expanding"],"description":"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](/en/api-reference/endpoint/expansions/types) and compare `data.pagination.total_entries` against an unfiltered call if a result set looks wrong."},"sort_by":{"enum":["recent","expansion_score","signal_count","company_ranking"],"type":"string","example":"expansion_score","description":"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."},"keywords":{"type":"array","items":{"type":"string"},"example":["ecommerce","ai","fintech"],"description":"A list of keywords to filter companies by relevance, specialties, or descriptions."},"momentum":{"type":"array","allOf":[{"type":"array","items":{"enum":["advancing","steady","pulling_back"],"type":"string"},"example":["advancing","steady"],"description":"Trajectory to filter by. Only `advancing`, `steady` and `pulling_back` are accepted; the `directions` values in [Expansion Reference](/en/api-reference/endpoint/expansions/types) are response-side only."}],"items":{"type":"string","description":"Allowed values: advancing, steady, pulling_back."},"example":["advancing","steady"],"description":"Trajectory of the company's movement in the market. `advancing` is gaining ground, `steady` is holding, `pulling_back` covers retreat and contraction.\n\nDo **not** use the values from `directions` in [Expansion Reference](/en/api-reference/endpoint/expansions/types) 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."},"per_page":{"type":"integer","default":25,"example":25,"maximum":25,"description":"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](/en/api-reference/endpoint/profile/profile). Exceeding it returns **HTTP 416** with code `41676` (or `41613` on company and people search), not a clamped result set."},"revenues":{"type":"array","items":{"type":"integer"},"example":[0,100000],"description":"Minimum and maximum range of company revenue."},"companies":{"type":"array","items":{"type":"string"},"example":["stripe.com","https://www.linkedin.com/company/airbnb","b7d92a56-31f8-4c0b-ae43-19c8e5f24b70"],"description":"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."},"employees":{"type":"array","items":{"type":"array","items":{"type":"string"}},"example":[[1,10],[11,20],[10001]],"description":"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. \n\n Check out `company size` endpoints under the Filters tab for more information."},"freshness":{"type":"array","allOf":[{"type":"array","items":{"enum":["fresh","cooling","stale","cold"],"type":"string"},"example":["fresh","cooling"],"description":"Filter by evidence recency: fresh (~30d), cooling (~30-60d), stale (~60-90d), cold (>90d)."}],"items":{"type":"string","description":"Allowed values: fresh, cooling, stale, cold."},"example":["fresh","cooling"],"description":"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](/en/api-reference/endpoint/expansions/types) and compare `data.pagination.total_entries` against an unfiltered call if a result set looks wrong."},"verticals":{"type":"array","items":{"type":"integer"},"description":"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.\n\nThis filter supports `is_enable_similarity_search`, once enabled you can enter any free text, e.g. `[\"AI\"]`."},"industries":{"type":"array","items":{"type":"string"},"example":["software","financial services"],"description":"Filter by industry name (free-text match)."},"job_titles":{"type":"array","items":{"type":"string"},"example":["sales manager","marketing manager"],"description":"Job titles associated with the individuals you aim to locate. \n\n 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`."},"exclude_tos":{"type":"array","items":{"type":"string"},"example":["US","GB"],"description":"Target markets to exclude (ISO 3166-1 alpha-2)."},"min_markets":{"type":"integer","example":3,"description":"Minimum number of new markets a company must have entered in the window."},"window_days":{"type":"integer","example":90,"description":"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."},"signal_types":{"type":"array","allOf":[{"type":"array","items":{"enum":["AD","AUDIENCE","DNS","ENTITY","EVENT","EVENT_PLUS","EXEC","HIRE","INFRA","IP","NEWS","OFFICE","PARTNER","PRODUCT","REG","SCALE","TECH"],"type":"string"},"example":["EXEC","HIRE"],"description":"Filter to specific signal types. See the Signal Types catalog in the knowledge base for definitions and tiers (`DNS` and `INFRA` are Premier-tier signals)."}],"items":{"type":"string","description":"Allowed values: AD, AUDIENCE, DNS, ENTITY, EVENT, EVENT_PLUS, EXEC, HIRE, INFRA, IP, NEWS, OFFICE, PARTNER, PRODUCT, REG, SCALE, TECH."},"example":["EXEC","HIRE"],"description":"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](/en/api-reference/endpoint/expansions/types) and compare `data.pagination.total_entries` against an unfiltered call if a result set looks wrong."},"technologies":{"type":"array","items":{"type":"integer"},"description":"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.\n\nThis filter supports `is_enable_similarity_search`, once enabled you can enter any free text, e.g. `[\"Shopify\"]`.\n\nA product name the technology list knows matches that product and its own products (`\"Salesforce\"` also matches Salesforce Desk and Salesforce Service Cloud), never look-alikes; other text matches by similarity."},"ahead_of_pace":{"type":"boolean","example":false,"description":"Limit to pairs moving faster than the typical pace for that market."},"exclude_froms":{"type":"array","items":{"type":"string"},"example":["US","GB"],"description":"Origin markets to exclude (ISO 3166-1 alpha-2)."},"founded_dates":{"type":"array","items":{"type":"integer"},"example":[2018,2024],"description":"Years of company founded range. The maximum value founded is the current year."},"job_locations":{"type":"array","items":{"type":"string"},"example":["US","SG","CN"],"description":"ISO 3166-1 alpha-2 (cca2) is used for filtering locations. Check out `location` endpoints under the Filters tab for more information."},"news_categories":{"type":"array","items":{"type":"string"},"example":["launches"],"description":"List of `category slugs` for searching for specific news categories. To find a slug, call the `news categories` endpoint under the Filters tab."},"is_explain_match":{"type":"boolean","example":true,"description":"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."},"job_posted_dates":{"type":"array","items":{"type":"string"},"example":["2025-01-01","2025-01-10"],"description":"Date range of the posted date. The maximum value is the current day. Day boundaries follow your workspace timezone."},"min_signal_count":{"type":"integer","example":3,"description":"Minimum number of expansion signals a company must have in the window — \"very active / heavy footprint\"."},"only_contraction":{"type":"boolean","example":false,"description":"When true, return only contraction-flagged expansions (companies scaling back)."},"signal_strengths":{"type":"array","allOf":[{"type":"array","items":{"enum":["low","medium","high","very_high"],"type":"string"},"example":["high"],"description":"Filter by evidence-confidence bucket: `low`, `medium`, or `high`. Note this is distinct from the per-signal `signal_strength_slug` returned on signal records (which ranges `low` to `very_high`); any other value here matches nothing."}],"items":{"type":"string","description":"Allowed values: low, medium, high, very_high."},"example":["high"],"description":"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](/en/api-reference/endpoint/expansions/types) and compare `data.pagination.total_entries` against an unfiltered call if a result set looks wrong."},"filter_conditions":{"type":"array","items":{"type":"object","properties":{"key":{"enum":["keywords","verticals","vertical_categories","vertical_sub_categories","technologies","categories","social_media","advertisement_target_locations","job_exclude_locations"],"type":"string","example":"keywords","description":"The filter key specifying which property to apply the operator to."},"operator":{"enum":["or","and"],"type":"string","example":"or","description":"The logical operator to apply. Use 'or' to match any of the specified values, or 'and' to require all specified values."}}},"description":"Advanced filtering options for company searches. Specify conditions combining keys and logical operators to refine search results."},"home_country_code":{"type":"array","items":{"type":"string"},"example":["SG"],"description":"Filter by company home country (ISO 3166-1 alpha-2). Intersects with `froms` when both are supplied."},"exclude_industries":{"type":"array","items":{"type":"string"},"example":["tobacco"],"description":"Industries to exclude (free-text match)."},"transitioned_dates":{"type":"array","items":{"type":"string","format":"date"},"example":["2026-04-01","2026-06-29"],"description":"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\")."},"is_include_metadata":{"type":"boolean","allOf":[{"type":"boolean","example":true,"description":"API-key responses are lean by default. Set true to include the full `metadata` block (aggregates, top origins/destinations, top industries, timeline) and per-company model detail."}],"example":true,"description":"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`."},"vertical_categories":{"type":"array","items":{"type":"integer"},"description":"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.\n\nThis filter supports `is_enable_similarity_search`, once enabled you can enter any free text, e.g. `[\"Information Technology\"]`."},"news_published_dates":{"type":"array","items":{"type":"string"},"example":["2025-01-01","2025-01-10"],"description":"Date range of the published date. The maximum value is the current day. Day boundaries follow your workspace timezone."},"job_exclude_locations":{"allOf":[{"type":"array","items":{"type":"string"},"example":["CN","US","RU","CA"],"description":"ISO 3166-1 alpha-2 (cca2) is used to filter out locations that does not need to be returned. Check out `location` endpoints under the Filters tab for more information."}],"description":"Geographic locations to exclude from job posting results."},"advertisement_end_dates":{"type":"array","items":{"type":"string","format":"date"},"example":["2025-12-25","2025-12-25"],"description":"End date range for advertisement filtering."},"vertical_sub_categories":{"type":"array","items":{"type":"integer"},"description":"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.\n\nThis filter supports `is_enable_similarity_search`, once enabled you can enter any free text, e.g. `[\"Software\"]`."},"advertisement_start_dates":{"type":"array","items":{"type":"string","format":"date"},"example":["2025-12-25","2025-12-25"],"description":"Start date range for advertisement filtering."},"advertisement_search_terms":{"type":"array","items":{"type":"string"},"example":["asus"],"description":"Keywords used to search within advertisement content or titles."},"is_enable_similarity_search":{"type":"boolean","example":true,"description":"Enable free-text matching for `verticals`, `vertical_categories`, `vertical_sub_categories` and `technologies`. Without it, free-text values in those filters match nothing."},"advertisement_target_locations":{"allOf":[{"type":"array","items":{"type":"string"},"example":["TW","AE","NO"],"description":"Country codes the results must target. Combines with `filter_conditions` as OR by default — a result matches if it targets any of them."}],"description":"Target geographic locations for advertisements."},"advertisement_exclude_target_locations":{"allOf":[{"type":"array","items":{"type":"string"},"example":["IS","GB","FR","IE","ES"],"description":"Country codes the results must not target. Combines with `filter_conditions` as OR by default — a result matches if it targets any of them."}],"description":"Geographic locations to exclude from advertisement targeting."}},"description":"Provide at least one of the following: From Markets (froms); To Markets (tos); Plain-language Query (query); Companies (companies)."},"responseSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object"},"description":"The company list. Each item carries a nested `stage`; `match_summary` is included when `is_explain_match` is true. API-key responses also include `presence` (`level`: established | emerging | none | no_data; `matched_rule`: office | headcount | share) and a `read` object whose `code` is scaling | deepening | active | establishing (null when there is no local presence to read)."},"pagination":{"type":"object","description":"Page, per-page, total entries and total pages."}},"description":"Result container (standard search envelope): the company list plus pagination."},"metadata":{"type":"object","properties":{"filters":{"type":"object","description":"The filters as received. With `query`, the interpreted filters, where `country_codes` with `direction: inbound` corresponds to `tos`."},"nl_note":{"type":"string","description":"Human-readable note when a natural-language query expressed no recognizable criteria; the list is empty in that case."},"is_multi":{"type":"boolean"},"timeline":{"type":"array","items":{"type":"object"}},"aggregate":{"type":"object","description":"Market-level rollup. Present when metadata is requested."},"direction":{"type":"string"},"is_global":{"type":"boolean"},"top_origins":{"type":"array","items":{"type":"object"}},"country_code":{"type":"string"},"nl_note_code":{"type":"string","description":"Machine-readable code for nl_note (e.g. expansion.search.no_criteria)."},"country_codes":{"type":"array","items":{"type":"string"}},"top_industries":{"type":"array","items":{"type":"object"}},"relaxed_filters":{"type":"array","items":{"type":"string"},"description":"Soft filters auto-dropped when a natural-language query matched nothing; null otherwise."},"top_destinations":{"type":"array","items":{"type":"object"}},"transitioned_dates":{"type":"array","items":{"type":"string"}}},"description":"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."}}},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"unknown","displayCostAsset":"USD","priceDynamic":true,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":1,"rating":{"score":"0.75","successRate":"0.75","reviews":1,"stars":"4.0","state":"rated"},"availabilityStatus":"down","priceObserved":{"p10Cents":"5.0000","medianCents":"5.0000","p90Cents":"5.0000","minCents":"5.0000","maxCents":"5.0000","p95Cents":"5.0000","sampleCount":3,"varies":false,"failureChargeRate":null},"sessionDeposit":null,"pricing":{"kind":"dynamic","summary":"~$0.05/call (observed)","primary":{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_9p-uSe6brKF-WQ7xuHAkb","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"unknown","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":"agents.pubrio.com","brandSlug":"agents-pubrio-com-x402","brandBaseUrl":"https://agents.pubrio.com","brandDocsUrl":null,"whatItDoes":"Find companies expanding into specific markets using firmographic filters, expansion stage/scope filters, or a plain-language query, with optional AI-generated match explanations.","exampleAgentPrompt":"Find me fintech companies that are currently in the 'committing' or 'expanding' stage of entering the UK market, expanding from the US — I want to see AI match explanations for each one.","exampleUseCases":[{"title":"Sales prospecting for market entrants","prompt":"Find me SaaS companies that are actively expanding into Japan right now, ideally in the 'expanding' or 'scaling' stage — I want to know which ones are entering new markets there so I can reach out as a local partner."},{"title":"Competitive landscape mapping for a new market","prompt":"Show me all the fintech companies moving from the US into Germany, so I can understand who my competition will be when we launch there next quarter."},{"title":"Investor deal sourcing by expansion signal","prompt":"I'm looking for high-growth companies that are in the 'committing' stage of entering Southeast Asian markets — specifically Singapore or Indonesia. Can you pull a list with match explanations so I can evaluate them as investment targets?"}],"resultDescription":"A paginated list of companies matching the expansion criteria, each with firmographic details and an expansion stage indicator. When AI explanations are requested, each company includes a match_summary grounded in real signals. Also returns metadata including interpreted filters, top origin countries, top destination markets, top industries, timeline data, and aggregate market-level KPIs. Presence level (established/emerging/none/no_data) and a read object are included for API-key responses.","failureModes":["HTTP 416 if page exceeds subscription's max_search_page limit","Empty result list with nl_note and nl_note_code if natural-language query contains no recognizable expansion criteria","Silently ignored unrecognized stage values (values are not validated)","Missing required fields (none of tos, froms, companies, query provided) returns an error","Rate limiting or credit exhaustion errors if subscription quota is exceeded"],"whenToPreferThis":"Use this endpoint when you need to discover companies that are actively entering or growing within specific geographic markets, especially when you want to filter by expansion stage (exploring/committing/expanding/scaling), market scope, or use a plain-language query to interpret criteria. Prefer this over the Expansion Rankings endpoint when you need full company details and pagination rather than a lightweight ranked list, and over the Compare endpoint when you are searching broadly rather than comparing specific known companies.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":4,"lastUsedAt":"2026-10-09T15:18:56.073Z","lastSuccessfullyRanAt":"2026-10-09T15:18:56.073Z","lastHealthCheckAt":"2026-10-12T21:21:00.179Z","isFirstParty":false,"canonicalSlug":"agents-pubrio-com-pubrio-expansion-search-d1ef6afe"}