curl --request POST \
--url https://platform.spritz.finance/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": false,
"mobile": true
}
]
}
'import requests
url = "https://platform.spritz.finance/v1/users/me"
payload = {
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": False,
"mobile": True
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
timezone: 'America/New_York',
notificationPreferences: [{type: 'cardTransaction.approved', email: false, mobile: true}]
})
};
fetch('https://platform.spritz.finance/v1/users/me', 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://platform.spritz.finance/v1/users/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'timezone' => 'America/New_York',
'notificationPreferences' => [
[
'type' => 'cardTransaction.approved',
'email' => false,
'mobile' => true
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://platform.spritz.finance/v1/users/me"
payload := strings.NewReader("{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://platform.spritz.finance/v1/users/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.spritz.finance/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "6a9fee5c215e5530b3530e78",
"email": "user@example.com",
"firstName": "John",
"signedUpAt": "2026-09-08T11:15:40.932Z",
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": true,
"mobile": false
}
],
"verification": {
"status": "not_started",
"country": "US",
"requirement": {
"type": "identity_verification",
"status": "not_started",
"description": "Verify your identity to unlock payment features",
"actionUrl": "https://verify.example.com/start",
"retryable": true
}
},
"capabilities": [
{
"product": "fiat_to_crypto",
"name": "ACH Bank Transfer",
"description": "Buy crypto using ACH bank transfer",
"status": "active",
"requirements": [],
"method": "ach_credit",
"nextRequirement": "identity_verification"
}
]
}{
"title": "Unauthorized",
"status": 401,
"type": "urn:problem-type:auth:unauthorized",
"detail": "Bearer token required",
"instance": "<string>",
"realm": "API",
"scope": "read:users"
}{
"title": "<string>",
"status": 404,
"resourceType": "user",
"resourceId": "<string>",
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}{
"title": "Unauthorized",
"status": 400,
"type": "urn:problem-type:auth:unauthorized",
"detail": "<string>",
"instance": "/errors/1234567890",
"code": "transaction_limit",
"field": "amountUsd",
"retryable": true,
"retryAfter": 5,
"suggestedAction": "auto_ramp",
"clearsAt": "2023-11-07T05:31:56Z",
"availableAt": "2023-11-07T05:31:56Z",
"permanent": true
}Update the current authenticated user
Updates the authenticated user’s profile. Both fields are optional - include only what you want to change.
Updatable fields:
timezone: User’s timezone in IANA format (e.g., “America/New_York”)notificationPreferences: Array of notification preference updates
Partial updates for notification preferences:
The notificationPreferences array supports partial updates at two levels:
- Type-level: Only include notification types you want to modify. Types not included will keep their existing settings.
- Field-level: For each type included, you must provide both
emailandmobilefields, but only the values you provide will be applied.
Example - Update just one notification type:
{
"notificationPreferences": [
{ "type": "cardTransaction.approved", "email": false, "mobile": true }
]
}
This updates only “cardTransaction.approved” preferences; all other notification types remain unchanged.
Example - Update only timezone:
{
"timezone": "Europe/London"
}
curl --request POST \
--url https://platform.spritz.finance/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": false,
"mobile": true
}
]
}
'import requests
url = "https://platform.spritz.finance/v1/users/me"
payload = {
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": False,
"mobile": True
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
timezone: 'America/New_York',
notificationPreferences: [{type: 'cardTransaction.approved', email: false, mobile: true}]
})
};
fetch('https://platform.spritz.finance/v1/users/me', 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://platform.spritz.finance/v1/users/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'timezone' => 'America/New_York',
'notificationPreferences' => [
[
'type' => 'cardTransaction.approved',
'email' => false,
'mobile' => true
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://platform.spritz.finance/v1/users/me"
payload := strings.NewReader("{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://platform.spritz.finance/v1/users/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.spritz.finance/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"timezone\": \"America/New_York\",\n \"notificationPreferences\": [\n {\n \"type\": \"cardTransaction.approved\",\n \"email\": false,\n \"mobile\": true\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "6a9fee5c215e5530b3530e78",
"email": "user@example.com",
"firstName": "John",
"signedUpAt": "2026-09-08T11:15:40.932Z",
"timezone": "America/New_York",
"notificationPreferences": [
{
"type": "cardTransaction.approved",
"email": true,
"mobile": false
}
],
"verification": {
"status": "not_started",
"country": "US",
"requirement": {
"type": "identity_verification",
"status": "not_started",
"description": "Verify your identity to unlock payment features",
"actionUrl": "https://verify.example.com/start",
"retryable": true
}
},
"capabilities": [
{
"product": "fiat_to_crypto",
"name": "ACH Bank Transfer",
"description": "Buy crypto using ACH bank transfer",
"status": "active",
"requirements": [],
"method": "ach_credit",
"nextRequirement": "identity_verification"
}
]
}{
"title": "Unauthorized",
"status": 401,
"type": "urn:problem-type:auth:unauthorized",
"detail": "Bearer token required",
"instance": "<string>",
"realm": "API",
"scope": "read:users"
}{
"title": "<string>",
"status": 404,
"resourceType": "user",
"resourceId": "<string>",
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}{
"title": "Unauthorized",
"status": 400,
"type": "urn:problem-type:auth:unauthorized",
"detail": "<string>",
"instance": "/errors/1234567890",
"code": "transaction_limit",
"field": "amountUsd",
"retryable": true,
"retryAfter": 5,
"suggestedAction": "auto_ramp",
"clearsAt": "2023-11-07T05:31:56Z",
"availableAt": "2023-11-07T05:31:56Z",
"permanent": true
}Authorizations
User bearer credential: either a Cognito JWT or an ak_ user API key. Backend integrators using HMAC must include the user API key alongside the three HMAC headers on user-scoped endpoints.
Body
Request body for updating user profile. All fields are optional - include only the fields you want to update.
Request body for updating user profile. All fields are optional - include only the fields you want to update.
User's timezone in IANA format
"America/New_York"
Notification preferences to update. Supports partial updates: only include the notification types you want to change. For each type included, you can update just 'email', just 'mobile', or both fields. Notification types not included in this array will retain their existing settings.
Show child attributes
Show child attributes
[
{
"type": "cardTransaction.approved",
"email": false,
"mobile": true
}
]
Response
Response for status 200
Unique identifier for the user
"6a9fee5c215e5530b3530e78"
User's email address
"user@example.com"
User's first name
"John"
ISO 8601 timestamp of when the user was created
"2026-09-08T11:15:40.932Z"
User's timezone in IANA format
"America/New_York"
User's notification preferences by type
Show child attributes
Show child attributes
User's identity verification status and any pending requirements
Show child attributes
Show child attributes
User's available capabilities and their requirements
Show child attributes
Show child attributes