---
title: "Record Billing Usage"
method: POST
path: "/v1/billing/record-usage"
tags: ["billing"]
---

# Record Billing Usage

`POST /v1/billing/record-usage`

## Headers

- `X-Kugel-License-Key` string, required
- `x-api-key` string, required

## Request body

- RecordBillingUsageRequest — One finished TTS generation — same fields as :class:`UsageReport`.
  - `org_id` integer, required
  - `model_id` string, required
  - `audio_seconds` number, required
  - `api_key_id` integer, nullable
  - `user_id` string, nullable
  - `char_count` integer, nullable
  - `ttfa_ms` number, nullable
  - `idempotency_key` string, nullable
  - `metadata` object

## Response `200`

Successful Response

- RecordBillingUsageResponse
  - `success` boolean, required
  - `cost_cents` number, nullable
  - `error` string, nullable
  - `currency` string

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-19** `80be973fad7d` — 1 info
  - added the new optional request property `idempotency_key`

[Change history](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/changes/v1/billing/record-usage/post.md)

---

[API](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api.md) · [All operations](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kugelaudio/kugelaudio-tts-api/revisions/3641a80cedbf/schema)
