# Look up a company by its domain with Pubrio's API

Pubrio's company lookup API returns a company's stored record from its domain alone. The record includes firmographics, location, categories, social profile names and contact types. A lookup is 1 credit, $0.01, with no signup and no API key. Send `POST https://agents.pubrio.com/zcj/4j7kwmcietmr/companies/lookup` with `{"domain": "<domain>"}`, pay the 402 price quote it returns, and send the same request again to get the record.

## At a glance

- **Endpoint:** `POST https://agents.pubrio.com/zcj/4j7kwmcietmr/companies/lookup`
- **Body:** JSON with one of `domain`, `linkedin_url` or `domain_search_id`
- **Price:** 1 credit per lookup, $0.01. Prepaid Scale credit is $0.009.
- **Payment:** a 402 price quote, paid over x402 (Base USDC) or MPP (Tempo USDC) and retried with the proof. No account or API key is needed.
- **Response:** `data`, the company record, and `metadata`, the filters the lookup applied
- **Limits:** one company per request
- **Full purchase flow:** [the buyer skill](https://agents.pubrio.com/zcj/4j7kwmcietmr/SKILL.md)

## Look up a company by domain

1. Send the lookup with no payment:

   ```bash
   curl -s -X POST https://agents.pubrio.com/zcj/4j7kwmcietmr/companies/lookup \
     -H 'Content-Type: application/json' \
     -d '{"domain": "stripe.com"}'
   ```

   The storefront returns `402 Payment Required`. A 402 is the price quote: you pay it and send the request again. The body carries `payment.amountUsd`, a `usage` entry that names the meter and quantity, the `plan` the call is billed on, and a `protocols` block with one `x402` challenge and one `mpp` challenge. The same challenges also arrive in the `payment-required` and `www-authenticate` headers, so a standard client can settle them without reading the body. Nothing is charged at this point, so you can safely stop here.

2. Settle the 402 with an x402 or MPP client, which sends the same request again with the proof attached. The full purchase flow is in [the buyer skill](https://agents.pubrio.com/zcj/4j7kwmcietmr/SKILL.md). The example lookup paid $0.01 for its one credit.

3. Read the record from the `200` response. The example lookup of `stripe.com` returned this record, trimmed here:

   ```json
   {
     "metadata": {
       "is_enrichment_available": false,
       "filters": {"domain": "stripe.com", "language": "en"},
       "profile": null
     },
     "data": {
       "company_name": "Stripe",
       "domain": "stripe.com",
       "domain_search_id": "<domain_search_id>",
       "industry": "Technology, Information And Internet",
       "founded_year": 2010,
       "estimated_revenue": 14400000000,
       "company_type": "Privately Held",
       "country_code": "US",
       "company_region": "california",
       "company_locality": "south san francisco",
       "company_address": "South San Francisco, California",
       "linkedin_name": "stripe",
       "categories": ["56", "…"],
       "verticals": ["69085143", "…"],
       "contacts": [{"type": "email-generic", "value": "<email>", "status": null, "is_redeemed": true}, "…"]
     }
   }
   ```

   Location appears in `country_code`, `country`, `company_region`, `company_locality`, `company_address` and `company_addresses`. `categories`, `verticals`, `vertical_categories` and `vertical_sub_categories` are lists of ids. The social profile names are `linkedin_name`, `wantedly_name`, `rocketpunch_name` and `tiktok_name`, and each is `null` when the company has no profile on that site. `emails`, `phones` and `contacts` list the company's contact points, and each contact has a `type` such as `email-generic`.

4. Keep `domain_search_id`. It is Pubrio's company identifier. Other operations accept it wherever they take a company, such as the `companies` filter on any search, and you can send it to this lookup instead of the domain.

## Choose the identifier

A lookup is 1 credit whichever identifier you send.

| You hold | Field | Value |
| --- | --- | --- |
| A domain or a website URL | `domain` | `"stripe.com"`. A URL such as `https://docs.pubrio.com/` is converted to `pubrio.com`. |
| A LinkedIn company page | `linkedin_url` | A URL that starts with `http` and contains `linkedin.com/company/` |
| A Pubrio company id from an earlier result | `domain_search_id` | `"<domain_search_id>"` |

## What the same company opens next

| Next job | Service | Credits per call | Cost | Reference |
| --- | --- | --- | --- | --- |
| The record plus recent hiring, news, advertising and similar-company signals | Company Enrichment | 3 | $0.03 | [Enrichment](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/enrichment) |
| Hiring, news, ad and cloud hosting signals over a date window, with weekly series | Company Insights | 3 | $0.03 | [Insights](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/insights) |
| Similar companies, each with a similarity score from 0 to 1 | Lookalike Search | 3 | $0.03 | [Lookalike](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/lookalike) |
| Companies entering a market, or one company's expansion profile and dated signal events | Market Expansion | 5 | $0.05 | [Expansion](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/expansion) |
| Companies matching filters or a plain-language query, 25 per page | Search | 1 for company search | $0.01 | [Search](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/search) |

## Limits

- Each request returns one company, and the `domain` field takes a single domain.
- A lookup returns the stored record. Hiring, news, ad and similar-company signals come from Company Enrichment. A first enrichment of a company built from scratch can take up to a minute.
- An unpaid 402 charges nothing. Card pays a pay-as-you-go call only when the call costs $0.55 or more. Below that, pay on a wallet rail or from prepaid credit.
- Prepaid credit comes in two plans: Starter, with a minimum of $50, and Scale, with a minimum of $495. You buy either at `/plans/{planId}/purchase` with an agent identity, which is the bearer credential the storefront issues. The plan id is in [the catalog](https://agents.pubrio.com/zcj/4j7kwmcietmr/manifest.json).

## Errors

| Response | Meaning | Action |
| --- | --- | --- |
| `402` with a `payment` block | The price quote. Nothing is charged yet. | Pay it and retry the same request, or stop |
| `400` | The body is malformed or has an invalid parameter | Check `code` and `message`, then send a valid `domain`, `linkedin_url` or `domain_search_id` |
| `429` | Rate limit exceeded | Wait for the window to reset, then retry |
| `settlement_failed` | The signed payment did not settle | Fix the wallet, then start again from a fresh request |
| `payment_consumed` | That payment was already settled | Check whether the first request delivered before you pay again |

The full list is in [the error reference](https://agents.pubrio.com/zcj/4j7kwmcietmr/errors.md).

## Frequently asked questions

### Do I need an API key to look up a company with Pubrio?

No. A pay-as-you-go lookup needs no signup, no account and no API key. The 402 payment itself is the access, settled from a wallet over x402 or MPP with each call. Card covers only calls of $0.55 or more. You only need an agent identity to buy a prepaid plan or claim the free trial.

### How much does a company lookup cost?

A lookup is 1 credit, $0.01, and the 402 states the exact amount before you pay. With prepaid Scale credit, a credit is $0.009. The Free trial grants $1 of credit once per person, for an agent identity that a human has claimed with a verified email.

### How long does a company lookup take?

A lookup reads the stored record, and the example lookup returned in 4.9 seconds. Company Enrichment is slower on its first call for a company it has to enrich from scratch, and can take up to a minute.

### Can I look up a company from its LinkedIn page instead of its domain?

Yes. Send `linkedin_url` with the company page URL in place of `domain`. It returns the same record for the same 1 credit. A `domain_search_id` from an earlier result works the same way.

### Which companies does Pubrio cover?

Pubrio counts 800M+ companies and 560M+ contacts in its data, drawn from 50+ local sources and updated every day. Its market expansion signals reach 200+ markets and are strongest in Asia-Pacific.

## Keep reading

- [Buyer skill](https://agents.pubrio.com/zcj/4j7kwmcietmr/SKILL.md): the full purchase flow
- [How to pay](https://agents.pubrio.com/zcj/4j7kwmcietmr/payment.md): x402, MPP, card and prepaid plans
- [Lookup service](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/lookup): prices by plan
- [Lookup API reference](https://agents.pubrio.com/zcj/4j7kwmcietmr/services/lookup/openapi.json): request and response schemas
- [Error reference](https://agents.pubrio.com/zcj/4j7kwmcietmr/errors.md): every error code and how to react

---

Updated 2026-11-04. All Pubrio guides: https://agents.pubrio.com/guides.md. Storefront: https://agents.pubrio.com/zcj/4j7kwmcietmr/llms.txt.
