US Business Verify
Pricing
from $8.00 / 1,000 business reports
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
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_businesstool 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
| Check | Default | Source (official, public) | Notes |
|---|---|---|---|
registry: existence and status | on | State 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 Businesses | CO, 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. |
sanctions | on | OFAC 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. |
exclusions | off (opt-in) | SAM.gov Exclusions API | Requires 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
| State | Status |
|---|---|
| TX, NY, CO, CT, OR | Supported, live data |
| FL | Not 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. |
| DE | Always 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 state | INCOMPLETE (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
countryis given, the city; - for an exact name match only, an explicit
countrythat 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:
namesplusdefaultState: a quick list of names.checks: choose fromregistry,sanctions, andexclusions.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-verifyto your MCP client (Claude Desktop, Cursor, and others), or call the Actor through the Apify API. - Read
verdictfirst, thenverdictScope,reasonCodes, andfindings[].message. Treat REVIEW as "ask a human". Treat INCOMPLETE as "unknown; retry later or check manually". Never treat INCOMPLETE as PASS. - Pass
statewhenever you know it. Passcountry,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.
EXACTandSTRONG(legal suffix missing on one side) count as confirmed; a suffix mismatch or a fuzzy match is REVIEW only. AddentityId,city, orzipto 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