Skip to main content
Back to Blog

A Free Company Dataset: 28M+ Companies to Download

October 22, 2026 · 5 min read

Most account work starts with the same few questions about a company. What is its website? Which industry is it in? How big is it? A list of company names with those answers attached is the base layer for sizing a market, cleaning up a CRM, routing inbound leads, or deciding which accounts deserve a closer look. It is also the layer people most often end up assembling by hand.

So we're giving it away. Company Firmographics (Free) covers 28M+ companies worldwide, as a file you download and keep. It's free for internal and commercial use, with attribution.

What's in the file

Every record carries the same nine fields:

Field What it holds
legion_id Data Legion's company ID, the same one the API and paid company data use
name Company name, normalized
domain Primary website domain
linkedin_url LinkedIn company page
industry Industry, from a list of 435
type Private, public, nonprofit, educational or government agency
size Employee size range
founded Founding year, where known
build_version The Data Legion build the record comes from

The current build has 28,127,036 companies. Every one has a domain, a LinkedIn URL, an industry and a size range, and all but about 1,600 have a company type. The founding year is there for about 12.3 million of them; we leave it empty rather than guess.

The size column says a lot about where the coverage goes. About 20.1 million of the companies have 1 to 10 employees and another 5.3 million have 11 to 50. That long tail of small businesses is where hand-built lists usually run thin. The file covers the giants too: about 56,000 companies have more than 10,000 employees.

Getting it

You can get the same data three ways:

  • As files. On the dataset page, enter a work email, pick a use case, and accept the license. We email a link that works for 48 hours. If you have a Data Legion account, the Free Datasets page in the dashboard downloads it directly, with no form.
  • In Snowflake. Company Firmographics (Free) is a listing you get without a request, so the table shows up in your account as a database you can query and join.
  • On Hugging Face. datalegionai/company-firmographics holds the same rows as Parquet. Share your Hugging Face username and email, give your company and use case, accept the license, and the files open right away, ready for datasets or DuckDB.

The files come as gzipped CSV (about 1.5 GB) or gzipped JSONL (about 1.7 GB). In the CSV, any value that starts with =, +, - or @ carries a leading apostrophe, so a spreadsheet shows it as text instead of running it as a formula. The docs page has a query for Snowflake and one for Hugging Face.

Matching your own list against it

The domain is the most reliable join key in the file. Here's a pass that reads the CSV once and fills in industry and size for a list of account domains. A domain can belong to more than one record, since a brand's locations can share its website, so the code keeps every record a domain matches and lets you choose:

import csv
import gzip

accounts = ["shopify.com", "expediagroup.com"]
wanted = {domain.lower() for domain in accounts}

found = {}
with gzip.open("data-legion-company-free.csv.gz", "rt", newline="") as f:
    for row in csv.DictReader(f):
        if row["domain"] in wanted:
            found.setdefault(row["domain"], []).append(row)

for domain in accounts:
    rows = found.get(domain.lower(), [])
    if not rows:
        print(domain, "not in the free set")
    for row in rows:
        print(domain, row["name"], row["industry"], row["size"], row["legion_id"])
import { createReadStream } from 'node:fs';
import { createGunzip } from 'node:zlib';
import { parse } from 'csv-parse';

const accounts = ['shopify.com', 'expediagroup.com'];
const wanted = new Set(accounts.map((d) => d.toLowerCase()));

const found = new Map();
const rows = createReadStream('data-legion-company-free.csv.gz')
  .pipe(createGunzip())
  .pipe(parse({ columns: true }));

for await (const row of rows) {
  if (wanted.has(row.domain)) {
    found.set(row.domain, [...(found.get(row.domain) ?? []), row]);
  }
}

for (const domain of accounts) {
  const matches = found.get(domain.toLowerCase()) ?? [];
  if (matches.length === 0) {
    console.log(domain, 'not in the free set');
  }
  for (const row of matches) {
    console.log(domain, row.name, row.industry, row.size, row.legion_id);
  }
}

Keep the legion_id you get back. It's the same ID across every Data Legion product, so a company you matched here joins straight to the full company data later without matching it again.

What it leaves out

This is a subset, and a deliberate one. The free file has 28M+ of the 71M+ companies we profile, and nine of the 75+ data points a full company profile carries. It has no workforce analytics (headcount, hiring, attrition, tenure), no growth or turnover rates, no monthly headcount history, and no tickers or financial data. It also has no people: no employees and no contacts.

When you need those, the full company data is the next step:

  • Company Enrichment returns the full profile for a domain, name, LinkedIn URL or ticker, one record or a bulk batch at a time.
  • Company Search queries every company we profile with SQL filters, on industry, size, headcount and more.
  • A data license delivers the full company data, and person data alongside it, to your own storage every month. Talk to us about one.

The license, in short

You can use the data in your own work and your own products, commercial ones included. Where you display or publish it, or anything built from it, credit Data Legion, for example "Company data from Data Legion (datalegion.ai)". You can't resell or redistribute it as a dataset, offer it through a data marketplace, or use it to build a product meant to replace ours. The full terms have the details.

We refresh the dataset every quarter, and each download is the latest build. The dataset page shows how many companies it holds and the size of each file.

See the data for yourself

Start a free trial and enrich your own records in minutes, or book a demo to talk through enterprise needs.