"How many e-commerce companies run Shopify in Germany?" should be a query, not a six-week consulting engagement. We classify 102 million domains into industry verticals and keep the classifications current — so strategy teams, analysts and PE/VC researchers can size markets, map competitors and detect category shifts from observed data instead of extrapolated panels.
Most market-sizing work still starts from analyst reports written a year ago, company registries that lag reality by quarters, and survey panels of a few hundred firms extrapolated to whole economies. The result is a number nobody can interrogate: you cannot list the companies behind it, segment it by technology or geography, or re-run it next quarter to see movement.
Company registers record what a firm filed as, not what it does today. Fast-moving categories — AI tooling, quick commerce — are invisible until the codes catch up.
Survey-based sizing over-represents large, reachable firms. The long tail of small companies — often the actual target market — never answers the survey.
"~48,000 companies" is not actionable if you cannot enumerate, sample and verify them. Diligence teams need the underlying domains, not just the headline count.
By the time a category shift appears in published research, it is priced in. Detecting it requires re-observing the same population continuously, which panels cannot do.
The 102M-domain database is a census of the active web, classified into the IAB taxonomy and expanded vertical categories, with company-level attributes joined from the company database. Prebuilt slices make the common research cuts one download instead of one project.
The industry counter answers "how many companies in vertical X" interactively; the verticals slice delivers the underlying domain list with categories and confidence scores, filterable by country and language for geographic TAM cuts.
Intersect verticals with the technology, traffic tier, funding and hiring slices — "funded logistics SaaS with meaningful traffic that is hiring" becomes a filter expression, not a hypothesis.
The SaaS, e-commerce and business model slices separate subscription software from storefronts from marketplaces — the distinction most registry codes flatten and most TAM models need.
Because sites are re-classified from live crawls (see real-time categorization), diffing database releases shows entries, exits and pivots per category — a quarterly market-motion report generated from observation.
Given any universe of domains — a conference exhibitor list, a portfolio, an export from the verticals slice — batch categorization turns it into a market map in one loop.
import requests, collections
API = "https://www.websitecategorizationapi.com/api/iab/iab_web_content_filtering.php"
market_map = collections.Counter()
for domain in open("universe.txt"):
r = requests.post(API, data={
"query": domain.strip(),
"api_key": API_KEY,
"data_type": "url",
}, timeout=30).json()
if r["status"] == 200 and r["classification"]:
top = r["classification"][0]
if top["confidence"] >= 0.75:
market_map[top["category"]] += 1
for category, n in market_map.most_common(15):
print(f"{n:6d} {category}")
{
"classification": [
{"category": "Business and Industrial > Logistics",
"confidence": 0.93},
{"category": "Technology & Computing > Enterprise Software",
"confidence": 0.81}
],
"language": "de",
"status": 200
}
Two details matter for research use: the
confidence score lets you set an evidence bar and report it in your methodology, and
the language field gives you country/language distributions for free — the same
loop that sizes the market also splits it geographically. For universes beyond API scale, run the
same aggregation as SQL against the offline database.
Typical research questions and the slice combination that answers them (figures illustrative).
| Research question | Data used | Deliverable |
|---|---|---|
| How big is the DTC cosmetics market in France? | E-commerce slice × vertical × language | Domain count + full list |
| Which fintech niches are heating up? | Funding + hiring × verticals | Growth-signal ranking by sub-category |
| What share of mid-size retailers run headless commerce? | Technology × traffic tier | Penetration table by tier |
| Is the category consolidating or fragmenting? | Quarter-over-quarter database diffs | Entry/exit trend series |
| Who are the players around a target company? | Competitor finder + company database | Competitive landscape map |
Adjacency scans and market-entry sizing: enumerate every company in a candidate category and segment by size and geography before committing to a business case.
Diligence teams verify a target's claimed market with an enumerable population, then track the same population post-investment for entries and exits.
Replace "based on interviews with 40 vendors" with census-backed counts — and publish the methodology, because the classification confidence threshold is explicit.
The same slices double as targeting lists: the market map's cells are literally accounts, feeding the ICP prospecting database workflow.
Classifications come from ongoing crawls and the database ships on a refresh schedule, so quarter-over-quarter diffs are meaningful. Anything you need fresher than the last release — a shortlist for diligence, a disputed segment — can be re-classified on demand through the real-time API.
Yes. Research teams rarely think in raw IAB tiers; the taxonomy mapper translates between IAB, the expanded categories and custom category trees, so the deliverable lands in the client's language, not ours.
Both. The industry counter gives instant counts; database exports include every domain with its categories, confidence scores and joined attributes, so any number in your report can be audited down to the individual companies behind it.
Tell us a vertical and a geography and we will send back a sample extract — counts, category distribution and a domain list — so you can validate coverage before building your research on it.
Try the Live Demo Request a Sample Read the API Docs