OSHA enforcement data · one API

Any business name in.
Its safety record out.

One call resolves a messy company name to its OSHA history — inspections, violations, penalties, and worker fatalities. Built for insure-tech teams pricing workers'-comp and commercial risk.

4M+ establishments Federal + state-plan Updated daily
GET /v1/osha/establishments/search
Live OSHA data · no key needed
Press Run lookup to query the live dataset — top 3 matches.
Why ComplyLedge

Underwriting-grade OSHA risk data — resolved, corrected, ready to query.

Three problems sit between the raw federal records and a risk number you can underwrite on. We solve all three, so you integrate once and price with confidence.

01 · RESOLVE

One business, one stable id

Fuzzy-match a name (and optional address) to a durable establishment_id, then pull the full profile. Store the id once and re-query the same site at every renewal — no re-matching, no drift.

02 · CORRECT

Corrected, not just copied

The raw records mislead in three ways we fix before you ever see the record:

  • Vacated citations excluded — you never price on penalties that were withdrawn on appeal.
  • Fatalities counted per injury — the accurate grain, ~18% more complete than inspection-level counts.
  • Federal and state-plan — the ~22 states OSHA doesn't run directly, included, not dropped.
03 · SHIP

Key in minutes, not quarters

One clean endpoint, a confidence score on every match, daily freshness, and transparent usage-based pricing. Sign up and get your first response in minutes — self-serve, no procurement cycle.

The call

Resolve, then retrieve.

Two endpoints. The first finds the establishment and scores the match; the second returns its full compliance profile.

1 — Resolve a name to candidates

# GET /v1/osha/establishments/search
curl -sG $API/v1/osha/establishments/search \
  -H "Authorization: Bearer $KEY" \
  --data-urlencode "name=BP Products North America" \
  --data-urlencode "state=TX"

Response — ranked candidates, each scored

{
  "query": { "name": "bp products north america", "state": "TX" },
  "results": [
    {
      "establishment_id": "est_0a70f12d…",        // carry this into call 2
      "establishment_name": "BP PRODUCTS NORTH AMERICA, INC.",
      "address": { "city": "TEXAS CITY", "state": "TX" },
      "inspection_count": 36,
      "violation_count": 772,
      "match_confidence": 1.0,
      "match_type": "exact_name"     // … full rollup on every result
    },
    {
      "establishment_id": "est_5b31c9a4…",
      "establishment_name": "BP PIPELINES (NORTH AMERICA) INC.",
      "address": { "city": "HOUSTON", "state": "TX" },
      "match_confidence": 0.61,       // looser name → threshold it out
      "match_type": "fuzzy"
    }
  ],
  "has_more": true,
  "coverage": "federal_and_state_plan",
  "data_as_of": "2026-06-30"
}

2 — Retrieve the full profile by id

curl -s $API/v1/osha/establishments/est_0a70f12d… \
  -H "Authorization: Bearer $KEY"

Response — the record you price on

{
  "establishment_name": "BP PRODUCTS NORTH AMERICA, INC.",
  "establishment_id": "est_0a70f12d…",        // stable — store it, re-query at renewal
  "address": { "city": "TEXAS CITY", "state": "TX" },
  "naics_code": "324110",
  "jurisdiction": "federal",
  "inspection_count": 36,
  "violation_count": 772,
  "willful_violation_count": 463,
  "total_penalties_usd": 36169000.0,
  "fatality_count": 3,
  "match_confidence": 1.0,
  "match_type": "exact_name"
}
Compliance

Business risk data — clean for commercial underwriting.

ComplyLedge serves public U.S. Department of Labor / OSHA records about business establishments — so it's not a "consumer report" under the FCRA, and it's clean to use for commercial and workers'-comp underwriting. It isn't intended for decisions about individuals (personal lines, employment, or credit). Details in the Terms.

Who's behind this

Built for decisions that carry real weight.

ComplyLedge is built by a technical founder with nine years of infrastructure experience at a FAANG company and a focus on developer-first APIs. That background is what surfaced the gap: data that feeds decisions like workers'-comp and commercial insurance pricing deserves better than a raw government export or a six-figure, sales-led contract with an incumbent risk vendor. ComplyLedge closes that gap — the same rigor, without the DIY build or the enterprise price tag. For product questions, edge cases, or a dataset you need next, you can reach the founder directly. Contact the founder →

Pricing

Simple, usage-based.

Try it free above with no signup, or start a 7-day free trial of Starter — card required, cancel anytime. Your key appears on the next page and is emailed to you. (Launch pricing.)

Starter 7-DAY TRIAL
$29/mo
  • Monthly API requests: 2,500
  • Rate limit: 25 / min
  • Full establishment profiles
  • Cancel anytime
Pro
$99/mo
  • Monthly API requests: 25,000
  • Rate limit: 60 / min
  • Email support
Custom
Let's talk
  • High-volume pricing
  • Multiple datasets (roadmap)
  • Async email support
FAQ

Questions, answered.

Where does the data come from?

Directly from the U.S. Department of Labor's public OSHA enforcement datasets — the same inspection, violation, and accident records OSHA publishes, covering both federal OSHA and state-plan states.

How fresh is the data?

We ingest DOL's enforcement files daily, so the API reflects OSHA's latest published data — typically within a day of DOL publishing. Every response includes a data_as_of date, so you always know which snapshot you're working with. If DOL delays or skips a publish, we serve the last good snapshot (and the date reflects it) — we never present stale data as current.

How accurate is the company-name matching?

Lookups are by business name (optionally narrowed by state), matched against OSHA's establishment records with a fuzzy matcher that returns a match_confidence score on every result — so you can set your own threshold. Matching is strongest with the establishment's registered/legal name; common trade-name variants are handled but not guaranteed. For high-stakes decisions, review the returned records and their confidence rather than treating a single match as definitive.

What happens if I exceed my plan's quota?

You'll get a 429 response with a clear message, and requests resume at your next monthly cycle. Per-minute rate limits and monthly quotas are listed on each plan. Need more headroom? Upgrade in the billing portal (changes apply immediately) or contact us for volume pricing.

Can I use this for employment, tenant, or credit decisions?

No. ComplyLedge is a business-data API built from public OSHA records — it is not a consumer reporting agency, and the data is not a "consumer report" under the FCRA. It's intended for commercial uses like vendor risk, underwriting, and supplier screening. See our Terms for the full boundary.

How do I get support?

Email hello@complyledge.com and we'll get back to you. The full API reference with live examples is at /docs.

Custom / Enterprise

Tell us what you're building.

High volume, multiple datasets, or specific needs? Send a note — we'll reply by email.

Data sourced from public U.S. Department of Labor / OSHA records. Provided "as is", accuracy not guaranteed. Not a consumer report; not for FCRA-permissible purposes (employment, credit, individual insurance). Not affiliated with or endorsed by any government agency.