curl --request GET \
--url https://api.baselayer.com/issuance/identities/individuals \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/issuance/identities/individuals"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.baselayer.com/issuance/identities/individuals', 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.baselayer.com/issuance/identities/individuals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.baselayer.com/issuance/identities/individuals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.baselayer.com/issuance/identities/individuals")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/issuance/identities/individuals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"individual_ref": "<string>",
"display_name": "<string>",
"verification_state": "CURRENT",
"linked_business_count": 123,
"last_activity_at": "2023-11-07T05:31:56Z",
"credentials_minted_30d": 123,
"verified_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"verification_level": 123,
"active_keys": [
"<string>"
],
"businesses": [
{
"business_ref": "<string>",
"legal_name": "<string>",
"status": "VERIFIED"
}
]
}
]{
"type": "validation_failed",
"code": 7112,
"message": "The request is invalid.",
"metadata": {}
}List the individuals your organization has verified
Lists every individual your organization holds a prn_ reference for, most recent activity first by default: their current verification state, the businesses they operate under your coverage, and when they last saw activity. Filter by verification state, business link and verification date; search by reference, name, email or phone. Scoped to your own population — references issued by other organizations are not listed and are not searchable.
curl --request GET \
--url https://api.baselayer.com/issuance/identities/individuals \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/issuance/identities/individuals"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.baselayer.com/issuance/identities/individuals', 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.baselayer.com/issuance/identities/individuals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.baselayer.com/issuance/identities/individuals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.baselayer.com/issuance/identities/individuals")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/issuance/identities/individuals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"individual_ref": "<string>",
"display_name": "<string>",
"verification_state": "CURRENT",
"linked_business_count": 123,
"last_activity_at": "2023-11-07T05:31:56Z",
"credentials_minted_30d": 123,
"verified_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"verification_level": 123,
"active_keys": [
"<string>"
],
"businesses": [
{
"business_ref": "<string>",
"legal_name": "<string>",
"status": "VERIFIED"
}
]
}
]{
"type": "validation_failed",
"code": 7112,
"message": "The request is invalid.",
"metadata": {}
}Authorizations
Query Parameters
Maximum number of records to return in a single page. Must be between 1 and 1000.
1 <= x <= 1000Number of records to skip from the beginning. Use 0 for the first page. Cannot be used with cursor.
x >= 0Opaque pagination cursor token that identifies the position in the result set. Use the cursor from the previous response to get the next page. Cannot be used with offset.
last_activity, name (given then family name, ignoring case) or verified_at; ties break on when the snapshot was recorded, then its id. Defaults to last_activity desc.
What the people list sorts by.
last_activity, name, verified_at asc or desc, for every key of the sort. Defaults to the field's own: last_activity desc, name asc, verified_at desc.
asc, desc Only identities in this derived state: CURRENT or EXPIRED. SUPERSEDED never matches: the list carries one row per person — their current verification — and superseded snapshots are lineage, not population. Verification state of an identity, as seen by the referencing organization.
CURRENT: an unexpired verification exists and credentials can be minted. EXPIRED: the verification's validity window has lapsed — re-verify before minting. SUPERSEDED: no active verification record remains; a new submission is required.
CURRENT, EXPIRED, SUPERSEDED linked (a verified link to a business), link_request (a link awaiting your review) or none (no business, or only rejected links). Your organization's own links only.
The people list's business segments, read off the organization's own
operator links.
linked, link_request, none Only people whose current verification was recorded at or after this instant. Must carry a UTC offset.
Only people whose current verification was recorded before this instant (exclusive). Must carry a UTC offset.
A prn_ reference, or free text matched against name, email and phone. Every whitespace-separated term must match.
200Response
Paginated identities in the requested order, scoped to the calling organization.
This organization's pairwise reference to the individual.
The verified name, as the latest snapshot recorded it. Mask it in shared surfaces; the API returns what the organization itself submitted.
CURRENT, or EXPIRED (re-verify before minting). Derived from the snapshot's validity window, never stored.
CURRENT, EXPIRED, SUPERSEDED Businesses this organization covers a live operator link to for the individual; rejected links are not counted.
The latest of: verified or re-verified, a link confirmed or decided, an agent credential issued or revoked. Your organization's own activity only.
Credentials this organization minted for the individual in the last 30 days, counting business credentials it acted for.
When the latest verification was recorded.
When the latest verification expires.
Verification level derived from active_keys; null when the attested attributes are insufficient for any defined level.
Names of the individual verification checks the identity currently holds (e.g. phone_possession, ssn_identity_match), from the token-exchange profile's key vocabulary; verification_level is derived from them. A re-verification keeps an earlier phone_possession it cannot re-run.
Up to three of the businesses counted by linked_business_count: verified links first, then link requests, each oldest first.
Show child attributes
Show child attributes