OpenCorporates Alternative — US Business Registry Scraper avatar

OpenCorporates Alternative — US Business Registry Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
OpenCorporates Alternative — US Business Registry Scraper

OpenCorporates Alternative — US Business Registry Scraper

Batch-verify US company names against official state Secretary-of-State business registries (NY, CO, CT, OR) — get status, incorporation date, entity type, registered agent, and officer data (CT) as structured KYB / lead-gen rows. No API key, no login.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share


🎯 What this scrapes

This Actor batch-verifies company names against official state Secretary-of-State open-data registries — New York, Colorado, Connecticut, and Oregon in v1 — and returns one structured row per matched entity per state. Each row carries the state's on-file entity name, status, entity type, formation date, principal address, registered agent, and (Connecticut only) officer/principal names.

We built this as a self-serve alternative to subscription KYB/registry tools: feed it a list of company names, get back structured, Pydantic-validated rows you can pipe straight into a CRM, a compliance workflow, or a spreadsheet. It queries the states' own free, keyless Socrata open-data APIs directly — not opencorporates.com, and not a scrape of any paywalled search UI.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so every request looks like a browser, not Python.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per request, Retry-After honoured.
  • 🧱 Graceful degradation per state — if one state's dataset hiccups, that state is skipped with a warning; your batch keeps running.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, a shared cross-state schema despite each state publishing wildly different raw field names.
  • 🔒 Privacy-conscious by design — Connecticut's principals dataset also publishes home addresses; we never surface them, only business addresses.
  • 💰 Pay-Per-Event pricing — you only pay for matched entity rows that land in your dataset. No data, no charge (beyond the small warm-up fee).

💡 Use cases

  • KYB / onboarding checks — batch-verify a list of business names before onboarding a new customer or vendor.
  • Sales & lead-gen prospecting — confirm a prospect list is made of real, active, on-file entities before outreach.
  • Due-diligence research — pull incorporation date, entity type, and registered-agent data for a target list of companies.
  • Journalism & investigations — cross-check company names against official state filings, batch-style.
  • List hygiene — drop companies whose status_normalized comes back inactive before you spend outreach budget on them.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Paste your company names into Search queries — one name per line (up to 500).
  3. Optionally narrow Jurisdictions to just the states you care about, and adjust Max results per query / Status filter.
  4. Click Start. Rows stream into the run's dataset as each name is resolved.
  5. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
searchQueriesarrayyesCompany names to verify (1-500 entries, 1-200 chars each).
jurisdictionsarrayno["NY","CO","CT","OR"]Which state registries to query per name.
fetchOfficersbooleannotrueResolve officer/principal data (CT only in v1; 1 extra request per matched CT row).
maxResultsPerQueryintegerno5Cap on matches returned per name, summed across jurisdictions (1-50).
statusFilterstringno"any"Post-filter on normalized status: any, active, or inactive.
proxyConfigurationobjectno{"useApifyProxy": false}Optional — these are public open-data APIs, not known to fingerprint clients.

Example input

{
"searchQueries": ["Acme Robotics LLC"],
"jurisdictions": ["NY", "CO", "CT", "OR"],
"fetchOfficers": true,
"maxResultsPerQuery": 5,
"statusFilter": "any",
"proxyConfiguration": {"useApifyProxy": false}
}

📤 Output

Every row is one matched entity for one (query, jurisdiction) pair.

FieldTypeNotes
querystringThe input name this row matched.
entity_idstringState's internal id (dos_id / entityid / id / registry_number).
entity_namestringState's on-file entity name.
jurisdictionstringNY, CO, CT, or OR.
entity_typestring | nulle.g. DOMESTIC BUSINESS CORPORATION, DLLC.
statusstring | nullRaw state status label (e.g. Good Standing).
status_normalizedstringactive, inactive, or unknown — derived per-state.
formation_datestring | nullISO YYYY-MM-DD.
dissolution_datestring | nullISO YYYY-MM-DD, when the state publishes it.
principal_addressstring | nullFlattened single-line address.
registered_agent_namestring | nullWhen published.
registered_agent_addressstring | nullFlattened single-line address.
officersarrayOfficer/principal list — CT rows only, when fetchOfficers=true.
source_record_urlstringDirect link to the raw SODA record.
registry_urlstringThe state's open-data dataset landing page.
scraped_atstringISO 8601 UTC timestamp this row was written.

Example output

{
"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",
"dissolution_date": null,
"principal_address": "9159 Anasazi Indian Trl, Highlands Ranch, CO 80129",
"registered_agent_name": "ACME ROBOTICS LLC",
"registered_agent_address": "9159 Anasazi Indian Trl, Highlands Ranch, CO 80129",
"officers": [],
"source_record_url": "https://data.colorado.gov/resource/4ykn-tg5h.json?entityid=20251664337",
"registry_url": "https://data.colorado.gov/d/4ykn-tg5h",
"scraped_at": "2026-07-18T12:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result-row$0.005Per matched entity row written to the dataset

Example: 1 000 matched rows ≈ $5.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

This is a v1 with 4 confirmed states (NY, CO, CT, OR) — not the 18-state coverage some incumbents advertise. We picked these four because each publishes a free, keyless, machine-readable dataset sourced from the state's own Secretary of State; adding a state is a per-state adapter, not a schema break, so more are on the roadmap. Officer/principal data is genuinely sparse: only Connecticut publishes a separate principals dataset in v1, so officers is [] for NY/CO/OR rows by design, not a bug. Dataset freshness varies by state (New York's snapshot is explicitly "as of the last business day of the month," not real-time). This Actor has no relationship with, and is not affiliated with, opencorporates.com — it queries the states' official open-data portals directly.

🔗 Use with n8n

Wire this Actor into your n8n automations with the official Apify node:

  1. Add the Apify node and pick the Run Actor operation.
  2. Set the Actor to devilscrapes/opencorporates-alternative-scraper and pass your input as JSON.
  3. Chain a Get Dataset Items step to read the structured rows into the rest of your workflow (Sheets, Slack, your CRM, an AI agent, …).

Because n8n runs on a schedule or trigger, you get fresh company registry records on autopilot — for example, KYB onboarding checks that automatically flag dissolved or delinquent entities before you sign a customer.

❓ FAQ

Is this the same data as OpenCorporates?

No. We query each state's own free, keyless Secretary-of-State open-data API directly — not opencorporates.com. Same category of buyer, different (and, for these four states, more current) data source.

Why only 4 states in v1?

Those are the states we've confirmed publish a genuinely free, keyless Socrata dataset sourced from their own Secretary of State — not a scrape of a login-gated or Cloudflare-protected search UI. Adding a 5th state is a contained code change, not a rewrite; more states are on the roadmap.

Why is officers empty for most rows?

Only Connecticut's registry publishes a separate officer/principal dataset in v1. For NY, CO, and OR, officers is always [] — that's documented behaviour, not a missed field.

Can I search by entity ID instead of company name?

Not in v1 — this release is name-search only. Direct ID lookup is a straightforward addition without a schema break; let us know if you need it.

How current is the data?

It's exactly as current as each state's own open-data snapshot. New York's is explicitly monthly; Colorado, Connecticut, and Oregon appear to update more frequently based on observed timestamps, but none of these are real-time transactional lookups.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a 5th state added? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.