Business Entity Check: CO, CT, NY, OR, TX registries
Pricing
from $4.00 / 1,000 matched businesses
Business Entity Check: CO, CT, NY, OR, TX registries
Enrich lead lists with registered-entity status and formation date from the states' own open-data files. Feed it names, entity IDs, or a Google Maps / lead scraper dataset; no cap on rows. $0.004 per matched row, unmatched rows are free.
Pricing
from $4.00 / 1,000 matched businesses
Rating
0.0
(0)
Developer
Jacob
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Business Entity Check: LLC status and age from official state registries
Is this business a real, active registered entity, and how old is it? This actor appends registry status and formation date to every row of a lead list, read from the states' own open-data entity files:
| State | Source | What you get |
|---|---|---|
| Colorado | Department of State, Business Entities (data.colorado.gov) | every status since 1864 (good standing, delinquent, dissolved, withdrawn...), type, formation date, registered agent, principal address |
| Connecticut | Secretary of the State, Business Registry master and agents (data.ct.gov) | every status, including annual report past due and administrative dissolution started; formation date, registered agent |
| New York | Department of State, Active Corporations (data.ny.gov) | active entities only; type, initial filing date, registered agent where filed, location |
| Oregon | Secretary of State, Active Businesses (data.oregon.gov) | active entities and assumed business names only; type, registry date, registered agent, principal place of business |
| Texas | Comptroller, Active Franchise Taxpayers (data.texas.gov) | right to transact (active / forfeited), SOS status, charter date, type, address; no registered agent in this file |
No live Secretary of State search pages are queried and no CAPTCHAs are touched. Every row carries source_as_of (the date of the state's file) and source_url.
Input
queries: a list of{"state": "CO", "entity_name": "Acme Roofing LLC", "city": "Denver"}or{"state": "TX", "entity_id": "0802687829"}. Full state names work too. City or ZIP is optional and only re-ranks name matches.datasetId: the ID of a dataset from a Google Maps or other lead scraper. Each item'stitle(orname,companyName,company,businessName) is checked as the business name in itsstate;cityandpostalCodere-rank matches; the item's address, phone, website and URL are copied to the output row. UsenameField/stateFieldif your scraper names them differently.- No row cap. The dataset is read 1,000 items at a time and every row is checked.
maxItemsis an optional stop.
Output (one row per input row)
matched, status (active, delinquent, inactive, other, not_found), status_raw (the state's own wording), entity_name, entity_id, state, entity_type, formation_date, age_years, age_days, registered_agent, principal_address {city, state, zip}, match_confidence, location_match, source_url, dataset_url, source_as_of, possible_matches, coverage_note.
null means the state does not publish that field. Name matches scoring under 0.8 are listed in possible_matches with matched: false.
Pricing
$0.004 per matched row. Unmatched and invalid rows are free.
Integrations
Use this actor from n8n, Make, Google Sheets, Clay or Zapier with your own Apify token (Apify Console > API & Integrations). Every integration makes the same call:
POST https://api.apify.com/v2/acts/pelicanlabs~business-entity-check/run-sync-get-dataset-items?memory=256Authorization: Bearer <your Apify token>Content-Type: application/json{"queries":[{"state":"CO","entity_name":"Advisory House"},{"state":"TX","entity_name":"Example Roofing LLC"}]}
The response is a JSON array with one item per input row. The main fields are status, matched, entity_name, entity_id, entity_type, formation_date, age_years, registered_agent, principal_address, match_confidence, source_url, source_as_of.
Send a list in one request. Each request is one actor run, and each run has a start-up time of several seconds and a small Apify start fee. A batch of 500 rows costs the same start-up as a batch of 1. The n8n workflow and the Google Sheets menu send batches. Clay, Zapier and the Sheets formula send one row per run, which suits small volumes.
| Tool | What you get | Download |
|---|---|---|
| n8n | Workflow to import: reads a Google Sheet, sends up to 500 unchecked rows in one run, writes the results back | business-entity-check.json |
| Make | Blueprint (HTTP module, one run per batch); setup steps for the new HTTP app are below | business-entity-check.blueprint.json |
| Google Sheets | Apps Script: =ENTITY_CHECK("Advisory House", "CO") for single cells, and a menu item that checks a selected range in batches of 200 | pelican-checks.gs |
| Clay | HTTP API enrichment column (steps below) | - |
| Zapier | Webhooks by Zapier, Custom Request (steps below) | - |
n8n: in the workflow menu (three dots), choose Import from File, or Import from URL with the link above. Open Run actor (run-sync) and create a Header Auth credential with Name Authorization and Value Bearer <your token>. In Read rows and Write results, choose your sheet. Row 1 needs the columns Company Name, State plus the result columns listed in the workflow's note.
Make: create a scenario, open the three-dots menu, choose Import Blueprint and select the file. In the HTTP module, add an API key keychain that sends Authorization: Bearer <your token> in the header. Edit input_json in the first module, or map it from your sheet. Then add an Iterator on the HTTP module's Data to get one bundle per row. To build the same flow on the new HTTP app (version 4) instead, use the Make a request module with the method, URL, header and body shown above.
Google Sheets: in your sheet, open Extensions > Apps Script, paste the file and save, then reload the sheet. Choose Pelican checks > Set Apify token. Then either type the formula, or select your rows and choose Check selected rows: business entity (select two columns: name, state). Results are written to the columns to the right of your selection. Rows that already have a result are skipped, so you can run it again to continue. A formula must finish within Google's 30-second limit for custom functions, so use the menu for anything more than a few rows.
Clay: Add enrichment > HTTP API > Configure.
- Method:
POST - Endpoint:
https://api.apify.com/v2/acts/pelicanlabs~business-entity-check/run-sync-get-dataset-items?memory=256&timeout=60 - Headers:
Authorization=Bearer <your token>. You can save this as a header account so the token is not shown in the table. - Body:
{"queries": [{"state": "/State", "entity_name": "/Company Name"}]}. Replace the/Column Nameparts with your own columns: type/to insert one. - Clay sends one request, and so one actor run, per row. The response is an array with one item. Run a single row first, then add the fields you want (
statusfirst) as columns.
Zapier: use the Webhooks by Zapier action Custom Request.
- Method:
POST - URL:
https://api.apify.com/v2/acts/pelicanlabs~business-entity-check/run-sync-get-dataset-items?memory=256&timeout=25 - Data: the JSON body above, with your Zap's fields mapped in.
- Headers:
Authorization=Bearer <your token>andContent-Type=application/json. - Zapier stops a step after about 30 seconds, so send one row per Zap run. Apify's own Zapier app also has Run Actor and Fetch Results, which works if you prefer it.
Pricing: $0.004 per matched business (unmatched rows are free), billed by Apify to the account that owns the token.
Limits
- Five states. A business registered in another state comes back with an error row (free).
- New York, Oregon and Texas publish active entities only, so a dissolved business there returns
not_found, notinactive. - Matching is by normalized name (LLC, Inc, punctuation removed) with token overlap. A Google Maps title that is a trade name, not the registered name, may not match.
- Not a certificate of good standing. The files lag the registries by days to weeks; confirm with the state before relying on a result.