POST
/v1/verifyVerify a business
Confirm whether a business entity exists, is currently active, and is registered with the issuing authority. Name matching is fuzzy: punctuation, casing, and entity suffixes (LLC, Inc, Corp, Co, LP) are normalized automatically before comparison.
Request
POST /v1/verify
POST /api/v1/verify HTTP/1.1
Host: trustregistryapi.com
Authorization: Bearer tr_live_...
Content-Type: application/jsonBody schema
| Field | Type | Required | Description |
|---|---|---|---|
| business_name | string (1–255) | yes | Legal business name. Suffixes are normalized. |
| state | string (2-letter) | yes | USPS state code, uppercased. See coverage. |
| registration_number | string (max 64) | no | When supplied and matched, confidence is pinned to 0.99. |
request body
{
"business_name": "H-E-B LP",
"state": "TX"
}Response — 200 OK
matched response
{
"verified": true,
"status": "active",
"business_name": "<canonical name from registry>",
"entity_type": "<from registry, may be null>",
"state": "TX",
"registration_number": "<from registry, may be null>",
"formation_date": "<ISO date, may be null>",
"confidence_score": 0.97,
"source": "Texas Comptroller — Active Franchise Tax Permit Holders",
"data_source": "live_registry_ingestion",
"trustregistry_id": "be_..."
}Response fields
| Field | Type | Description |
|---|---|---|
| verified | boolean | true if a matching record exists and status is 'active'. |
| status | string | active · inactive · dissolved · forfeited · pending · unknown · not_found · unsupported_state |
| business_name | string | Canonical name as filed with the registry. |
| entity_type | string | Reported entity type (LLC, Corp, LP, etc.). |
| state | string | USPS 2-letter code. |
| registration_number | string | Filing / charter number assigned by the registry. |
| formation_date | string (ISO date) | Date of formation / filing, when available. |
| confidence_score | number [0,1] | Match confidence. See scoring rules below. |
| source | string | Authoritative source name. |
| trustregistry_id | string | Stable TrustRegistry ID — pass to /business/{id}. |
Match resolution & confidence
confidence_score is a tiered match-quality indicator in [0, 1] — not a calibrated statistical probability. Read it as “how strong was the name/registration match”, not “the probability this business exists”.
- If
registration_numberis supplied and matches, returned withconfidence_score = 0.99. - Otherwise an exact normalized-name match returns with
confidence_score ≈ 0.96. - Otherwise a fuzzy candidate sweep runs; the best match above the similarity floor returns with a derived score in
[0.5, 0.94]. - If nothing crosses the floor, the response has
verified: falseandstatus: "not_found".
Not-found response
200 OK · no match
{
"verified": false,
"status": "not_found",
"business_name": "Nonexistent Corp",
"state": "TX",
"confidence_score": 0,
"source": "Texas Comptroller — Active Franchise Tax Permit Holders",
"data_source": "live_registry_ingestion",
"message": "No matching entity found in the live Texas Comptroller registry ingestion."
}Unsupported state
Requests for states that are not yet live return a structured response with status: "unsupported_state" and are not billed.
200 OK · unsupported
{
"verified": false,
"status": "unsupported_state",
"state": "DE",
"message": "Coverage for DE is not live yet. Texas (TX) is currently supported."
}Errors
See Errors for the full envelope and code list.