---
title: "Read the spend limits"
method: POST
path: "/getAgentSpendLimit"
tags: ["Agent Wallet"]
---

# Read the spend limits

`POST /getAgentSpendLimit`

## Request

- Base URL: `https://laso.finance`
- URL: `https://laso.finance/getAgentSpendLimit`
- Auth: API key in header `Authorization`

Returns the account owner's two limits and where the rolling 24-hour window stands: `maxPerPaymentUsdc` with the `min`, `max`, and `default` bounds it can be set within, `maxPerDayUsdc`, what has been spent and is left of the 24 hours, and `maxPaymentNowUsdc`, the most one payment may cost right now. 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 `maxPaymentNowUsdc` **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.

## Request body

- object
  - `data` object, required
    - `userId` string, required: The Laso user id (the `usr_...` value from /auth). Must be your own.

## Response `200`

The current limits, their bounds, and the rolling window, in USDC.

- object
  - `result` object
    - `maxPerPaymentUsdc` number: The most a single payment may total, fees included.
    - `min` number: The lowest value the owner can set.
    - `max` number: The highest value the owner can set.
    - `default` number: The limit that applies when the owner has never set one.
    - `maxPerDayUsdc` number: The most everything the agent moves out may total across any rolling 24 hours: payments, wallet sends, and withdrawals together.
    - `spentLast24hUsdc` number: What has counted toward the 24-hour limit in the trailing 24 hours.
    - `remainingTodayUsdc` number: What is left of the 24-hour limit right now.
    - `maxPaymentNowUsdc` number: The most one payment may cost right now: the smaller of `maxPerPaymentUsdc` and `remainingTodayUsdc`. Check an amount against this, not against `maxPerPaymentUsdc` alone.
    - `nextReleaseAt` number, nullable: When the oldest outflow in the window stops counting, in ms since epoch. Null when nothing is counting.
    - `nextReleaseUsdc` number, nullable: How much allowance comes back at `nextReleaseAt`. Null when nothing is counting.

## Other responses

- `400`: A required field is missing or invalid.
- `401`: Missing, invalid, or expired Bearer token.
- `403`: `userId` is not the caller's own account.

## Changes

- **2026-10-19** `e83fa3f023fa`: 6 info
  - added the optional property `result/maxPaymentNowUsdc` to the response with the `200` status
  - added the optional property `result/maxPerDayUsdc` to the response with the `200` status
  - added the optional property `result/nextReleaseAt` to the response with the `200` status
  - added the optional property `result/nextReleaseUsdc` to the response with the `200` status
  - …2 more

[Operation history](https://skmtc.dev/laso/apis/laso-finance-x402-api/changes/getAgentSpendLimit/post.md)

---

[API](https://skmtc.dev/laso/apis/laso-finance-x402-api.md) · [All operations](https://skmtc.dev/laso/apis/laso-finance-x402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/laso/apis/laso-finance-x402-api/revisions/ff8ce20b49ba?raw)
