Skip to main content

POST /v1/entities/lookup

Resolve an entity from any combination of identifiers. Read-only — never creates entities.

Request

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

Body

{
identifiers?: Array<{
type: "uei" | "tin" | "duns" | "cage"
value: string
}>
legal_name?: string
address?: string
mode?: "exact" | "fuzzy" // default: "exact"
}

At least one of identifiers, legal_name, or address is required.

Example

{
"identifiers": [
{ "type": "uei", "value": "ABCD12345678" },
{ "type": "tin", "value": "12-3456789" }
],
"legal_name": "Acme Federal Services LLC"
}

Response

200 — Match found

{
id: string
legal_name: string
identifiers: Record<string, string> // TIN masked as ****{last4}
sam_gov: {
registration_status: "active" | "inactive" | "expired" | "debarred"
cage?: string
expiration_date?: string
entity_type?: string
}
addresses: Array<{
type: "physical" | "mailing"
line1: string
line2?: string
city: string
state: string
zip: string
country: string
}>
confidence: number // 0–1
sources: Array<{
name: string
retrieved_at: string // ISO 8601
version?: string
}>
}

404 — No match

{
"error": "entity_not_found",
"message": "No entity matched the provided identifiers."
}

Fuzzy mode — Multiple candidates

{
candidates: Array<{
id: string
legal_name: string
confidence: number
}>
}

Error codes

StatusErrorMeaning
400invalid_requestMissing required fields or invalid identifier type
401unauthorizedInvalid or missing API key
404entity_not_foundNo match found
429rate_limitedToo many requests
500internal_errorServer error