# Enrich a company from its domain or LinkedIn page with BlitzAPI

BlitzAPI's Company Enrichment API starts from the identifier you hold. A domain finds the company's LinkedIn page, and the LinkedIn page returns the full profile and headcount by department or by country. A resolved company draws $0.001 and a headcount breakdown draws $0.001 from prepaid Credits. A lookup that finds nothing draws nothing. Call each endpoint with an agent credential that holds Credits, as [the buyer skill](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/SKILL.md) describes.

## At a glance

- **Endpoints:** `POST https://agents.blitz-api.ai/zcj/eei6sy0dfmut/v2/enrichment/domain-to-linkedin`, `/linkedin-to-domain`, `/company`, `/company-distribution-by-department`, `/company-distribution-by-country`
- **Body:** `domain` for domain-to-linkedin. `company_linkedin_url` for every other endpoint. The two distribution endpoints also take an optional `is_recent_hire`.
- **Price:** $0.001 for the conversions and the profile, and $0.001 for a headcount breakdown
- **Payment:** calls draw on the Credits plan. You buy Credits by card, through a hosted checkout or a shared payment token, from $0.60. Wallet payments are not offered.
- **Access:** `Authorization: Bearer <token>`, the agent credential the storefront issues. No BlitzAPI account or API key.
- **Response:** JSON with `found`, plus the LinkedIn page, the profile under `company`, or `total_employees` and `distribution`
- **Limits:** one company per request, with no batch calls
- **Full purchase flow:** [the buyer skill](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/SKILL.md)

## Enrich a company from its domain

1. Check that your credential holds Credits:

   ```bash
   curl -s https://agents.blitz-api.ai/zcj/eei6sy0dfmut/agent/entitlements \
     -H "Authorization: Bearer $ACCESS_TOKEN"
   ```

   A 200 lists your active plans with `remainingCreditUsd`. If you hold no Credits, register a credential and buy Credits as [the buyer skill](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/SKILL.md) describes. You buy them at `POST https://agents.blitz-api.ai/zcj/eei6sy0dfmut/plans/{planId}/purchase`, with the Credits plan id from `https://agents.blitz-api.ai/zcj/eei6sy0dfmut/manifest.json`. The purchase answers with a 402, which is the price quote. You pay it by card and then retry.

2. Turn the domain into its LinkedIn company page:

   ```bash
   curl -s https://agents.blitz-api.ai/zcj/eei6sy0dfmut/v2/enrichment/domain-to-linkedin \
     -H "Authorization: Bearer $ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"domain": "stripe.com"}'
   ```

   For `stripe.com` the response names Stripe and lists other candidate companies under `other`, each with a name and a LinkedIn page:

   ```json
   {"found": true, "company_name": "Stripe", "company_linkedin_url": "<company_linkedin_url>", "other": [{"company_name": "Front Steps", "company_linkedin_url": "<company_linkedin_url>"}, "… 9 more"]}
   ```

   This lookup drew $0.001 from credit. Send `company_linkedin_url` to the next steps.

3. Read the full profile from the LinkedIn page:

   ```bash
   curl -s https://agents.blitz-api.ai/zcj/eei6sy0dfmut/v2/enrichment/company \
     -H "Authorization: Bearer $ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"company_linkedin_url": "https://www.linkedin.com/company/stripe"}'
   ```

   The profile also carries `linkedin_url`, `about`, `specialties` and `website`. An abridged example follows:

   ```json
   {"found": true, "company": {"name": "Stripe", "linkedin_id": 2135371, "industry": "Technology; Information and Internet", "type": "Privately Held", "size": "5001-10000", "employees_on_linkedin": 16694, "followers": 1779701, "founded_year": 2010, "hq": {"city": "South San Francisco", "state": "California", "country_code": "US", "country_name": "United States", "region": "NORAM", "continent": "North America"}, "domain": "stripe.com", "mx": [{"host": "aspmx.l.google.com", "priority": 10}, "… 4 more"]}}
   ```

   This profile drew $0.001 from credit.

4. Break headcount down by department:

   ```bash
   curl -s https://agents.blitz-api.ai/zcj/eei6sy0dfmut/v2/enrichment/company-distribution-by-department \
     -H "Authorization: Bearer $ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"company_linkedin_url": "https://www.linkedin.com/company/stripe"}'
   ```

   For Stripe the breakdown listed 21 departments and drew $0.001 from credit:

   ```json
   {"found": true, "company_linkedin_url": "<company_linkedin_url>", "total_employees": 12273, "distribution": [{"department": "Information Technology", "count": 6572, "percentage_ratio": 53.55}, "… 20 more"]}
   ```

   Employees with no classified department are counted under `Other`. Each billed response carries a `zc-billing` header with `chargedUsd` and `remainingCreditUsd`.

## Choose the lookup

| You hold | You need | Endpoint | Body | Price |
| --- | --- | --- | --- | --- |
| A domain | The LinkedIn company page | `/v2/enrichment/domain-to-linkedin` | `{"domain": "..."}` | $0.001 |
| A LinkedIn company page | The email domain, as `email_domain` | `/v2/enrichment/linkedin-to-domain` | `{"company_linkedin_url": "..."}` | $0.001 |
| A LinkedIn company page | The full profile | `/v2/enrichment/company` | `{"company_linkedin_url": "..."}` | $0.001 |
| A LinkedIn company page | Headcount by department | `/v2/enrichment/company-distribution-by-department` | `company_linkedin_url`, optional `is_recent_hire` | $0.001 |
| A LinkedIn company page | Headcount by country | `/v2/enrichment/company-distribution-by-country` | `company_linkedin_url`, optional `is_recent_hire` | $0.001 |

The country breakdown groups employees by ISO 3166-1 alpha-2 code. It counts people, not jobs: someone holding several roles at the company appears once.

To count recent hires only, set `"is_recent_hire": true`. The breakdown then includes only employees who began their current role there within the past 90 days. Roles without a start date are left out.

## What is charged, and what the API does not do

- Each request handles one company. A list of companies takes one request per company.
- `/v2/enrichment/company` takes only `company_linkedin_url`. To profile a company from its domain, resolve the domain first.
- A breakdown for an unknown company, or for one with no current employees, returns `"found": false` and draws nothing.
- A request with an unknown field or an invalid value does not run and draws nothing.
- Usage is deducted from your Credits balance, and unused credit stays on the balance. A purchase charges nothing until you pay its 402.

## Errors

| Response | Meaning | Action |
| --- | --- | --- |
| `401 bearer_required` | No agent credential on the call | Register at [auth.md](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/auth.md), then retry with the bearer |
| `403 plan_required` | The credential holds no Credits | Buy Credits with your bearer, then retry |
| `usage_exhausted` | The Credits balance is used up | Top up with `POST https://agents.blitz-api.ai/zcj/eei6sy0dfmut/extend` and `{"amountUsd": "..."}` |
| `422` | Unknown field or invalid value; `errors` names each problem | Fix the field `errors[].field` points to and resend |
| `429` | Rate limit exceeded | Wait, then retry |

## Frequently asked questions

### Can BlitzAPI return a company profile straight from a domain?

Not in one call. The profile endpoint takes a LinkedIn company URL, so a domain is two lookups: domain-to-linkedin, then company. The chain of domain to page to profile to department breakdown costs $0.003 when every lookup finds the company.

### Does a company lookup that finds nothing cost anything?

No. Company Enrichment bills a request only when the lookup finds something. A headcount breakdown that returns `"found": false` draws nothing.

### Do I need a BlitzAPI account or API key for the company enrichment API?

No. You register a free agent credential with the storefront, buy Credits by card, and call each endpoint with `Authorization: Bearer <token>`.

### Can I count only a company's recent hires by department or country?

Yes. Add `"is_recent_hire": true` to either distribution request. The counts then cover only employees whose current role there began within the past 90 days.

### Can I pay for BlitzAPI from a crypto wallet?

No. BlitzAPI takes card payments only, for Credits, through a hosted checkout or a shared payment token. The minimum purchase is $0.50 for the plan and $0.60 by card.

## Keep reading

- [The buyer skill](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/SKILL.md): register a credential and buy Credits
- [Company Enrichment API reference](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/services/company-enrichment/openapi.json): every field and response
- [How to pay](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/payment.md): Credits, card checkout and top-ups
- [Error reference](https://agents.blitz-api.ai/zcj/eei6sy0dfmut/errors.md): every error code and what to do

---

Updated 2026-10-22. All BlitzAPI guides: https://agents.blitz-api.ai/guides.md. Storefront: https://agents.blitz-api.ai/zcj/eei6sy0dfmut/llms.txt.
