Business Entity Check: CO, CT, NY, OR, TX registries avatar

Business Entity Check: CO, CT, NY, OR, TX registries

Pricing

from $4.00 / 1,000 matched businesses

Go to Apify Store
Business Entity Check: CO, CT, NY, OR, TX registries

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

Jacob

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Security

Limited permissions

Share

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:

StateSourceWhat you get
ColoradoDepartment of State, Business Entities (data.colorado.gov)every status since 1864 (good standing, delinquent, dissolved, withdrawn...), type, formation date, registered agent, principal address
ConnecticutSecretary 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 YorkDepartment of State, Active Corporations (data.ny.gov)active entities only; type, initial filing date, registered agent where filed, location
OregonSecretary of State, Active Businesses (data.oregon.gov)active entities and assumed business names only; type, registry date, registered agent, principal place of business
TexasComptroller, 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's title (or name, companyName, company, businessName) is checked as the business name in its state; city and postalCode re-rank matches; the item's address, phone, website and URL are copied to the output row. Use nameField / stateField if your scraper names them differently.
  • No row cap. The dataset is read 1,000 items at a time and every row is checked. maxItems is 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=256
Authorization: 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.

ToolWhat you getDownload
n8nWorkflow to import: reads a Google Sheet, sends up to 500 unchecked rows in one run, writes the results backbusiness-entity-check.json
MakeBlueprint (HTTP module, one run per batch); setup steps for the new HTTP app are belowbusiness-entity-check.blueprint.json
Google SheetsApps Script: =ENTITY_CHECK("Advisory House", "CO") for single cells, and a menu item that checks a selected range in batches of 200pelican-checks.gs
ClayHTTP API enrichment column (steps below)-
ZapierWebhooks 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 Name parts 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 (status first) 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> and Content-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, not inactive.
  • 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.