Update Account
curl --request PUT \
--url https://api.sandbox.verisoul.ai/account/{account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"id": "<string>",
"email": "<string>",
"phone": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"expected_countries": [
"<string>"
],
"metadata": {}
}
'import requests
url = "https://api.sandbox.verisoul.ai/account/{account_id}"
payload = {
"id": "<string>",
"email": "<string>",
"phone": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"expected_countries": ["<string>"],
"metadata": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
email: '<string>',
phone: '<string>',
first_name: '<string>',
last_name: '<string>',
username: '<string>',
expected_countries: ['<string>'],
metadata: {}
})
};
fetch('https://api.sandbox.verisoul.ai/account/{account_id}', 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.verisoul.ai/account/{account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'username' => '<string>',
'expected_countries' => [
'<string>'
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.verisoul.ai/account/{account_id}"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.sandbox.verisoul.ai/account/{account_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.verisoul.ai/account/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"project_id": "00000000-0000-0000-0000-000000000001",
"request_id": "e23cf3bd-7d33-440e-af9f-6d1d3182e2f9",
"account": {
"id": "john-doe",
"email": "johndoe.example@gmail.com",
"phone": "+14155550123",
"first_name": "John",
"last_name": "Doe",
"username": "john.doe",
"expected_countries": [
"US",
"CA"
],
"metadata": {},
"group": ""
},
"num_sessions": 1,
"first_seen": "2025-06-10T16:47:29.661079410Z",
"last_seen": "2025-06-10T16:47:29.661079410Z",
"last_session": "56f9a065-1583-48af-a5c4-cd5921b21a12",
"country": "US",
"countries": [
"US"
],
"decision": "Real",
"account_score": 0.9392,
"bot": 0,
"multiple_accounts": 0.2053,
"risk_signals": 1,
"accounts_linked": 2,
"lists": [
"us_users"
],
"unique_devices": {
"1_day": 1,
"7_day": 1
},
"unique_networks": {
"1_day": 1,
"7_day": 1
},
"email": {
"email": "johndoe.example@gmail.com",
"disposable": false,
"personal": true,
"valid": true,
"domain_type": "personal",
"email_score": 0,
"trust_signals": [
"email_age_greater_than_5_years",
"email_known_online_history"
],
"risk_signals": [
"email_alias"
],
"num_account_from_domain": 156
},
"risk_signal_average": {
"device_risk": 0.3971,
"proxy": 0,
"vpn": 0,
"tor": 0,
"spoofed_ip": 0,
"datacenter": 0,
"recent_fraud_ip": 0,
"impossible_travel": 0,
"device_network_mismatch": 0.0001,
"location_spoofing": 0
}
}{
"statusCode": 400,
"message": "Account not found"
}Authorizations
Path Parameters
ID of the account to update
Body
Account information to update
The account identifier
The email associated with the account
The phone number on file for the account in E.164 format (e.g. +14155550123)
32The account holder's first name
256The account holder's last name
256The username associated with the account
256Countries the account is expected to legitimately operate from, as ISO 3166-1 alpha-2 codes. A non-empty list replaces the stored list; an empty or omitted list leaves the stored list unchanged.
2Additional metadata about the account
Response
Updated account information
The ID of the project
The ID of the request
Show child attributes
Show child attributes
Number of sessions associated with this account
Timestamp when the account was first seen
Timestamp when the account was last seen
ID of the last session
Decision about the account authenticity
Overall account risk score
Bot detection score
Multiple accounts detection score
Risk signals score
Number of accounts linked to this account
Country code of the account
Lists the account belongs to
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request PUT \
--url https://api.sandbox.verisoul.ai/account/{account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"id": "<string>",
"email": "<string>",
"phone": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"expected_countries": [
"<string>"
],
"metadata": {}
}
'import requests
url = "https://api.sandbox.verisoul.ai/account/{account_id}"
payload = {
"id": "<string>",
"email": "<string>",
"phone": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"expected_countries": ["<string>"],
"metadata": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
email: '<string>',
phone: '<string>',
first_name: '<string>',
last_name: '<string>',
username: '<string>',
expected_countries: ['<string>'],
metadata: {}
})
};
fetch('https://api.sandbox.verisoul.ai/account/{account_id}', 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.verisoul.ai/account/{account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'username' => '<string>',
'expected_countries' => [
'<string>'
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.verisoul.ai/account/{account_id}"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.sandbox.verisoul.ai/account/{account_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.verisoul.ai/account/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"expected_countries\": [\n \"<string>\"\n ],\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"project_id": "00000000-0000-0000-0000-000000000001",
"request_id": "e23cf3bd-7d33-440e-af9f-6d1d3182e2f9",
"account": {
"id": "john-doe",
"email": "johndoe.example@gmail.com",
"phone": "+14155550123",
"first_name": "John",
"last_name": "Doe",
"username": "john.doe",
"expected_countries": [
"US",
"CA"
],
"metadata": {},
"group": ""
},
"num_sessions": 1,
"first_seen": "2025-06-10T16:47:29.661079410Z",
"last_seen": "2025-06-10T16:47:29.661079410Z",
"last_session": "56f9a065-1583-48af-a5c4-cd5921b21a12",
"country": "US",
"countries": [
"US"
],
"decision": "Real",
"account_score": 0.9392,
"bot": 0,
"multiple_accounts": 0.2053,
"risk_signals": 1,
"accounts_linked": 2,
"lists": [
"us_users"
],
"unique_devices": {
"1_day": 1,
"7_day": 1
},
"unique_networks": {
"1_day": 1,
"7_day": 1
},
"email": {
"email": "johndoe.example@gmail.com",
"disposable": false,
"personal": true,
"valid": true,
"domain_type": "personal",
"email_score": 0,
"trust_signals": [
"email_age_greater_than_5_years",
"email_known_online_history"
],
"risk_signals": [
"email_alias"
],
"num_account_from_domain": 156
},
"risk_signal_average": {
"device_risk": 0.3971,
"proxy": 0,
"vpn": 0,
"tor": 0,
"spoofed_ip": 0,
"datacenter": 0,
"recent_fraud_ip": 0,
"impossible_travel": 0,
"device_network_mismatch": 0.0001,
"location_spoofing": 0
}
}{
"statusCode": 400,
"message": "Account not found"
}