Table of Contents

API : AI quota : Status

Introduction

This request returns a customer's AI allowance for the current calendar month: the AI product in effect, a pending product change, and for each of the three metered resources the included amount, what top-ups have added, what has been used and what is left.

Three resources are metered, each with its own monthly allowance:

An included amount of null means unlimited, 0 means the resource may not be used at all. When a resource is used up, further requests of that kind are refused with 402 quota_exceeded until the next month or until an AI top-up is bought. A customer with no AI product at all may not use any AI service.

The month is a calendar month in the Europe/Copenhagen timezone, formatted YYYY-MM. In the month the AI product took effect, the included amounts are pro-rated from that date using the same fraction of a month that the first invoice line is calculated with.

Only requests that completed (SUCCESS) or that the client hung up on (ABORTED) are counted - the provider did the work in both cases. Requests that failed or timed out are not counted. The request that crosses the limit still runs; the next one is refused.

Request

URL https://api.telecomx.dk/ai/quota
Method GET
Access level MANAGER, OWNER for the user's own customer.
RESELLER, RESELLER_ADMIN or ADMIN, who may also name another customer with customer.
Query customer [optional] Id of the customer to show. Only honoured for RESELLER and up, and access to the customer is checked. Defaults to the user's own customer.

Query examples

https://api.telecomx.dk/ai/quota
https://api.telecomx.dk/ai/quota?customer=650000000000000000000101

Response

JSON object
customer Id Id of the customer the numbers belong to.
month String The calendar month covered, YYYY-MM in Europe/Copenhagen.
from Date When the AI product in effect took effect. Null when the customer has no AI product.
product Object The AI product in effect. Null when the customer has no AI product - every AI request is then refused.
product._id Id Id of the product (the reseller copy or customer copy the customer is on).
product.name String Product name.
product.llmModel String The LLM used for AI summaries of this customer's recordings: claude-opus-5, claude-sonnet-5 or claude-haiku-4-5. Set on the master product.
product.sttModel String The speech-to-text model used for this customer's transcriptions: scribe_v2. Set on the master product.
pendingChange Object A product change that takes effect at the start of next month. Null when no change is pending.
pendingChange.product Object The product that takes over ({_id, name, llmModel, sttModel}). Null when the AI product is being removed.
pendingChange.from Date When the change takes effect - always the 1st of a month.
resources Object One entry per resource. Keys: stt (transcription seconds), llm (summary tokens) and tts (text-to-speech characters).
resources.*.included Number The amount included this month, after pro-rata. Null = unlimited.
resources.*.topUp Number The amount added by top-up purchases this month.
resources.*.limit Number included + topUp - the amount that may be used this month. Null = unlimited.
resources.*.used Number The amount consumed this month.
resources.*.remaining Number limit - used, never below 0. Null = unlimited.
resources.*.unlimited Boolean True when the resource has no limit.
resources.*.requests Number The number of counted requests for the resource this month.
resources.tts.audioSeconds Number Only on tts: seconds of audio generated this month. Reported, not limited.

Note that properties holding no value may be omitted from the object.

Example

{
  "customer": "650000000000000000000101",
  "month": "2026-09",
  "from": "2026-09-15T00:00:00.000Z",
  "product": {
    "_id": "650000000000000000000410",
    "name": "AI Business",
    "llmModel": "claude-sonnet-5",
    "sttModel": "scribe_v2"
  },
  "pendingChange": {
    "product": { "_id": "650000000000000000000411", "name": "AI Enterprise", "llmModel": "claude-opus-5", "sttModel": "scribe_v2" },
    "from": "2026-10-01T00:00:00.000Z"
  },
  "resources": {
    "stt": { "included": 18720, "topUp": 18000, "limit": 36720, "used": 21044, "remaining": 15676, "unlimited": false, "requests": 312 },
    "llm": { "included": 1040000, "topUp": 0, "limit": 1040000, "used": 1039880, "remaining": 120, "unlimited": false, "requests": 287 },
    "tts": { "included": null, "topUp": 0, "limit": null, "used": 54210, "remaining": null, "unlimited": true, "requests": 96 }
  }
}

Errors

Error code Message Description
422 customer Customer id is invalid
403 access_denied Insufficient access level, or no access to the customer
500 internal_error <Unspecified>