# Pubrio Person Contact Lookup

> Pubrio Person Contact Lookup is a paid API for AI agents from agents.pubrio.com, paid per call via MPP or x402, $0.01/call, status unknown (last checked 2026-10-11).

Reverse-lookup a person by email, phone, or name plus domain/company to retrieve their Pubrio people_search_id and profile details.

## Facts

- Endpoint: POST https://agents.pubrio.com/redeem/people/contact/lookup?utm_source=zero.xyz
- Price: $0.01/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-pubrio-person-contact-lookup-2eec1fbf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zzJxiduXVLz9nuJBu7Jtm

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-person-contact-lookup-2eec1fbf -d '<json body>'
```

Example prompt: Can you look up who this person is — their name is King Lai, they work at pubrio.com — and get me their Pubrio profile ID and any contact details you can find?

## When to prefer this

Use this endpoint when you have a known contact identifier (email, phone, or full name + company) and need to resolve it to a Pubrio person record with a people_search_id. Prefer this over the general people search endpoint when you want a direct, deterministic match rather than a ranked list of candidates. Choose this over the LinkedIn URL lookup when you don't have a LinkedIn URL but do have email, phone, or name+company information.

## Known failure modes

- No match found — returns empty peoples array and zero credit cost
- Invalid email format — rejected by schema validation before hitting the API
- Ambiguous name match — similarity search disabled by default, requiring exact email/phone for non-name queries
- Missing required fields — must supply at least one of: email, phone, or (first_name + last_name + domain/company)
- Insufficient credits — call fails if account balance is below 1 credit

## 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

Returns a 'peoples' array with the matched person's profile including people_search_id, name, and available contact details (emails and phones, returned as null rather than empty array when not found), plus match metadata describing how the match was made. Credit cost is reported in total_credit_cost (1 credit per billable match, 0 if no match).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "anyOf": [
  {
   "title": "Email",
   "required": [
    "email"
   ]
  },
  {
   "title": "Phone",
   "required": [
    "phone"
   ]
  },
  {
   "title": "Name + Domain",
   "required": [
    "first_name",
    "last_name",
    "domain"
   ]
  },
  {
   "title": "Name + Company",
   "required": [
    "first_name",
    "last_name",
    "company"
   ]
  }
 ],
 "properties": {
  "email": {
   "type": "string",
   "format": "email",
   "example": "person@example.com",
   "description": "Work or personal email address to look up. The system normalizes case and whitespace before matching."
  },
  "phone": {
   "type": "string",
   "example": "+15551234567",
   "description": "Phone number to look up. International (E.164) format is recommended."
  },
  "domain": {
   "type": "string",
   "example": "pubrio.com",
   "description": "Company domain, such as `stripe.com`. A website such as `https://www.stripe.com/` is read as its domain. With `first_name` + `last_name`, finds the person by name at this company."
  },
  "company": {
   "type": "string",
   "example": "Pubrio",
   "description": "Company name. With `first_name` + `last_name`, finds the person by name at this company when `domain` is not given."
  },
  "last_name": {
   "type": "string",
   "example": "Lai",
   "description": "Last name. Used with `first_name` and either `domain` or `company` to find the person by name."
  },
  "person_id": {
   "type": "string"
  },
  "first_name": {
   "type": "string",
   "example": "King",
   "description": "First name. With `last_name` and either `domain` or `company`, finds the person by name. A row with no `email` or `phone` is always searched this way."
  },
  "company_name": {
   "type": "string"
  },
  "is_enable_similarity_search": {
   "type": "boolean",
   "default": false,
   "example": true,
   "description": "Only changes rows that have an `email` or `phone`. When `true`, a row whose email or phone finds nobody is then searched by name (`first_name`, `last_name`, and `domain` or `company`). A row with only a name and a company is always searched by name and does not need this."
  }
 },
 "description": "Provide at least one of the following: Email (email); Phone (phone); Name + Domain (first_name, last_name, domain); Name + Company (first_name, last_name, company)."
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "object",
   "allOf": [
    {
     "type": "object",
     "nullable": true,
     "description": "Response info depends on specific endpoint."
    }
   ],
   "nullable": true,
   "properties": {
    "peoples": {
     "type": "array",
     "items": {
      "type": "object"
     },
     "description": "The redeemed people. `emails` and `phones` are `null` — not `[]` — when nothing is found for that person, so guard before iterating. `total_credit_cost` reflects only successful matches and is `0` when nothing was redeemed; cost scales with how many contact types you request."
    }
   },
   "description": "Response info depends on specific endpoint."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-pubrio-com-pubrio-person-contact-lookup-2eec1fbf/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)
