// fig. 01 — company searchPOST/search/companies

Company Data API
for 75M+ companies.

Search companies with 30+ filter columns and 8 operators, industry, headcount, growth, funding stage, last round, location. Live or cached, from 0.75 credit per result.

// 01 · response
{
  "total": 4218,
  "offset": 0,
  "count": 1,
  "results": [
    {
      "id": "org_8KdLp2nZqHvR3jY9wXmTbCa",
      "name": "Cresta",
      "domain": "cresta.com",
      "industry": "software development",
      "employee_count": 184,
      "country_iso_code": "US",
      "funding_stage_normalized": "series_b"
    }
  ],
  "credits_used": 0.75
}
Abbreviated on purpose · full schema in the API docsdocs →
// accepted inputs
SaaS companies in NYC with 50–200 employeesSeries B+ fintech in the USAI startups that raised >$10M since JanuaryHealthcare companies in Germany growing 20%+ in 6 monthsPrivately held software companies founded after 2020
↓ scale30+ columns · 8 operators
75M+// companies
30+// filter columns
1000// results / request
Overview
// fig. 02definition

What is a company data API?

A company data API lets a program query a database of companies with structured filters, industry, headcount, location, growth, funding, and get firmographic records back as JSON. Where an enrichment API answers “tell me about this one domain”, a company data or company search API answers “give me every company that matches these criteria”.

DataForB2B covers 75M+ companies through one endpoint, POST /search/companies, with 30+ filter columns, 8 operators and nested AND / OR groups.

  • Live enrichment at 1.5 credits per result, or cached data at 0.75 credit. Page with offset and count, up to 1000 results per request.
  • Results carry the encoded org_ ID that the Company Enrichment API resolves into round-by-round funding, investors and offices.
  • Same search as the search_company tool in the MCP server; monitors push funding or hiring events for the matching companies to your webhook.
// key facts
Endpoint
POST https://api.dataforb2b.ai/search/companies
Auth
api_key header
Filters
30+ columns · 8 operators · nested AND / OR groups
Paging
offset + count, up to 1000 results per request
Cost
1.5 credits / result live · 0.75 credit / result cached
Delivery
REST · MCP tool search_company · monitors → webhooks
API
// figure-03 — endpoint

One endpoint. Every shape of company.

POST /search/companies with a filter group. Combine conditions with AND / OR, page with offset and count, choose live or cached data per request.

Combine industry, employee_count and country_iso_code to express the exact ICP. Every column takes a documented subset of the 8 operators.

POST/search/companies
// 03 · request
curl -X POST https://api.dataforb2b.ai/search/companies \
  -H "api_key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "op": "and",
      "conditions": [
        { "column": "industry", "type": "in", "value": ["software development", "it services and it consulting"] },
        { "column": "employee_count", "type": "between", "value": 50, "value2": 200 },
        { "column": "country_iso_code", "type": "=", "value": "US" }
      ]
    },
    "offset": 0,
    "count": 100,
    "enrich_live": false
  }'
200200 OK · application/json
// 04 · response
{
  "total": 4218,
  "offset": 0,
  "count": 1,
  "results": [
    {
      "id": "org_8KdLp2nZqHvR3jY9wXmTbCa",
      "name": "Cresta",
      "domain": "cresta.com",
      "industry": "software development",
      "employee_count": 184,
      "country_iso_code": "US",
      "funding_stage_normalized": "series_b"
    }
  ],
  "credits_used": 0.75
}
Abbreviated on purpose · full response schema in the API docsdocs →
Capabilities
// capabilities

Find companies the way capital does.

By how fast they hire, which stage they just closed, and where they are, 30+ columns, 8 operators, nested groups.

// fig. 05─ ─ ─

Industry, category, keyword

The labelled industry, the lower-cased category and a full-text keyword over name, tagline and description, match how the company describes itself.

// filters
industrycategorykeyworddomain
// fig. 06─ ─ ─

Headcount and growth

Filter by exact count, by range bucket, or by growth velocity over 1, 6 and 12 months. recent_hires_count catches teams that are staffing up right now.

// filters
employee_countemployee_growth_6memployee_growth_12mrecent_hires_count
// fig. 07─ ─ ─

Funding stage and rounds

Normalised stage from pre-seed to post-IPO, last round amount and date, and a has_funding boolean. Chase the round, not the press release.

// filters
funding_stage_normalizedlast_funding_amount_usdlast_funding_datehas_funding
// fig. 08─ ─ ─

Location and metadata

Headquarters and office locations by country, city and region. Founded year and company type.

// filters
country_iso_codecityoffice_countryfounded_yearcompany_type
Operators
// fig. 10query reference

Eight operators, one filter group.

How conditions are written, what each operator matches, and the three request-level fields around the filter group. The complete column list lives in the API documentation.

// reference8 entries · 2 groups
Operator / fieldApplies toExampleBehaviour
operatorsthe type field of a condition
=any{ "column": "name", "type": "=", "value": "Google" }Exact match, case-insensitive. On multi-word fields it matches the full phrase in order.
>, >=, <, <=number / date{ "column": "employee_count", "type": ">=", "value": 100 }Numeric and date comparisons.
betweennumber / date{ "column": "founded_year", "type": "between", "value": 2010, "value2": 2020 }Inclusive range; value2 is the upper bound.
inarray{ "column": "country_iso_code", "type": "in", "value": ["US", "GB"] }Any value in a JSON array (OR). A comma-separated string is treated as one literal, always pass an array.
liketext{ "column": "keyword", "type": "like", "value": "artificial intelligence" }All words present, in any order. The right choice for partial or keyword search.
request body
filtersobject{ op, conditions[] }Recursive group: op is and / or, conditions holds conditions or nested groups.
offset / countintdefault 0 / 25Pagination. count goes up to 1000 per request.
enrich_livebooleandefault truetrue fetches live data at 1.5 credits per result; false returns cached data at 0.75 credit.
Compare
// fig. 11how it compares

Search endpoint, dataset, or registry.

Three kinds of company data API answer three different questions. Where DataForB2B fits, and where the others are the better tool.

// criterionDataForB2B Company Data APIDataset vendors (Coresignal, People Data Labs, Crustdata)Registry APIs (OpenCorporates, Companies House)
Question it answersWhich companies match these criteria, and give me the record for each.Which companies match these criteria, from a licensed snapshot.Who are the registered legal entities, officers and filings.
Signals in the filtersHeadcount growth over 1, 6 and 12 months, recent hires, funding stage, last round amount and date.Firmographics and funding; growth signals depend on the vendor and the dataset tier.Legal status, incorporation date, filings. No growth or funding velocity.
Freshnessenrich_live: true fetches at request time; false returns cached data at half the price.Refreshed on the vendor's crawl cycle, often monthly for the full dataset.Updated as registries publish filings, authoritative but slow for growth.
BillingPer result: 0.75 credit cached, 1.5 credits live. No seat, no annual dataset licence required.Per record or per match; enterprise datasets are licensed annually.Often free or per-call government APIs; commercial wrappers charge per request.
Agent integrationMCP tool search_company, REST, and monitors that push funding and hiring events to a webhook.REST; the agent builds and wraps the query itself.REST; entity-centric, not built for ICP queries.
Best fitSales, recruiting and investment products or agents that build and re-query account lists in their own stack.Teams that need a bulk company universe offline or want to license a dataset.Compliance, KYC and legal-entity verification.
Vendor characteristics summarised from their public documentation as of September 2026; check each provider for current terms.
Coverage
// fig. 10 — coverage

Source data across 20+ points

Continuous global refresh from public sources — not a stale quarterly snapshot. Profiles, companies, and contact data verified in real time.

// dataset · global feed20+ points
// sources
20+
// refresh
live
// regions
global
Delivery
// fig. 11 — delivery

Data delivered where your stack lives.

Same dataset, three transports. Pull it via REST, plug it into your agent through MCP, or stream changes to your webhook in real time.

// fig. 11REST
// channel

API

Pull on demand.

One JSON request. 60+ columns. 8 operators. Authenticate with your api_key header, point at the endpoint, get verified data back in 142ms (p50).

POST/search/people
// notes
  • api_key header auth
  • JSON in, JSON out
// fig. 12AGENT
// channel

MCP

Native tools for agents.

Drop our MCP server into Claude, Cursor, or any agent runtime. The model picks the tool, builds the filters and reads the response — no glue code, no schemas to maintain.

TOOLsearch_people · enrich_profile
// notes
  • Claude · OpenAI · Cursor
  • tool-call native
  • no schema babysitting
// fig. 13PUSH
// channel

Webhooks

Get notified the moment it changes.

Subscribe to ICP events — new matches, role changes, funding rounds. We POST to your endpoint with the delta. Your sequence reacts before the data goes stale.

POST→ your_endpoint
// notes
  • ICP delta events
  • signed payloads
  • exponential retry
Use Cases
// fig. 14 — build surface

What can you build with our API.

One POST request, four product surfaces. Each layered on top of the same endpoint — only the question changes.

// fig. 15sourcing copilots

AI Recruiting product

Past employers, top schools, degrees, certifications and tenure in the same payload. Your agent shortlists ex-FAANG, ex-Big4 and Ivy/MIT graduates — and the data refreshes itself.

// filters
past_companyschooldegree_levelskillcertificationyears_of_experience
// outputranked shortlist → ATS
// fig. 16outbound agents

AI SDR

Wire funding triggers and ICP filters into your agent. Stream verified profiles into the sequence. Re-query when the ICP changes — the agent owns the list, not a CSV exported in March.

// filters
current_company_funding_stagecurrent_titlecurrent_company_sizeprofile_countryis_currently_employed
// outputlive prospect feed → sequence
// fig. 17deal sourcing

Investment platform

Catch stealth founders, track investor overlap, funding stage and tenure across thousands of operators. Pipe raw JSON into your scoring model — no scrapers, no stale lists, no broken refresh jobs.

// filters
current_title ~ "Stealth Founder"current_company_investorcurrent_company_funding_stagecurrent_company_sizeyears_at_current_companycurrent_company_industry
// outputscored deal flow → analyst stack
// fig. 18embedded data layer

Sales automation platform

Power people search, enrichment and ICP refresh inside your product — one endpoint, MCP-ready, GDPR-compliant. Stop maintaining brittle scrapers; ship the feature instead.

// filters
current_companycurrent_titlecurrent_company_categorylanguage_proficiencyfollower_count
// outputembedded search → your app

Building something we haven't listed? Tell us what you're wiring it into. Half the columns we ship today came from a customer asking for one.

Compliance
GDPR Logo

GDPR compliant

Full compliance with European data protection regulations. Your data privacy is our priority.

CCPA Logo

CCPA compliant

Adhering to California Consumer Privacy Act standards for maximum data protection.

Publicly available data

All data sourced from publicly available and verified sources, ensuring ethical collection.

Related
FAQ
// fig. 20builders ask

Questions from platform builders.

Anything we missed? Talk to us.

A company data API (also called a company search API) takes filters and returns every company that matches, it builds lists. A company enrichment API takes one identifier and returns the full record for that one company. On DataForB2B they chain: /search/companies returns the org_ IDs, /enrich/company resolves an ID into round-by-round funding, investors and every office.

75M+ companies and 30+ filterable columns across seven groups: basic info (name, domain, industry, keyword), size, headquarters, offices, growth (1, 6 and 12-month headcount growth, recent hires), metadata (founded year, company type, verified page) and funding (normalised stage, last round amount and date, has_funding). Each column supports a documented subset of the 8 operators; the full column list with operators is in the API documentation.

Per result returned: 1.5 credits with enrich_live: true, 0.75 credit with enrich_live: false. A cached search returning 100 companies costs 75 credits. Use count to cap the results you pay for, and the filters to keep total small.

Yes. Add a condition { "column": "domain", "type": "=", "value": "ramp.com" } and count: 1. For a list, use the in operator with an array of domains and count up to 1000, it is the fastest way to hydrate a CRM export with industry, size, growth and funding fields.

Filter last_funding_date with >= and a date string, optionally combined with last_funding_amount_usd >= and funding_stage_normalized in [...]. The has_funding boolean excludes bootstrapped companies. Pair the search with a funding monitor if you want new rounds pushed to a webhook instead of re-running the query.

Yes. The DataForB2B MCP server exposes search_company with the same columns and operators. Claude, Cursor or any MCP-compatible runtime turns a natural-language ICP into the filter group, runs the search and reads the JSON, no schema to maintain on your side.

Get Started
// fig. ∞ — ship

Build with us. Now.

Get an API key in 60 seconds. Plug your AI agent into 800M+ verified profiles and 75M+ companies — today.

↓ nextREST · MCP · Webhooks