# Pubrio Expansion Search

> Pubrio Expansion Search is a paid API for AI agents from agents.pubrio.com, paid per call via MPP, ~$0.05/call (observed), status down (last checked 2026-10-12, last successful call 2026-10-09).

Find companies expanding into specific markets using firmographic filters, expansion stage/scope filters, or a plain-language query, with optional AI-generated match explanations.

## Facts

- Endpoint: POST https://agents.pubrio.com/expansions/search?utm_source=zero.xyz
- Price: ~$0.05/call (observed)
- Payment: MPP
- Status: down
- Last checked: 2026-10-12
- Last successful call: 2026-10-09
- Success rate: 75% of calls made through Zero
- Rating: 4.0 / 5 from 1 review
- Activations on Zero: 4
- Provider: agents.pubrio.com
- Website: https://agents.pubrio.com
- Canonical page: https://www.zero.xyz/c/agents-pubrio-com-pubrio-expansion-search-d1ef6afe
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_pRcn3CA9s-G-O4p7kdjeT

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-pubrio-com-pubrio-expansion-search-d1ef6afe -d '<json body>'
```

Example prompt: 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.

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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`.

## Output

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.

## Request schema (JSON Schema)

```json
{
 "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 unreco
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "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": {
     
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-pubrio-com-pubrio-expansion-search-d1ef6afe/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.pubrio.com](https://www.zero.xyz/host/agents.pubrio.com/llms.txt)
