# Expansion Signal Search

> Expansion Signal Search is a paid API for AI agents from agents.pubrio.com, paid per call via MPP or x402, $0.05/call, status unknown (last checked 2026-10-11).

Returns raw, paginated expansion signal rows — the dated evidence behind a company's market stage, with source type and evidence URL.

## Facts

- Endpoint: POST https://agents.pubrio.com/expansions/signals/search?utm_source=zero.xyz
- Price: $0.05/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Provider: agents.pubrio.com
- Website: https://agents.pubrio.com
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agents-pubrio-com-expansion-signal-search-0312ced4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Bou10nEMxvWqlDYXEF1Gy

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-expansion-signal-search-0312ced4 -d '<json body>'
```

Example prompt: Pull the first page of live expansion signals for Grab in Southeast Asia from January 2025 to June 2025, filtering for HIRE and OFFICE signal types, 25 results per page.

## When to prefer this

Choose this endpoint when you need the raw, row-level evidence behind a company's expansion stage — individual dated signal rows with source provenance and evidence links — rather than aggregated summaries or ranked lists. Use it for auditing, building custom analytics pipelines, or verifying specific market-entry events. Prefer the Expansion Search endpoint for discovering which companies are expanding, and the Expansion Overview for market-level KPIs.

## Known failure modes

- HTTP 416 returned when requested page exceeds subscription's max_search_page limit
- HTTP 416 with code 41676 when per_page exceeds subscription's max_search_per_page
- Invalid signal_type enum values cause validation errors
- Empty result set when no signals match the specified filters and date range
- Null evidence_url on most rows since many signals are derived from structured sources without a citable page

## How this service works

Pubrio detects when companies enter new markets and returns the company and people data behind each move. Expansion signals (local hiring, new offices and entities, localized ads, news, cloud hosting) are typed, dated and tied to evidence across 200+ markets, with strong coverage of Asia-Pacific and other markets that Western-built datasets miss. The graph covers 800M+ companies and 560M+ contacts from 50+ local data sources, refreshed daily. Search companies, people, job postings, news, ads and cloud footprints with filters or a plain-language query; look up records by domain, LinkedIn URL or Pubrio id; find lookalike companies and people; read hiring, news, advertising and cloud insights for one company; and reveal verified work emails, personal emails and phone numbers. Each call costs the number of credits listed on its endpoint. This server is a pay-per-use, transparent proxy in front of Pubrio's own API: it handles identity, payment, and proxying. Agents can purchase autonomously or with their human's approval. The complete verified paid surface is listed at /openapi.json, the source of truth for available operations. Each operation here carries its live price in x-payment-info. Use the operations and details here when they meet your needs. Filtered specs contain only matching operations; if you cannot find what you need here, use search or the service catalog. The live catalog at /manifest.json is authoritative for prices and any free included units (prices[].includedUnits) - some meters include free usage per account before any charge, reserved for agents claimed by a human with a verified email.

## Output

A paginated array of signal objects, each containing the event date and precision, polarity (expansion or contraction variant), source type (jobs, ads, linkedin, news, pubrio), country code, optional evidence URL, signal-type-specific metadata (e.g. job departments or ad headlines), audit provenance fields, and active/retracted status.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "page": {
   "type": "integer",
   "default": 1,
   "example": 1,
   "description": "Page number, starting at 1."
  },
  "per_page": {
   "type": "integer",
   "default": 25,
   "example": 25,
   "maximum": 25,
   "description": "Records per page, 1 to 25. Defaults to 25."
  },
  "is_active": {
   "type": "boolean",
   "default": true,
   "example": true,
   "description": "true (the default) returns live signals only; false returns retracted signals only."
  },
  "polarities": {
   "type": "array",
   "items": {
    "enum": [
     "expansion",
     "contraction_leading",
     "contraction_confirming",
     "contraction_lagging"
    ],
    "type": "string"
   },
   "example": [
    "expansion"
   ],
   "description": "Signal directions to include. expansion marks entry and growth; the contraction_* values mark retreat."
  },
  "event_dates": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "2026-06-01",
    "2026-06-30"
   ],
   "description": "Date range of the signal event date. The maximum value is the current day."
  },
  "signal_types": {
   "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."
    }
   ],
   "description": "Signal types to restrict to. Unknown values match nothing."
  },
  "source_types": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "jobs",
    "ads"
   ],
   "description": "Source types to restrict to: jobs, ads, linkedin, news, pubrio."
  },
  "country_codes": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "US",
    "GB"
   ],
   "description": "Target markets to restrict to, as ISO 3166-1 alpha-2 codes."
  },
  "signal_subtypes": {
   "allOf": [
    {
     "type": "array",
     "items": {
      "enum": [
       "marketing_pullback",
       "domain_dropped",
       "entity_dissolution",
       "exhibiting_booth",
       "speaking_breakout",
       "speaking_keynote",
       "sponsorship",
       "key_departure",
       "country_manager",
       "engineering",
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "object",
   "properties": {
    "signals": {
     "type": "array",
     "items": {
      "type": "object",
      "properties": {
       "audit": {
        "type": "object",
        "properties": {
         "user_id": {
          "type": "string",
          "format": "uuid",
          "nullable": true
         },
         "import_id": {
          "type": "string",
          "nullable": true
         },
         "profile_id": {
          "type": "integer",
          "nullable": true
         },
         "is_backfill": {
          "type": "boolean"
         }
        },
        "description": "Provenance of the row: `profile_id` and `user_id` are set for user-imported signals, `import_id` groups a bulk import, and `is_backfill` marks rows added by a historical backfill."
       },
       "notes": {
        "type": "string",
        "nullable": true,
        "description": "Free-text annotation. Usually `null`."
       },
       "metadata": {
        "type": "object",
        "description": "Source-specific detail. Its keys vary by `source_type` — job rows carry `departments`, `seniority`, `top_titles`, `active_postings`; ad rows carry `advertisement_format`, `headline`, `share_pct`."
       },
       "polarity": {
        "type": "string",
        "description": "Signal direction: `expansion`, or one of the three `contraction_*` values."
       },
       "is_active": {
        "type": "boolean",
        "description": "`true` for live signals, `false` once a signal has been retracted."
       },
       "occurs_at": {
        "type": "string",
        "format": "date-time",
        "nullable": true,
        "description": "Start of the window the signal covers, for signals that span a period."
       },
       "created_at": {
        "type": "string",
        "format": "date-time",
        "description": "When the signal row was created."
       },
       "event_date": {
        "type": "string",
        "format": "date-time",
        "description": "When the underlying event happened. Read together with `event_date_precision`."
       },
       "source_type": {
        "type": "string",
        "description": "Where the signal came from. Observed values: `jobs`, `ads`, `linkedin`, `news`, `pubrio`."
       },
       "country_code": {
        "type": "string",
        "description": "Target market this signal was observed in, as an ISO 3166-1 alpha-2 code."
       },
       "evidence_url": {
       
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-pubrio-com-expansion-signal-search-0312ced4/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)
