---
title: "Charge Token"
method: POST
path: "/api/v1/tokens/charge"
---

# Charge Token

`POST /api/v1/tokens/charge`

## Request

- Base URL: `https://api.skyfire.xyz`
- URL: `https://api.skyfire.xyz/api/v1/tokens/charge`
- Auth: API key in header `skyfire-api-key`

Charge a `pay` or `kya-pay` token as a seller agent or seller service.

## Request body

- object
  - `token` string, required: The complete, signed JWT string received from the buyer agent.
  - `chargeAmount` string: The amount to charge from the token. Required unless the seller service uses the `pay_per_use` pricing model, in which case Skyfire automatically charges the configured service price when omitted. Tokens may be charged multiple times until their balance is exhausted. When provided, `chargeAmount` must: - Be greater than 0 - Be less than or equal to the token's original `tokenAmount` - Be less than or equal to the token's remaining balance A charge that exceeds the remaining balance will fail.

## Response `200`

Ok

- object
  - `amountCharged` string: The amount successfully charged from the token.
  - `remainingBalance` string: The amount remaining on the token after the charge is processed.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required

## Changes

- **2026-11-03** `22cbec9d7630`: 1 breaking
  - request body became required

[Operation history](https://skmtc.dev/skyfire/apis/skyfire-agent-and-token-apis/changes/api/v1/tokens/charge/post.md)

---

[API](https://skmtc.dev/skyfire/apis/skyfire-agent-and-token-apis.md) - [All operations](https://skmtc.dev/skyfire/apis/skyfire-agent-and-token-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/skyfire/apis/skyfire-agent-and-token-apis/revisions/22cbec9d7630?raw)
