Company Lookup & KYB: Secretary of State Business Entity Search avatar

Company Lookup & KYB: Secretary of State Business Entity Search

Pricing

from $2.40 / 1,000 company lookup with a matches

Go to Apify Store
Company Lookup & KYB: Secretary of State Business Entity Search

Company Lookup & KYB: Secretary of State Business Entity Search

Bulk US company lookup and KYB verification: business entity search in official Secretary of State and state registry data (CO, CT, NY, OR, PA, TX). Tested Oct 17, 2026: 17/17 matched to the right entity, explicit NOT_FOUND for every unregistered name. Match score, status, formation date, ID.

Pricing

from $2.40 / 1,000 company lookup with a matches

Rating

0.0

(0)

Developer

Christopher Tolentino

Christopher Tolentino

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

US Company Lookup & KYB: Secretary of State Business Entity Search

Bulk company lookup and business entity search against official state business registry data (Secretary of State and equivalent agencies) for Colorado, Connecticut, New York, Oregon, Pennsylvania and Texas. Paste a list of company names (or state registry IDs) and get one verification result per company: whether it is registered, its status, formation date, entity type, registry ID, jurisdiction and a link to the official source record, with a 0-100 match score.

Last verified: 2026-10-16 (daily automated self-test against the live state sources).

Tested accuracy (Oct 17, 2026, live build, 20 companies across CO, CT, NY, OR, PA, TX)

Registry match17 of 17 registered companies matched to the right legal entity, including short names such as "M & C Concrete LLC."
Not foundOne row per input: 3 of 3 unregistered names returned an explicit NOT_FOUND row (no silent gaps)
Texas right to transact2 of 2 companies that lost the right to transact flagged FORFEITED, even where the Secretary of State shows Active
Wrong-company matchesA more generic registered name is not offered as a match; every row carries a 0-100 match score and the matched legal name
Speed~3 s per company in a batch of 20
BillingNOT_FOUND is free when a state source fails

What to check in any KYB or lien tool

  1. Expired liens counted as active: a UCC filing lapses after 5 years unless continued, and can be terminated earlier. "Active" should mean not terminated and not lapsed.
  2. Amendments double-counted: amendments and continuations are separate rows in state data; they belong to the original lien, not on top of it.
  3. Wrong-company matches: short and common names ("M & C Concrete", "Star Group") easily match another company. Look for a match score, the matched legal name, and similar names kept apart.
  4. Charged for failed rows: check whether you pay when a state source fails or nothing is found. Every input should get a row that says found, not found or failed.

Who it's for

  • KYB, onboarding and compliance teams checking that a customer, vendor or borrower is a registered entity in good standing.
  • Lenders, fintechs and payment companies screening small-business applicants in bulk.
  • Procurement and vendor-management teams cleaning up supplier lists.
  • Data teams and AI agents that need to resolve a messy company name to a registered legal entity and ID.

Why this Actor

  • Built for batches: 1 or 10,000 names per run, one row per input, NOT_FOUND rows included, so your output lines up with your list.
  • Fuzzy name matching: "Joes Pizza llc", "JOE'S PIZZA, L.L.C." and "Joe's Pizza" all match. Legal-form words, punctuation, "&" vs "and" and word order are ignored, and small typos are found (flagged POSSIBLE, since a one-letter change can be a different company). Every match carries a score and a match status (EXACT, STRONG, POSSIBLE, ID_MATCH, NOT_FOUND).
  • Official state open-data APIs only: no scraping, no logins, no proxies, no CAPTCHAs. Every result links to the exact official record.
  • Full registries, not just new filings: entities going back to the 1800s.
  • Entity-level data only: no names of officers, members or individual agents, and no street addresses by default.
  • Agent-ready: every input field has a plain, machine-readable description, so it works as a tool through the Apify MCP server and API.

Why choose this Actor

Reliability10 of 10 runs succeeded since launch (Oct 16, 2026); timeouts, 429 and 5xx errors retried with exponential backoff (up to 5 attempts); if every state is down you get a free SEARCH_FAILED row; any state that failed is listed in states_failed, and a NOT_FOUND with a failed state is free
Sources6 official state registries (CO, CT, NY, OR, PA, TX) via open-data APIs, full history
OutputExactly one row per input (including NOT_FOUND), with a 0-100 match score and match status, so results line up with your list
MatchingFuzzy: legal-form words, punctuation, "&"/"and", word order and small typos handled; IDs verified exactly
ComplianceEntity-level data only: no officer, member or individual-agent names; street line off by default
Audit trailLink to the exact official record and the state's own search page on every match
Price$3.00 per 1,000 matches, $1.00 per 1,000 NOT_FOUND, no start fee
SpeedOne company, all 6 states: about 14 s end to end by API (10 s with a state hint), measured Oct 16, 2026

Quick start

Verify a list of companies in all six states:

{ "companies": ["New Belgium Brewing", "Etsy Inc", "Sheetz"] }

Search only certain states for a name (add | and state codes):

{ "companies": ["Columbia Sportswear | OR", "Acme Robotics | CO, TX"] }

Verify by state registry ID:

{ "entityIds": ["TX:0015370710", "CO:19931026399"] }

Strict verification (only near-exact names, active entities):

{ "companies": ["Etsy Inc"], "minScore": 93, "activeOnly": true }

What you get (one row per input)

FieldDescription
input, query, query_normalizedYour input line, the searched name, and the name after normalization
match_statusEXACT (same name), STRONG (same words; spacing, order or an equivalent legal form differ), POSSIBLE (typo, partial name, or conflicting legal forms such as LLC vs LP vs Inc/Corp vs LLP: score 90; review), ID_MATCH, NOT_FOUND, or SEARCH_FAILED (a state portal was down; retry)
match_score0-100 name similarity of the best match
state, entity_id, entity_nameRegistry state, state-assigned ID / file number and registered legal name of the best match
entity_type, entity_type_rawNormalized (LLC, CORPORATION, NONPROFIT, PARTNERSHIP, OTHER) and as filed
status, status_normalizedStatus as filed (e.g. Good Standing, Delinquent, Voluntarily Dissolved) and ACTIVE / ACTIVE_NOT_IN_GOOD_STANDING / INACTIVE / UNKNOWN
tx_right_to_transact, tx_right_to_transact_codeTexas only: the Comptroller's franchise-tax right to transact business status: ACTIVE, ACTIVE_ELIGIBLE_FOR_TERMINATION, FORFEITED, FRANCHISE_TAX_INVOLUNTARILY_ENDED, FRANCHISE_TAX_NOT_ESTABLISHED or FRANCHISE_TAX_ENDED, plus the raw code (A, D, N, I, U). A Texas company can be Active at the Secretary of State and still have forfeited its right to transact (code N)
formation_dateFormation or registration date in that state
domestic, jurisdiction_of_formationFormed in that state, or a foreign registration, and where it was formed
principal_city, principal_state, principal_zipPrincipal office location (street line only with Include street line)
registered_agent_organizationCommercial registered agent (CO, OR); individual agents are never returned
source_record_urlOfficial open-data API URL for this exact record (audit trail)
official_search_urlThe state's own business search page for manual confirmation
other_matchesMore candidates: the same company's registrations in other states, or similar names. For NOT_FOUND rows, the closest names
states_searched, states_failed, checked_atWhat was searched and when

The best match is the highest score; ties go to active entities, then the oldest registration (usually the company's original one). All other registrations at or above the threshold are listed in other_matches.

Example

{
"input": "New Belgium Brewing",
"match_status": "EXACT",
"match_score": 100,
"state": "CO",
"entity_id": "19931026399",
"entity_name": "NEW BELGIUM BREWING COMPANY, INC.",
"entity_type": "CORPORATION",
"status": "Good Standing",
"status_normalized": "ACTIVE",
"formation_date": "1993-03-11",
"domestic": true,
"source_record_url": "https://data.colorado.gov/resource/4ykn-tg5h.json?entityid=19931026399",
"other_matches": [{ "state": "OR", "entity_name": "NEW BELGIUM BREWING COMPANY, INC.", "match_score": 100 }, "..."]
}

Re-check your list on a schedule

KYB is not one-and-done: a customer or vendor can become delinquent or dissolved after onboarding.

  1. Save your company list as a task (paste names or state IDs).
  2. Add a schedule, e.g. monthly on the 1st.
  3. Add a webhook on ACTOR.RUN.SUCCEEDED, or filter the dataset for status_normalized other than ACTIVE in your own system.

Use it from your app (one company per call)

Call the Actor synchronously from an onboarding or underwriting flow and get the result in the response:

curl -X POST "https://api.apify.com/v2/acts/cpt_engineering~us-company-lookup-kyb/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"companies": ["New Belgium Brewing | CO"]}'

Add the state after | when you know it: it is faster. The Apify MCP server exposes the same call to AI agents.

Coverage

StateSourceStatuses includedFreshness
ColoradoBusiness Entities in Colorado (CO Dept. of State, data.colorado.gov 4ykn-tg5h), ~3.1M entitiesAll (good standing, delinquent, dissolved, ...)Daily
ConnecticutBusiness Registry - Business Master (Secretary of the State, data.ct.gov n7gp-d28j), ~1.3MAll (rejected filings and name reservations excluded)Daily
New YorkActive Corporations (NYS Dept. of State, data.ny.gov n9v6-gdp6), ~4.3MActive onlyDaily in practice
OregonActive Businesses - ALL (Oregon SOS, data.oregon.gov tckn-sxa6)Active only (assumed business names excluded)Weekly
PennsylvaniaRegistered Businesses in PA (PA Dept. of State, data.pa.gov xvd7-5r2c)Active onlyEvery 1-2 weeks
TexasActive Franchise Taxpayers (TX Comptroller, data.texas.gov 9cir-efmm), ~3.2MEntities on the franchise-tax roll (incl. forfeited)Weekly; new charters appear 3-5 weeks late

Texas franchise tax status: every Texas match includes tx_right_to_transact (Texas Comptroller franchise-tax status), so you can catch companies that forfeited their right to transact business in Texas.

Important: in NY, OR, PA and TX a dissolved or very new company may return NOT_FOUND. A NOT_FOUND result means "not in the published dataset", not proof that the company never existed. For other states, use that state's own search.

Pricing

Pay per lookup, with no start fee:

ResultPrice per 1,000 lookups (no discount)
Match found (EXACT, STRONG, POSSIBLE or ID_MATCH)$3.00
No match (NOT_FOUND)$1.00
NOT_FOUND while any searched state portal failed (states_failed not empty)free
SEARCH_FAILED (every searched state portal was down)free

Apify Store discount tiers pay less:

TierMatch found / 1,000No match / 1,000
No discount (Free / starter)$3.00$1.00
Bronze$2.79$0.93
Silver$2.61$0.87
Gold and above$2.40$0.80

Example: 1,000 names where 800 are found costs 800 x $0.003 + 200 x $0.001 = $2.60. Set Max lookups or a run spend limit to cap a run.

Speed and cost tips

  • State portals allow about one request per second, so a lookup takes about 1-3 seconds per state searched; states are searched in parallel. 100 names in all six states take about 3-5 minutes.
  • If you know the state, add | ST to the name or set States: it is faster.
  • Set Max lookups to cap a run.

Data and privacy

Entity-level data only:

  • Never returned: names of individuals (officers, members, managers, organizers, individual registered agents, service-of-process addressees), their addresses, mailing addresses, emails and owner-demographic flags. These columns are never downloaded.
  • Texas: sole proprietorships and partnerships of individuals are excluded; the taxpayer street address is never downloaded.
  • Oregon: assumed business names (DBAs, often sole proprietors) are excluded.
  • Street line off by default; turn on Include street line if you need it.

You are responsible for using the data lawfully. This Actor is a data tool, not a consumer report, legal advice or a certificate of good standing; for an official certificate, order one from the state.

FAQ

Is this a Secretary of State business search? Yes, for these six states, using each state's official open-data publication (Texas: the Comptroller's franchise-tax roll of Secretary of State entities).

How accurate is the matching? In our October 2026 test of 46 names (real companies typed loosely, e.g. "Buc-ees", "Powells Books", "stanley black and decker", plus made-up names), every one of the 36 EXACT matches was the right company, 2 of 3 POSSIBLE rows were right, and all made-up names returned NOT_FOUND. EXACT and ID_MATCH are safe to auto-accept; review POSSIBLE rows.

Can AI agents use it? Yes, through the Apify MCP server or API. Input: a list of names. Output: one row per name.

Need a list of newly registered businesses instead? Use our sister Actor US New Business Registrations (same six state sources, daily/weekly new-filings feed). For new private fundraises, see Form D Filings Feed.

Need a lien check too? UCC Lien Filings searches the same companies in the Colorado, Connecticut and Oregon UCC indexes and returns each financing statement with its lender, filing and lapse dates.

  • Company Due Diligence Check: one row per company with registry status, UCC liens (secured lenders, lapse dates), an OFAC sanctions screen and a SAM.gov federal exclusions screen, plus risk flags.
  • UCC Lien Filings: new UCC-1 filings, liens lapsing soon and lien checks by company name (CO, CT, OR).

Limitations

  • Six states for now. Florida, Delaware, California and others are not included because they do not publish an open registry API.
  • Data is as published by each state, with no enrichment (no phones or emails).
  • Not affiliated with, endorsed by, or sponsored by any state government.

Support

Open an issue on this Actor or email cpt-datatools@mail.grokbot.com. We reply to issues and support emails within 1 business day.

Changelog

  • Oct 17, 2026 (12:30 PM): Tested accuracy speed updated from the 12:11 PM ET re-test on the live build.
  • Oct 17, 2026 (afternoon): a registered name with the same words but a conflicting legal form ("Etsy LP" for "Etsy Inc") is now POSSIBLE (score 90) instead of STRONG, so it is never presented as the same company. Equivalent forms (Inc / Corp / Co; LLC / L.L.C.) still match.
  • Oct 17, 2026 (midday): added the Tested accuracy results (20-company test on the live build) and a buyer's checklist.
  • Oct 17, 2026 (later): Colorado entity_name no longer carries the status suffix the registry appends to some names ("ACME LLC, Delinquent November 1, 2010" is returned as "ACME LLC"; the status stays in status).
  • Oct 17, 2026: better matching for short names such as "M & C Concrete LLC" (registered name with a trailing period, extra 'starts with' search); a more generic registered name ("Acme" for "Acme Roofing Supply") is no longer offered as a match.
  • Oct 16, 2026 (late night): new field tx_right_to_transact (Texas franchise-tax right to transact business).
  • Oct 16, 2026 (night): NOT_FOUND is now free when any searched state portal failed (the answer may be incomplete; the state is listed in states_failed); daily automated self-test with source schema-change detection; Last verified line; support response promise.
  • Oct 16, 2026 (midday): price set to $3.00 per 1,000 matches and $1.00 per 1,000 NOT_FOUND (tiers $2.79 / $2.61 / $2.40 and $0.93 / $0.87 / $0.80).
  • Oct 16, 2026: launched: 6 state registries, fuzzy matching, one row per input; schedule and API guides; link to UCC Lien Filings.

Source data disclaimer

The data made available here has been modified for use from its original source, which is the State of Colorado. THE STATE OF COLORADO MAKES NO REPRESENTATIONS OR WARRANTY AS TO THE COMPLETENESS, ACCURACY, TIMELINESS, OR CONTENT OF ANY DATA MADE AVAILABLE THROUGH THIS SITE. THE STATE OF COLORADO EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. The data is subject to change as modifications and updates are complete. It is understood that the information contained in the Web feed is being used at one's own risk.

New York, Oregon, Connecticut, Pennsylvania and Texas data are provided by those states "as is", without warranty of accuracy, completeness or timeliness. Pennsylvania data: Commonwealth of Pennsylvania, Department of State, via data.pa.gov. Texas data: Texas Comptroller of Public Accounts, via the Texas Open Data Portal.