Skip to main content
Humanity Protocol uses a granular scope model to control access to user data. Apps request scopes during OAuth authorization, and users grant or deny access. Scopes determine which presets and data fields your application can access.

Scope Hierarchy

Scopes are organized into two levels:
  1. Category scopes - Grant access to low/medium sensitivity fields in a category
  2. Field-level scopes - Required for high/critical sensitivity fields

Available Scopes

Category Scopes

Field-Level Scopes (High Sensitivity)

Profile Scopes

Preset to Scope Mapping

Each preset requires a specific scope. Here’s the mapping:

Identity Presets

KYC Presets

Financial Presets

Requesting Scopes

Request scopes during OAuth authorization:
Or in the raw authorization URL:

Scope Validation

When accessing presets or using the query engine, the API validates that:
  1. The access token has the required scope for the requested data
  2. The user has consented to share that data
  3. The credential is valid and not expired
If validation fails, you’ll receive an E4003 error:

Sensitivity Levels

Scopes align with data sensitivity levels:

Best Practices

  1. Request minimal scopes - Only request what you need
  2. Explain why - Use clear consent text explaining data usage
  3. Handle scope downgrade - Users may grant fewer scopes than requested
  4. Check granted_scopes - The token response includes actual granted scopes

Discovery

Fetch available scopes from the discovery endpoint:
The response includes scopes_supported and scopes_catalog with detailed metadata for each scope.