Docs

Valyd · Active Identity™ Infrastructure

Identity, credentials, and agent authorization. One API.

Verify a human. Prove a credential. Authorize an agent to act on their behalf. Valyd handles the proof — you handle your product.

# Verify a clinician's license, live, in one call
curl https://api.valyd.id/v1/identity/verify \
  -H "Authorization: Bearer sk_test_4f8a..." \
  -H "Content-Type: application/json" \
  -d '{
    "person": "person_8YQz...",
    "checks": ["face_match", "license:nurse"],
    "context": "telehealth_session"
  }'

Four primitives

Same key, same SDK, same error model. Use one or all four.

Built for the way you ship

Test mode by default

Every account starts in test mode. Synthetic identities and licenses, predictable outcomes, zero PHI risk. Flip a flag for production — same endpoints, same SDKs.

Idempotency on everything

Pass an Idempotency-Key header on any state-changing request. Retries during network blips become safe by default — no double verifications, no duplicate approvals.

SDKs in 6 languages

TypeScript, Python, Go, Ruby, PHP, Java. Generated from our OpenAPI spec, typed end-to-end, versioned with the API. Or use any HTTP client.

Build with what you already know

If you've integrated Stripe, you already know how to integrate Valyd.

You know this from StripeValyd equivalentNotes
sk_test_ / sk_live_sk_test_ / sk_live_Same prefix convention. Hashed at rest, shown once.
customer.created webhookidentity.created webhookSame payload shape, same signing scheme.
Idempotency-Key headerIdempotency-Key headerRFC-compliant. 24-hour replay window.
stripe.customers.create()valyd.identity.create()Same builder pattern, typed responses.
Stripe Connect for marketplacesValyd Agents for AI workflowsDifferent domain, same delegation model.

Ship today

Your first verification in five minutes.

Sign up, grab a test key, copy a curl command, hit a real endpoint. No KYC for sandbox access, no sales call, no waiting.

# 1. Get a test key
$ valyd login
sk_test_4f8a3b2c1d9e7f6a...

# 2. Hit a real endpoint
$ valyd identity verify \
    --person nurse.active@valyd.test
{ "verified": true, ... }

# 3. Ship it