curl --request POST \
--url https://laso.finance/getAgentSpendLimit \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e"
}
}
'import requests
url = "https://laso.finance/getAgentSpendLimit"
payload = { "data": { "userId": "usr_7aff81763cae58c936aa6de67dd5a95e" } }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({data: {userId: 'usr_7aff81763cae58c936aa6de67dd5a95e'}})
};
fetch('https://laso.finance/getAgentSpendLimit', 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://laso.finance/getAgentSpendLimit",
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([
'data' => [
'userId' => 'usr_7aff81763cae58c936aa6de67dd5a95e'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://laso.finance/getAgentSpendLimit"
payload := strings.NewReader("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.post("https://laso.finance/getAgentSpendLimit")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/getAgentSpendLimit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"maxPerPaymentUsdc": 1000,
"min": 1,
"max": 50000,
"default": 1000
}
}Read the per-payment spend limit
Returns the maximum the account owner allows for any single payment from the managed wallet: maxPerPaymentUsdc, plus the min, max, and default bounds it can be set within, all in whole USDC. The limit defaults to $1,000 and ranges from $1 to $50,000. It applies to every payment agentX402Pay makes, Laso routes and external url endpoints alike.
Check an amount against this before attempting a payment rather than waiting to be refused. Compare the fee-inclusive total, since fees are added on top of the amount you request. Read-only to an agent: only the account owner can change the limit, from the dashboard. If a payment would exceed it, do not split it into smaller payments. Stop and tell your human.
A Firebase callable. Callables wrap the request in {"data": ...} and the reply in {"result": ...}. Send the id_token from /auth as a Bearer token. Free.
curl --request POST \
--url https://laso.finance/getAgentSpendLimit \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e"
}
}
'import requests
url = "https://laso.finance/getAgentSpendLimit"
payload = { "data": { "userId": "usr_7aff81763cae58c936aa6de67dd5a95e" } }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({data: {userId: 'usr_7aff81763cae58c936aa6de67dd5a95e'}})
};
fetch('https://laso.finance/getAgentSpendLimit', 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://laso.finance/getAgentSpendLimit",
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([
'data' => [
'userId' => 'usr_7aff81763cae58c936aa6de67dd5a95e'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://laso.finance/getAgentSpendLimit"
payload := strings.NewReader("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.post("https://laso.finance/getAgentSpendLimit")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/getAgentSpendLimit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"maxPerPaymentUsdc": 1000,
"min": 1,
"max": 50000,
"default": 1000
}
}Authorizations
Firebase ID token from /auth or any paid route, sent as a Bearer token: Authorization: Bearer <id_token> (the Bearer prefix is required).
Body
Show child attributes
Show child attributes
Response
The current limit and its bounds, in whole USDC.
Show child attributes
Show child attributes
Was this page helpful?