cURL
curl --request GET \
--url https://api.sandbox.humanity.org/v2/presetsimport requests
url = "https://api.sandbox.humanity.org/v2/presets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sandbox.humanity.org/v2/presets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.humanity.org/v2/presets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.humanity.org/v2/presets"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.humanity.org/v2/presets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.humanity.org/v2/presets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"presets": [
{
"name": "<unknown>",
"scope": "<unknown>",
"category": "<unknown>",
"description": "<string>",
"consentText": "<string>",
"type": "<unknown>",
"sensitivity": "<unknown>",
"derived": true,
"parentField": "<unknown>"
}
]
}Presets & Verification
Presets · List available
GET
/
presets
cURL
curl --request GET \
--url https://api.sandbox.humanity.org/v2/presetsimport requests
url = "https://api.sandbox.humanity.org/v2/presets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sandbox.humanity.org/v2/presets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.humanity.org/v2/presets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.humanity.org/v2/presets"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.humanity.org/v2/presets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.humanity.org/v2/presets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"presets": [
{
"name": "<unknown>",
"scope": "<unknown>",
"category": "<unknown>",
"description": "<string>",
"consentText": "<string>",
"type": "<unknown>",
"sensitivity": "<unknown>",
"derived": true,
"parentField": "<unknown>"
}
]
}SDK equivalent
const presets = await sdk.listPresets();
- Discover which presets are available in your environment
- Build dynamic consent UIs based on preset metadata
- Understand scope requirements for each preset
Response Structure
Each preset in the response includes:| Field | Description |
|---|---|
name | Preset identifier (e.g., is_human, age_over_21) |
scope | OAuth scope required to access this preset |
category | Grouping: identity, kyc, financial, profile |
description | Human-readable description |
consentText | Text shown to users during consent |
type | Data type: boolean, string, number, integer, date, datetime, array, enum |
sensitivity | Data sensitivity: low, medium, high, critical |
derived | Whether this preset is computed from another field |
parentField | For derived presets, the source field |
Example Response
{
"presets": [
{
"name": "is_human",
"scope": "identity:read",
"category": "identity",
"description": "True if passed a KYC check OR palm enrollment via mobile app or hardware",
"consentText": "Verify you are a real, unique person",
"type": "boolean",
"sensitivity": "medium",
"derived": false
},
{
"name": "age_over_21",
"scope": "identity:date_of_birth",
"category": "identity",
"description": "Whether user is ≥ 21",
"consentText": "Confirm you are 21 or older",
"type": "boolean",
"sensitivity": "low",
"derived": true,
"parentField": "date_of_birth"
}
]
}
Preset Categories
| Category | Description |
|---|---|
identity | Basic identity attributes, email, phone, wallet, country |
kyc | KYC verification status and document information |
financial | Net worth, bank balances, loan information |
profile | Bundled profile data like humanity_user |
Sensitivity Levels
| Level | Description | Example Presets |
|---|---|---|
low | Minimal privacy impact | age, humanity_score, social connections |
medium | Standard PII | is_human, country_of_residence, kyc_passed |
high | Sensitive PII requiring explicit consent | date_of_birth, legal_name, document_number |
critical | Highly sensitive financial/tax data | Tax IDs (when available) |
Response
200 - application/json
Show child attributes
Show child attributes
⌘I