List end users
curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/end-users \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/end-users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cdp.coinbase.com/platform/v2/end-users', 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.cdp.coinbase.com/platform/v2/end-users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.cdp.coinbase.com/platform/v2/end-users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cdp.coinbase.com/platform/v2/end-users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/end-users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"endUsers": [
{
"userId": "e051beeb-7163-4527-a5b6-35e301529ff2",
"authenticationMethods": [
{
"type": "email",
"email": "user@example.com"
},
{
"type": "sms",
"phoneNumber": "+12055555555"
},
{
"type": "jwt",
"sub": "e051beeb-7163-4527-a5b6-35e301529ff2",
"kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg"
},
{
"type": "google",
"sub": "115346410074741490243",
"email": "test.user@gmail.com"
},
{
"type": "telegram",
"id": 1223456,
"firstName": "Satoshi",
"lastName": "Nakamoto",
"photoUrl": "https://image.url/profile.jpg",
"authDate": 1770681412,
"username": "satoshinakamoto"
},
{
"type": "siwe",
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
}
],
"evmAccounts": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"evmAccountObjects": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"createdAt": "2025-01-15T11:00:00Z"
}
],
"evmSmartAccounts": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"evmSmartAccountObjects": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"ownerAddresses": [
"0x1234567890abcdef1234567890abcdef12345678",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
],
"createdAt": "2025-01-15T12:00:00Z"
}
],
"solanaAccounts": [
"HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT"
],
"solanaAccountObjects": [
{
"address": "HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"createdAt": "2025-01-15T11:30:00Z"
}
],
"createdAt": "2025-01-15T10:30:00Z",
"mfaMethods": {
"enrollmentPromptedAt": "2025-01-15T10:30:00Z",
"totp": {
"enrolledAt": "2025-01-15T10:30:00Z"
},
"sms": {
"enrolledAt": "2025-01-15T10:30:00Z"
}
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}{
"errorType": "invalid_request",
"errorMessage": "Invalid project ID."
}{
"errorType": "unauthorized",
"errorMessage": "The request is not properly authenticated."
}{
"errorType": "internal_server_error",
"errorMessage": "An internal server error occurred. Please try again later."
}{
"errorType": "bad_gateway",
"errorMessage": "Bad gateway. Please try again later."
}{
"errorType": "service_unavailable",
"errorMessage": "Service unavailable. Please try again later."
}End User Account Management
List end users
Lists the end users belonging to the developer’s CDP Project. By default, the response is sorted by creation date in ascending order and paginated to 20 users per page.
GET
/
v2
/
end-users
List end users
curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/end-users \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/end-users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cdp.coinbase.com/platform/v2/end-users', 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.cdp.coinbase.com/platform/v2/end-users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.cdp.coinbase.com/platform/v2/end-users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cdp.coinbase.com/platform/v2/end-users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/end-users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"endUsers": [
{
"userId": "e051beeb-7163-4527-a5b6-35e301529ff2",
"authenticationMethods": [
{
"type": "email",
"email": "user@example.com"
},
{
"type": "sms",
"phoneNumber": "+12055555555"
},
{
"type": "jwt",
"sub": "e051beeb-7163-4527-a5b6-35e301529ff2",
"kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg"
},
{
"type": "google",
"sub": "115346410074741490243",
"email": "test.user@gmail.com"
},
{
"type": "telegram",
"id": 1223456,
"firstName": "Satoshi",
"lastName": "Nakamoto",
"photoUrl": "https://image.url/profile.jpg",
"authDate": 1770681412,
"username": "satoshinakamoto"
},
{
"type": "siwe",
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
}
],
"evmAccounts": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"evmAccountObjects": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"createdAt": "2025-01-15T11:00:00Z"
}
],
"evmSmartAccounts": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"evmSmartAccountObjects": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"ownerAddresses": [
"0x1234567890abcdef1234567890abcdef12345678",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
],
"createdAt": "2025-01-15T12:00:00Z"
}
],
"solanaAccounts": [
"HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT"
],
"solanaAccountObjects": [
{
"address": "HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"createdAt": "2025-01-15T11:30:00Z"
}
],
"createdAt": "2025-01-15T10:30:00Z",
"mfaMethods": {
"enrollmentPromptedAt": "2025-01-15T10:30:00Z",
"totp": {
"enrolledAt": "2025-01-15T10:30:00Z"
},
"sms": {
"enrolledAt": "2025-01-15T10:30:00Z"
}
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}{
"errorType": "invalid_request",
"errorMessage": "Invalid project ID."
}{
"errorType": "unauthorized",
"errorMessage": "The request is not properly authenticated."
}{
"errorType": "internal_server_error",
"errorMessage": "An internal server error occurred. Please try again later."
}{
"errorType": "bad_gateway",
"errorMessage": "Bad gateway. Please try again later."
}{
"errorType": "service_unavailable",
"errorMessage": "Service unavailable. Please try again later."
}Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
Query Parameters
The number of end users to return per page.
Required range:
1 <= x <= 100The token for the desired page of end users. Will be empty if there are no more end users to fetch.
Sort end users. Defaults to ascending order (oldest first).
Available options:
createdAt=asc, createdAt=desc Was this page helpful?
⌘I