Human Pass DocsSandbox
DashboardCreate account
Menu

Scopes and claims

Everything Human Pass can put in an ID token, and what to ask for to get it.

Scopes

ScopeGives youNotes
openidsub, and previous_sub after a rotationRequired
personhoodverified_human, acrAlways ask for it
ageage_over_21Optional attribute
id_countryid_issuing_countryOptional attribute
id_stateid_issuing_subdivisionOptional attribute; only with id_country

There are no profile, email, phone or address scopes, by design.

Claims

ClaimTypeMeaning
substringThis person's ID in your project (up to 255 characters). More
previous_substringOnly for a while after a rotation: the ID you knew before. More
verified_humanbooleanAlways true: the person verified a government ID with a live face match, and has no other Human Pass for it.
acrstringurn:humanpass:acr:id-verified-dedup
age_over_21booleanIf agreed: 21 or over.
id_issuing_countrystringIf agreed: ISO 3166-1 alpha-2, e.g. US.
id_issuing_subdivisionstringIf agreed, with the country: ISO 3166-2, e.g. US-CA.

The same claims are available from the UserInfo endpoint, but you don't need it: they're all in the ID token, which also carries the standard iss, aud, exp, iat, nonce and auth_time.

Example ID token

The decoded payload, for a project with the age attribute, after the person agreed:

json
{
  "iss": "https://id.humanpass.co",
  "aud": "hp_live_…",
  "sub": "1.Ab3xQ9…",
  "verified_human": true,
  "acr": "urn:humanpass:acr:id-verified-dedup",
  "age_over_21": true,
  "nonce": "…",
  "auth_time": 1792450000,
  "iat": 1792450012,
  "exp": 1792450612
}

The Human Pass sandbox is live for demos and testing integrations; production is coming soon. Interfaces may still change; we'll give notice of anything that breaks an integration.

humanpass.co · Security overview · Privacy