SDK OAuth Scopes and Presets
Configure what user data your app can access using OAuth scopes. Complete list available presets including identity, KYC, financial, and social data.
Working with sandbox?. Create your credentials for testing directly from the Dashboard
OAuth Scopes
Scopes control what data your application can request from users. When a user authorizes your app, they consent to sharing data covered by the requested scopes.
Scope Model
Category scopes (e.g.,
identity:read) grant access to all low/medium sensitivity presets in that categoryField-level scopes (e.g.,
identity:date_of_birth) are required for high/critical sensitivity presetsDerived fields are automatically available when the parent field scope is granted
Available Scopes
Core Scopes
openid
Required for OpenID Connect flows
profile.full
Access to full Humanity profile
Identity Scopes
identity:read
Low/Medium
Access to basic identity presets (email, phone, is_human, etc.)
identity:date_of_birth
High
Access to date of birth and age-related presets
identity:legal_name
High
Access to legal name
identity:address_postal_code
High
Access to postal/ZIP code
identity:address_full
High
Access to full verified address
KYC Scopes
kyc:read
Low/Medium
Access to KYC status and document metadata
kyc:document_number
High
Access to ID document number
Financial Scopes
financial:net_worth
High
Access to net worth data and thresholds
financial:bank_balance
High
Access to bank balance totals
financial:loan_balance
High
Access to loan balance totals
Presets by Scope
Preset availability within each scope, across sandbox and production. ✅ available · ❌ not yet available.
identity:read
Grants access to basic identity verification presets.
humanity_uuid
string
User’s Humanity unique identifier
✅
✅
humanity_score
number
Confidence score for human verification
✅
✅
is_human
boolean
Whether user passed palm/vein verification
✅
✅
country_of_residence
string
Country of residence (ISO 3166-1 alpha-2)
✅
✅
nationality
string
Country of citizenship (ISO 3166-1 alpha-2)
✅
✅
residency_region
string
Region bucket (EU, APAC, NA, LATAM, OTHER)
✅
✅
email
string
Verified primary email address
✅
✅
phone
string
Verified primary phone (E.164 format)
✅
✅
social_accounts
array
Linked social account identifiers
✅
✅
primary_wallet_address
string
Primary wallet address
✅
✅
palm_verified
boolean
Whether user completed palm verification
✅
✅
proof_of_residency
boolean
Whether residency is verified
✅
✅
identity:date_of_birth
Grants access to date of birth and derived age presets.
date_of_birth
date
Full date of birth (YYYY-MM-DD)
✅
❌
age
integer
User’s current age
✅
❌
is_18_plus
boolean
Whether user is 18 or older
✅
❌
is_21_plus
boolean
Whether user is 21 or older
✅
❌
identity:legal_name
legal_name
string
Full legal name from identity verification
❌
❌
identity:address_postal_code
address_postal_code
string
Postal/ZIP code
❌
❌
identity:address_full
address_full
string
Full verified address
❌
❌
kyc:read
Grants access to KYC verification status and document metadata.
kyc_passed
boolean
Overall KYC verification status
✅
✅
kyc_last_updated_at
datetime
Timestamp of last KYC update
✅
✅
document_country
string
Issuing country of identity document
❌
❌
document_expiry_date
date
Document expiration date
❌
❌
kyc:document_number
document_number
string
ID document number (sensitive)
❌
❌
financial:net_worth
Grants access to net worth data and verification.
net_worth_total
number
Total net worth (USD)
✅
✅
net_worth_above_10k
boolean
Whether net worth exceeds $10,000
✅
✅
net_worth_above_100k
boolean
Whether net worth exceeds $100,000
✅
✅
proof_of_assets
boolean
Whether user has verified assets
✅
✅
proof_of_investments
boolean
Whether user has verified investments
✅
✅
proof_of_retirement
boolean
Whether user has verified retirement savings
✅
✅
financial:bank_balance
bank_balance_total
number
Total bank balance (USD)
❌
❌
financial:loan_balance
loan_balance_total
number
Total loan balance (USD)
❌
❌
proof_of_mortgage
boolean
Whether user has verified mortgage
❌
❌
profile.full
humanity_user
string[]
Full Humanity profile access
✅
✅
Example Scope Requests
Minimal - Human Verification Only
Grants access to: is_human, humanity_uuid, email, phone, etc.
Age Verification (21+)
Grants access to: age_over_21, age_over_18, age, date_of_birth
Full Identity Profile
Grants access to all identity presets including age and legal name.
KYC Verification
Grants access to: kyc_passed, document_country, document_expiry_date
Financial Verification
Grants access to: net_worth_total, net_worth_above_10k, net_worth_above_100k
Comprehensive Access
Grants access to identity, age, KYC status, and net worth presets.
Preset Queries
All presets are defined as declarative queries evaluated by the query engine.
Identity Presets
humanity_uuid
humanity_score
is_human
country_of_residence
age
address_postal_code
legal_name
residency_region
age_over_18
nationality
address_full
date_of_birth
email
phone
age_over_21
social_accounts
wallet_addresses
primary_wallet_address
palm_verified
KYC Presets
kyc_passed
kyc_last_updated_at
document_number
document_country
document_expiry_date
Financial Presets
net_worth_above_10k
net_worth_above_100k
net_worth_total
bank_balance_total
loan_balance_total
Legacy/Compound Presets
humanity_user
proof_of_assets
proof_of_investments
proof_of_mortgage
proof_of_residency
proof_of_retirement
Query Operators
get
Returns the claim value if present (used for data retrieval presets)
exists
Passes if claim value is present (not null/undefined)
==
Strict equality comparison
!=
Not equals comparison
>
Greater than (numeric)
>=
Greater than or equal (numeric)
<
Less than (numeric)
<=
Less than or equal (numeric)
in
Value is in the provided array
notIn
Value is not in the provided array
contains
String/array contains the expected value
startsWith
String starts with the expected prefix
regex
Value matches the regex pattern
Notes
Scope Requirements: Your application’s
allowedScopesmust include any scope you request. Configure this in the developer dashboard.User Consent: Users must explicitly approve each scope category during authorization.
getvsexists: Usegetwhen you need the actual value (e.g., email, phone). Useexistsfor presence checks in compound queries.Claim Normalization: The ClaimResolver normalizes incoming claim values to canonical types before evaluation.
Query Evaluation: All presets are evaluated by the QueryEngineService using credentials from the user’s context.
Claim Paths (Advanced)
Presets are built on top of a set of verified data points called claim paths.
Claim paths represent attributes that Humanity can evaluate against a user’s credentials, such as identity signals, KYC status, financial indicators, or connected accounts. Most integrations do not need to work with claim paths directly.
Presets provide a stable, opinionated way to request common checks (for example, is_human or is_21_plus) without dealing with underlying data structures.
For advanced use cases—such as composing more granular policies or understanding what data powers a preset—you can explore the full list of available claim paths in the Developer Dashboard.
Last updated