Docs

Identity

Verify, prove, and credential a human

Identity is one resource. KYC, biometric verification, professional licenses, and zero-knowledge attribute proofs all live on the Identity object.

Overview

You typically interact with Identity in three ways:

  • Retrieve the current state of a person you've already onboarded.
  • Verify a person at the moment of action — get a signed proof you can store as audit evidence.
  • Prove a specific attribute (age over 21, active license) without exposing the underlying data.

The Identity object

{
  "id": "person_8YQz2N3xK1pWvBtRf",
  "object": "person",
  "verified": true,
  "name": { "given": "Alex", "family": "Chen" },
  "face_match": { "score": 0.99, "liveness": "passed" },
  "licenses": [{
    "type": "nurse", "status": "active",
    "jurisdiction": "US-CA", "expires_at": "2027-06-30"
  }]
}
Privacy by default

Sensitive fields like date_of_birth aren't returned in plaintext. Use zero-knowledge proofs to answer specific questions without ever loading raw values.

Verify a person at the moment of action

const proof = await valyd.identity.verify({
  person: "person_8YQz...",
  checks: ["face_match", "liveness", "license:nurse"],
  context: "telehealth_session_8YQz"
}, { idempotencyKey: "telehealth_session_8YQz_open" });

if (!proof.passed) throw new VerificationFailed(proof.failed_checks);

Credentials and licenses

TypeCoverageRefresh cadence
nurseRN, LPN, NP — all 50 US states24h
physicianMD/DO — all 50 US states, DEA24h
cpr / bls / aclsAHA, ARC issued72h
cdlCommercial driver's license, DOT medical24h
pharmacistRPh — all 50 US states24h
therapistLCSW, LMFT, LPC — by state24h

Zero-knowledge proofs

Sometimes you don't need the data — you need the answer. ZK proofs let you ask "is this person 21?" and get a yes/no, signed and verifiable, without ever seeing the date of birth.

const proof = await valyd.identity.proofs.create({
  person: "person_8YQz...",
  claim: { type: "age_at_least", threshold: 21 }
});

Quick reference

GET/v1/identity/:id
POST/v1/identity/verify
GET/v1/identity/:id/licenses
POST/v1/identity/proofs

Request API access →