B2B data is structured information about companies and the people who work at them. It covers who a person is, where they work, how to reach them, and what their employer looks like.
Most guides stop at a definition. This one defines the term, lists the four types, and then runs a real count so you see the shape of the thing.
TL;DR
- B2B data is company and contact records you can filter, count and export. It matters because sales, marketing, recruiting and AI agents all start from a list.
- Four types do most of the work: firmographic, contact, technographic and career history.
- The walkthrough takes about 10 minutes and spends 1 LeadOcean record. Counts and filter lookups are free.
Prerequisites
- A LeadOcean account on the free plan: 1,000 records for life, no card, 5 requests a second.
- An API key in your shell:
export LEADOCEAN_API_KEY=... curland optionallyjq.
Step 1: Read the definition as a schema
B2B data is a set of fields attached to two entities: a company and a person at that company. The fields fall into types, and each type answers a different question.
| Type | Question it answers | Example fields |
|---|---|---|
| Firmographic | What kind of company is this? | industry, headcount band, HQ country, revenue |
| Contact | How do I reach this person? | work email, email status, phone |
| Technographic | What does the company run on? | detected technologies, tech category |
| Career history | Who is this person, professionally? | past roles, education, certifications |
Intent signals, such as which topics an account is researching, are a fifth type. This guide leaves them out.
Step 2: List the filters behind each type
A data type is only useful if you can filter on it. LeadOcean has 50 people filters and 34 company filters, and listing them costs nothing.
curl -s "https://api.leadocean.io/v1/filters" \
-H "x-api-key: $LEADOCEAN_API_KEY"Enum values are exact strings. Look them up before you filter, because a wrong spelling returns an empty list.
curl -s "https://api.leadocean.io/v1/enums" \
-H "x-api-key: $LEADOCEAN_API_KEY"Job levels are C-Team, VP, Director, Manager, Staff and Other. Job functions look like Sales & Business Development.
Step 3: Size a list before you pull it
The importance of B2B data shows up in one number: how many people match a definition of your buyer. Send count=true as a query parameter with limit 1. The call is free and returns no rows.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobLevel": ["VP"],
"jobFunction": ["Sales & Business Development"],
"country": ["US"],
"limit": 1
}'meta.total is capped at 100,000 on this route. For larger counts, use the MCP tool leadocean_count_leads, which is also free.
Step 4: Pull one record and read the types
Search returns rows. Each row carries meta.source_ids.person_id. Enrich that one person to see contact, current role and career history together.
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"person_id": "1234567890", "reveal_email": true}'This costs 1 record. A person we hold nothing for returns 404 and costs nothing. Send exactly one of linkedin_url, email, phone or person_id.
Step 5: Match each type to a business use
This is the importance part, kept short.
- Sales: firmographic plus contact data builds an outbound list. Read
email_statusbefore sending, because bounces are not refunded. - Marketing: technographic plus firmographic data segments accounts by the tools they run.
- Recruiting: career history finds people with a specific past role or certification.
- AI agents: an agent with the hosted MCP server at
https://api.leadocean.io/mcpcan count, search and enrich inside a chat. There are 13 tools, and 7 of them are free.
Quality decides whether any of this works. A list of stale emails is worse than no list. The B2B data quality guide covers how to check it.
Step 6: Judge any B2B data source with five checks
The definition is easy. Picking a source is harder, and most pages on this topic skip it. Run these five checks on any provider, including us.
- Can you count before you pay? A free count tells you whether the market exists in the data. If a vendor makes you buy a sample to learn the size, that is a signal.
- Is the email status exposed? One address field is not enough. You need a status such as verified, catch_all or risky, so you can decide what to send. LeadOcean has 13 email statuses.
- How fresh is it? Ask for a refresh cadence and a per-record date. Ours is monthly, with a
fetched_atdate on each record. Real-time vendors, such as the one in the Crustdata overview, sell freshness as the main feature. Decide whether your use case needs it. - Can you reach it from code? An API and an MCP server let a script or an agent use the data without an export step. A CSV is fine for a one-off list. It is a poor fit for a pipeline.
- What does a missing record cost? On LeadOcean a 404 and an empty page cost nothing. Check this on every plan you compare.
None of these checks needs a sales call. Each one is a request you can run in a minute.
What you get
Live result from the free MCP tool leadocean_count_leads, run on 21 October 2026 with jobLevel VP, jobFunction Sales & Business Development and country US:
{
"total": 129494,
"totalIsExact": true,
"totalAll": 350517,
"distinctCompanies": 58121,
"defaults": "Counted only addresses worth sending to (emailStatus: verified or catch_all_valid or catch_all)"
}Read it carefully. 350,517 people match the definition. 129,494 of them have an address worth sending to (email status verified, catch_all_valid or catch_all). That gap is why contact data and its status field matter.
Response shape from the API reference for POST /v1/people/enrich, with placeholder values:
{
"success": true,
"data": {
"profile_data": {
"profile_full_name": "Jane Doe",
"profile_headline": "VP Sales at Acme"
},
"contact_data": {
"has_email": true,
"has_phone": true,
"email_status": "verified",
"contact_emails": [
{ "email": "jane.doe@acme.com", "type": "work", "status": "verified" }
],
"contact_phones": [{ "phone": "+1 415 555 0133", "type": "mobile" }],
"contact_current_experiences": [
{ "job_title": "VP Sales", "company_name": "Acme", "company_domain": "acme.com" }
]
},
"resume_data": { "experiences": [], "educations": [], "certifications": [] },
"meta": { "fetched_at": "2026-10-01", "schema": "leadocean.person.v1" }
}
}The dataset holds 693M people and 67M companies, refreshed monthly. Each record carries its own fetched_at date. Past employers in resume_data have no company_id yet.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key | Check $LEADOCEAN_API_KEY is exported and the header name is exact |
| 429 | Above the plan's rate limit (5 a second on Free, 200 on Agency) | Honor Retry-After, or move to a plan with a higher limit |
| 402 | Records are spent (Free is 1,000 for life) | Check GET /v1/usage, then pick a paid plan on pricing |
Empty data | A filter value is spelled wrong, such as vp for job level | Look up exact strings with GET /v1/enums |
| 404 on enrich | We hold nothing for that identifier | Nothing is charged. Try another identifier or search first |
meta.depthCapped is true | One search pages to 10,000 rows | Narrow the filters instead of walking the index |
FAQ
What is B2B data in one sentence?
B2B data is structured information about companies and the people who work at them, used to find, segment and reach business buyers.
What are the main types of B2B data?
Firmographic, contact, technographic and career history. Intent data is a fifth type that some vendors add. See what B2B data types are for a query per type.
How is B2B data different from firmographic data?
Firmographic data is one type of B2B data. It describes the company. B2B data also includes contact details, technology and career history. The firmographic data guide goes deeper.
How much does B2B data cost?
Counts and filter lookups are free. The free plan gives 1,000 records for life. Paid plans are Solo at $97 a month, Agency at $497 a month and Platform at $1,997 a month, with a fair-use pace instead of credits. See pricing.
Where does this fit in the wider data section?
Start with the B2B data hub, then read about data quality before you buy a list.
Count your own buyers before you pay for a list
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →