Skip to main content

POST /v1/verify

Convenience endpoint: lookup-or-create an entity, then run verification checks in a single call.

For standalone verification against an already-resolved entity, use POST /v1/verifications.

Request

POST https://api.vendorval.com/v1/verify
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Body — with entity ID

{
entity_id: string
checks: Array<"sam_registration" | "tin_match">
mode: "cached" | "realtime"
}

Body — with identifiers (lookup-or-create)

{
identifiers: Array<{ type: "uei" | "tin" | "duns" | "cage"; value: string }>
legal_name?: string
checks: Array<"sam_registration" | "tin_match">
mode: "cached" | "realtime"
}

Example

{
"entity_id": "ent_01abc...",
"checks": ["sam_registration", "tin_match"],
"mode": "cached"
}

Response

200

{
id: string
entity_id: string
overall_result: "pass" | "fail" | "error"
results: Array<{
check_type: string
status: "pass" | "fail" | "error"
confidence: number
origin: string
determinism: "deterministic" | "stochastic"
data_freshness_seconds: number
evidence_uri: string
}>
created_at: string
}

Example response

{
"id": "ver_01xyz...",
"entity_id": "ent_01abc...",
"overall_result": "pass",
"results": [
{
"check_type": "sam_registration",
"status": "pass",
"confidence": 0.99,
"origin": "sam_gov",
"determinism": "deterministic",
"data_freshness_seconds": 43200,
"evidence_uri": "s3://vendorval-evidence/ver_01xyz/sam_registration.json"
}
],
"created_at": "2026-04-19T12:00:00Z"
}

overall_result logic

Conditionoverall_result
All checks passpass
Any check failfail
Any check error, none failerror

Provider fallback

If a realtime provider throws (timeout, HTTP error, auth failure), the next provider in priority order is tried automatically. If a provider returns fail, fallback does not trigger — that result is final.