Charges the purchased concurrency slots for the current month (UTC) straight away instead of waiting for the hourly billing run. The charge is idempotent per month: if the limit grew since the last charge, only the new slots are charged, and a repeat call in the same month charges nothing.
Request#
This endpoint takes no path, query or body parameters.
Example request#
curl -X POST https://api.tried.com.au/concurrency-billing/charge \
-H "Authorization: Bearer $TRIED_API_KEY"const res = await fetch("https://api.tried.com.au/concurrency-billing/charge", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const result = await res.json();import os, requests
res = requests.post(
"https://api.tried.com.au/concurrency-billing/charge",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
result = res.json()Response#
200 OK
{
"month": "2026-10",
"purchased": 10,
"charged_slots": 4,
"amount": 32
}| Field | Type | Description |
|---|---|---|
month |
string | Billing month in YYYY-MM form (UTC). |
purchased |
integer | Slots above the included concurrency. |
charged_slots |
integer | Slots charged by this call. 0 when the month is already paid for. |
amount |
number | AUD taken from the credit balance by this call (charged_slots * 12). 0 when nothing was charged. |
Errors#
| Status | When |
|---|---|
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request (this route needs the admin scope), or a dashboard user without the admin role calls it (Requires role: admin). |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.