US Business Verify avatar

US Business Verify

Pricing

from $8.00 / 1,000 business reports

Go to Apify Store
US Business Verify

US Business Verify

Verify US businesses for AI agents: state registry status (TX, NY, CO, CT, OR) plus OFAC and US export-list sanctions screening. Fail-closed PASS / REVIEW / FAIL / INCOMPLETE verdict with cited sources and timestamps.

Pricing

from $8.00 / 1,000 business reports

Rating

0.0

(0)

Developer

Curtis Still

Curtis Still

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

US Business Verify — registry status + sanctions screening for AI agents

Check whether a US business exists and is active in its official state registry, and screen it against the OFAC sanctions lists and US export screening lists. You get one fail-closed verdict per business: PASS / REVIEW / FAIL / INCOMPLETE. Every verdict comes with reason codes, match confidence, and a source URL and retrieval timestamp for every finding. The output is compact JSON that an agent can act on directly.

Why use it

  • One verdict instead of five government websites. Registry status, sanctions, and export lists are checked in one call.
  • Fail-closed. If a source is down, stale, or not covered, you get INCOMPLETE. You never get a false PASS.
  • Cited. Every finding names its official source, the URL, when it was retrieved, and when the source data was last updated.
  • Fair billing. You pay only for businesses that were actually found and given a definitive verdict. INCOMPLETE and not-found results are free.

Use cases

  • KYB / vendor onboarding: confirm that a supplier, customer, or counterparty is a registered, active entity and not sanctioned.
  • AI agents and MCP: give an agent a verify_business tool that returns a verdict instead of a web page.
  • Bulk list hygiene: re-check a vendor list and flag dissolved entities or sanctions matches.

What it checks

CheckDefaultSource (official, public)Notes
registry: existence and statusonState open-data portals: TX Comptroller Active Franchise Taxpayers, NY Department of State Active Corporations plus Name History and Status History, CO Secretary of State Business Entities, CT Business Registry, OR Secretary of State Active BusinessesCO, CT, and NY confirm inactive entities (dissolved, inactive, and so on). TX and OR publish active entities only, so a business missing from them is REVIEW, not FAIL.
sanctionsonOFAC SDN and Consolidated (non-SDN) lists, including aliases and listed addresses, plus the US Consolidated Screening List (BIS Entity List, Denied Persons, Unverified, MEU, ITAR debarred, nonproliferation)Business and other non-individual entries only. Downloaded fresh on every run.
exclusionsoff (opt-in)SAM.gov Exclusions APIRequires your own SAM.gov API key (samApiKey). If you request it and the key is missing or rejected, the result is INCOMPLETE.

A PASS covers only the checks that ran. Each result lists checksRun and checksNotRun, and includes a plain-language verdictScope. With the default settings, a PASS means "registry + sanctions passed". It says nothing about SAM.gov exclusions.

Supported states

StateStatus
TX, NY, CO, CT, ORSupported, live data
FLNot available on this Actor: always INCOMPLETE (not charged). Florida publishes its corporate data only as bulk files on its own file-transfer portal. This Actor does not have a provisioned index of those files.
DEAlways INCOMPLETE (not charged). Delaware has no free bulk file or API. Its entity search is CAPTCHA-protected and its terms prohibit automated access. The Actor never contacts Delaware's site.
Any other stateINCOMPLETE (STATE_NOT_COVERED, not charged)

If you leave out state, the Actor searches TX, NY, CO, CT, and OR, and lists the states it did not search in registry.statesNotSearched.

The four verdicts

  • PASS: every check that ran finished on fresh data, and every one of them passed.
  • REVIEW: a person should decide. Examples: several active entities share the name; the match has low confidence or a different legal suffix; the entity was not found; it is not in good standing; it is missing from an active-only list; or it has a sanctions name match with no second identifier.
  • FAIL: a confirmed disqualifying fact. Examples: the entity is dissolved, inactive, revoked, forfeited, or merged out; a sanctions or export-list match is corroborated by an ID, address, or country; or an active SAM.gov exclusion exists.
  • INCOMPLETE: a requested check could not finish. Causes include a source error, a timeout, stale data, a missing key, or a state that is not covered or is restricted. Never PASS. Never charged.

FAIL takes precedence over INCOMPLETE, because a confirmed bad fact stands even if another check failed.

Sanctions: name match vs corroborated match

A name match alone (exact, alias, or strong) is REVIEW (SANCTIONS_NAME_MATCH). It becomes FAIL (SANCTIONS_MATCH_CORROBORATED) only when an exact or strong name match is backed by strong evidence:

  • an ID you supply (taxId, ein, registrationNumber, lei, duns, swift) that equals an ID on the list entry;
  • a listed address in the subject's country that shares the postal code, the street, or, when country is given, the city;
  • for an exact name match only, an explicit country that equals a listed address country.

A US state alone never corroborates. Fuzzy (POSSIBLE) matches are never FAIL; any matching evidence is shown so a person can escalate. Before acting on any sanctions result, confirm it with the issuing agency.

Input

{
"businesses": [
{"name": "Chipotle Mexican Grill, Inc.", "state": "CO"},
{"name": "Etsy, Inc.", "state": "NY"},
{"name": "Acme Trading Ltd", "country": "Spain", "address": "Avenida Example 8", "city": "Madrid"}
],
"checks": ["registry", "sanctions"]
}

Item fields: name (required unless entityId is given), state (two letters, strongly recommended), and the optional entityId, city, zip, address, country, taxId, ein, registrationNumber, lei, duns, and swift. Other inputs:

  • names plus defaultState: a quick list of names.
  • checks: choose from registry, sanctions, and exclusions.
  • samApiKey: a secret, needed only for exclusions.
  • includeExportScreening: default true.
  • maxSourceAgeHours: freshness override.
  • maxBusinesses: default 100.

Output (one dataset item per business)

{
"name": "Etsy Payments, Inc.",
"state": "NY",
"verdict": "FAIL",
"reasonCodes": ["ENTITY_INACTIVE"],
"checksRun": ["registry", "sanctions"],
"checksNotRun": ["exclusions"],
"verdictScope": "The verdict covers only these checks: registry, sanctions. Not run (not covered by this verdict): exclusions.",
"registry": {"matchedEntity": {"entityId": "3953312", "name": "ETSY PAYMENTS, INC.", "status": "INACTIVE",
"statusRaw": "NY DOS status history: latest status 'Inactive' (filed 2011-12-13, ...)",
"matchLabel": "EXACT", "matchConfidence": 1.0}},
"findings": [{"code": "ENTITY_INACTIVE", "check": "registry", "outcome": "FAIL", "message": "...",
"url": "https://data.ny.gov/resource/3gg2-jgnp.json", "retrievedAt": "2026-10-29T23:52:13Z",
"sourceDataUpdatedAt": "2026-10-29T12:35:45Z"}],
"citations": [{"source": "NY Department of State - Entity Status History", "url": "...", "retrievedAt": "..."}],
"found": true,
"billable": true,
"checkedAt": "2026-10-29T23:52:13Z",
"disclaimer": "..."
}

Also included where they apply: registry.perState[] (requests, data freshness, candidates), sanctions.hits[] (list, programs, listed countries, corroboration evidence), exclusions, and checksIncomplete.

For AI agents

  • MCP: add https://mcp.apify.com/?tools=sourcewire/us-business-verify to your MCP client (Claude Desktop, Cursor, and others), or call the Actor through the Apify API.
  • Read verdict first, then verdictScope, reasonCodes, and findings[].message. Treat REVIEW as "ask a human". Treat INCOMPLETE as "unknown; retry later or check manually". Never treat INCOMPLETE as PASS.
  • Pass state whenever you know it. Pass country, address, and IDs when you have them, so sanctions matches can be corroborated or cleared.

Pricing

Pay per event: $0.008 per business report. You are charged only for PASS, REVIEW, or FAIL results where the business was found (a registry match or a corroborated list hit). INCOMPLETE and not-found results are never charged. The standard Apify platform events also apply (Actor start and dataset result, a fraction of a cent). Retried or resumed runs never charge the same business twice.

Limitations

  • Registry coverage is TX, NY, CO, CT, and OR. FL and DE return INCOMPLETE (see above).
  • The TX source is the Comptroller's franchise-tax roll, so entities not subject to franchise tax may be absent from it.
  • TX and OR publish active entities only, so the Actor cannot confirm inactivity there.
  • Name matching is heuristic. EXACT and STRONG (legal suffix missing on one side) count as confirmed; a suffix mismatch or a fuzzy match is REVIEW only. Add entityId, city, or zip to resolve ambiguity.

Disclaimer

This Actor runs automated lookups of public government data. Its results are not an official determination and not legal advice. It covers business entities only. It is not a consumer report as defined by the Fair Credit Reporting Act (FCRA). Do not use it for any FCRA purpose, such as decisions about credit, employment, insurance, or housing for individuals.

Development

python -m venv .venv && .venv/bin/pip install httpx pytest
.venv/bin/python -m pytest -q
.venv/bin/python -m src.cli smoke/smoke_input_v02.json out.json