---
title: "Declare spending intent"
method: POST
path: "/v1/charge"
tags: ["budget"]
---

# Declare spending intent

`POST /v1/charge`

## Request

- Base URL: `https://agentlair.dev`
- URL: `https://agentlair.dev/v1/charge`
- Auth: HTTP bearer

Declare intent to spend. If within budget, records spend immediately and returns completed status. If over budget and on_limit=approve, creates an approval request (202). If over budget and on_limit=reject, returns 402.

## Request body

- object
  - `amount` integer, required: Amount in atomic USDC units (1,000,000 = 1.00 USDC)
  - `category` string: Spend category
  - `description` string: Human-readable description
  - `reference_id` string: External reference ID
  - `metadata` object: Arbitrary metadata stored with approval request

## Response `200`

Charge completed (within budget)

## Other responses

- `202`: Approval required (over budget, on_limit=approve)
- `401`: Unauthorized
- `402`: Budget exceeded (on_limit=reject)

---

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