DEV Community

Devil Scrapes
Devil Scrapes

Posted on Originally published at devilscrapes.com

OpenCorporates Alternative: US Business Registry Data

Originally published on the Devil Scrapes blog.

If you're looking for an OpenCorporates alternative because its API returns a 401 without a paid key, the fix is simpler than it looks: the underlying US company data OpenCorporates re-publishes is, for a meaningful slice of states, already free and keyless at the source. New York, Colorado, Connecticut, and Oregon each publish their own Secretary-of-State business registry as an open Socrata dataset. We built three Actors on top of those open feeds — one for point-in-time company verification, one for a daily new-filings feed, and one for professional license rosters — so KYB analysts, SDRs, and sales-ops teams get structured rows without licensing a global registry they may not need.

Who actually needs this, and who doesn't

Be honest about scope before you build a pipeline on it: if you need OpenCorporates' 140-plus-jurisdiction global coverage — UK, EU, Asia-Pacific entities — nothing here replaces that. These three Actors cover US state-level registries only, currently New York, Colorado, Connecticut, and Oregon for company data, plus Delaware and Colorado for professional licenses. If your buyers, vendors, or prospect list are US companies concentrated in (or reachable through) those states, keep reading. If you need Cayman Islands holding companies, this isn't that.

The verification Actor

OpenCorporates Alternative Scraper takes a batch of company names and checks each one against all four state registries, returning one row per matched entity per jurisdiction:

{
  "query": "Acme Robotics LLC",
  "entity_id": "20251664337",
  "entity_name": "ACME ROBOTICS LLC",
  "jurisdiction": "CO",
  "entity_type": "DLLC",
  "status": "Good Standing",
  "status_normalized": "active",
  "formation_date": "2025-06-15",
  "principal_address": "9159 Anasazi Indian Trl, Highlands Ranch, CO 80129",
  "registered_agent_name": "ACME ROBOTICS LLC",
  "officers": [],
  "source_record_url": "https://data.colorado.gov/resource/4ykn-tg5h.json?entityid=20251664337",
  "scraped_at": "2026-07-18T12:00:00+00:00"
}
Enter fullscreen mode Exit fullscreen mode

status_normalized is the field most buyers filter on first, because every state publishes its own raw status vocabulary — Colorado says "Good Standing," other states say something else — and we collapse that into a consistent active / inactive / unknown enum so a downstream filter doesn't need per-state logic. Connecticut is the one jurisdiction that also publishes a separate officers dataset, so officers populates there and stays [] elsewhere — documented behavior, not a gap in the code.

The new-filings feed

New Business Filings — US State Registry Leads Feed answers a different question: not "does this company exist," but "what companies newly formed in a date range." Feed it a [dateFrom, dateTo] window and a jurisdiction, and it returns every entity that registered in that window — company name, entity type, formation_date, registered agent, and address:

{
  "entity_id": "7969358",
  "entity_name": "URGB LLC",
  "jurisdiction": "NY",
  "entity_type": "DOMESTIC LIMITED LIABILITY COMPANY",
  "formation_date": "2026-07-17",
  "registered_agent_address": "32 Jagger Court, Melville, NY 11747",
  "scraped_at": "2026-07-19T12:00:00+00:00"
}
Enter fullscreen mode Exit fullscreen mode

This is the shape sales and lead-gen teams actually want for outbound: a recurring, scheduled pull that surfaces brand-new LLCs and corporations the day (or week) they form, before they show up in any paid data broker's monthly refresh.

The professional license Actor

Professional License Lookup Scraper covers a related but distinct need — verifying an individual or business holds an active professional license, not that a company is registered. It exports rosters from Delaware and Colorado's open-data licensing portals across nursing, real estate, contracting, medical, and accountancy categories, with a disciplinary_flag surfaced where the state publishes disciplinary action:

{
  "jurisdiction": "DE",
  "licensee_name": "SHAHAN,BRIAN",
  "license_number": "RS-0037427",
  "profession": "Real Estate",
  "status_normalized": "active",
  "expiration_date": "2028-04-30",
  "disciplinary_flag": false
}
Enter fullscreen mode Exit fullscreen mode

Who buys this and why

  • KYB onboarding — batch-verify a vendor or customer list before signing a contract; flag anything inactive or unmatched before finance cuts a PO.
  • Sales-ops list hygiene — confirm the companies on an SDR's prospect list are real, active, on-file entities before a team spends a quarter's outreach budget on dead accounts.
  • Lead generation from new formations — a recurring feed of brand-new LLCs is a standard top-of-funnel source for business insurance, accounting, and B2B SaaS sales teams who want to reach a company in its first weeks of existence.
  • Due diligence — pull incorporation date, entity type, and registered-agent data as a first-pass screen before a deeper manual review.
  • Compliance and licensing checks — confirm a contractor, real-estate agent, or medical professional's license is active (and clean) before onboarding them as a vendor or partner.

Why this is more than "just hit the state API yourself"

Each state runs its own Socrata dataset with its own field names, its own status vocabulary, and its own rate-limit behavior under a batch of a few hundred names in one run. New York's snapshot updates monthly, not in real time; Colorado, Connecticut, and Oregon each use different resource IDs and query parameters. None of that is hidden — these are public open-data portals — but normalizing four raw schemas into one row shape, fuzzy-matching a company name against each state's index, and handling one state's timeout without losing the other three states' results is the actual engineering work. We also deliberately never surface home addresses that Connecticut's principals dataset happens to publish alongside business addresses — a KYB dataset leaking an officer's home address because a state technically made it public is a decision we didn't want to leave to accident.

Pricing — exact numbers

All three Actors use the same Pay-Per-Event rate: $0.05 (verification and license Actors) or $0.20 (new-filings feed) actor-start fee, plus $5.00 per 1,000 matched rows. A batch of 1,000 matched company or license rows costs $5.05–$5.20 depending on the Actor; a search that returns zero matches costs only the start fee. Apify gives every new account $5 of free trial credit, which covers roughly the first 1,000 matched rows before you spend anything real.

Honest limitations

This is a four-state footprint for company data (NY, CO, CT, OR) and a two-state footprint for licenses (DE, CO) — not an 18-state or global claim. We picked these because each one publishes a genuinely free, keyless, Secretary-of-State-sourced open dataset, not a scrape of a login-gated search page. More states are a per-state adapter away, not a rewrite, and are on the roadmap. Officer data is sparse by design — only Connecticut publishes it — and freshness varies by state, with New York's feed explicitly monthly rather than real-time.

Run it on Apify

Every new Apify account starts with free trial credit, no card required.

FAQ

Is this the same data as OpenCorporates?

No. These Actors query each state's own free, keyless Secretary-of-State open-data API directly, not opencorporates.com. They serve the same category of buyer but pull from a different — and for these specific states, more current — data source.

Why only four states for company verification?

Those are the four we've confirmed publish a genuinely free, keyless Socrata dataset sourced from the state's own Secretary of State, rather than a login-gated or heavily defended search UI. Adding a state is a contained adapter, not a rewrite.

Can I search by entity ID instead of company name?

Not in the current release of the verification Actor — it's name-search only. Direct ID lookup is a straightforward addition; open an issue on the Actor's page if you need it sooner.

How current is the new-business-filings data?

It depends on the state's own publishing cadence — some states update closer to real time, New York's snapshot is explicitly monthly. Check the registry_url field in your results for the state's own dataset page, which usually states its refresh schedule.

Do I need an API key or login for any of these?

No. All three Actors query public, keyless state open-data portals. There's no account to create, no key to request, and no login step in the Actor itself.


Devil Scrapes builds and maintains 200+ pay-per-result web scrapers on the Apify Store. Blocks, retries and proxies handled by us. Browse the full catalog or commission a custom Actor.

Actors mentioned in this post:

Top comments (0)