API reference
Veteran Passport API
A small, signed surface: create a verification request, the veteran approves, you fetch a signed result with a consent receipt. Private preview — endpoints are illustrative of the design and not yet generally available.
Endpoints
- POST
/v1/verification_requestsCreate a verification request for a set of claims.
- GET
/v1/verification_requests/{id}Retrieve a verification request and its state.
- POST
/v1/verification_requests/{id}/cancelCancel a pending verification request.
- GET
/v1/results/{id}Fetch the signed result once the veteran has approved.
- GET
/v1/credentials/{passport_id}/statusCheck whether a credential is active, expired, or revoked.
- GET
/v1/audit_receipts/{id}Retrieve the immutable audit receipt for a verification.
- POST
/v1/webhooks/testSend a test event to your webhook endpoint.
Create a request
POST /v1/verification_requests
Authorization: Bearer sk_live_…
{
"claims": ["verified_veteran", "branch", "service_era"],
"purpose": "Veteran hiring preference",
"redirect_uri": "https://yourapp.com/verified"
}A signed result
{
"id": "vr_8Q2…",
"state": "approved",
"claims": {
"verified_veteran": true,
"branch": "U.S. Marine Corps",
"service_era": "Post-9/11"
},
"signed": true,
"consent_receipt": "rcpt_4F1…"
// SSN, DOB, address, documents are never returned
}Claims
The veteran approves exactly which of these you receive. Some require explicit consent; some can never be returned.
| Claim | Example | Consent |
|---|---|---|
verified_veteranVerified veteran | true | — |
branchBranch of service | "U.S. Marine Corps" | — |
service_eraService era | "Post-9/11" | — |
service_datesService dates | "2009-08" – "2017-06" | — |
discharge_statusDischarge status | "honorable" | — |
passport_idPassport ID | "RP-481042" | — |
verification_dateVerification date | "2026-06-22" | — |
disability_statusDisability status | "disabled" | Required |
Want keys?
The API is in private preview. Request early access and we'll set you up.
Request early access