Get usage
/v1/account/usageThe spend log, newest first: one row per charged Run (its charge ledger entry). Top-ups and other credits are not spend and are not listed; the Balance itself is GET /v1/account/balance. Each row is { id, kind, amount_credits, balance_after_credits, created_at, run }; amount_credits is signed as stored (a charge is negative) and balance_after_credits is the Balance once it applied. run is { id, kind, status, charge_credits, list_price_credits, cached }, so list price against charged price can be audited per Run. total_charged_credits is every charge on the account, not just this page. Amounts are whole numbers of Credits.
Price
Free.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
limit | query | integermin 1; max 100 | Optional | 25 | Items per page. |
cursor | query | string | Optional | — | Opaque next_cursor from the previous page. |
Responses
200 OK
{ items, next_cursor, total_charged_credits }, one item per charge with the Run behind it.
object
itemsarray of objectrequiredidstringrequiredkindstringrequiredAlwayscharge: top-ups and other credits are not spend.amount_creditsintegerrequiredSigned as stored: a charge is negative.balance_after_creditsintegerrequiredcreated_atstringrequiredrunobjectrequirednullableidstringrequiredkindstringrequiredstatusstringrequiredcharge_creditsintegerrequiredlist_price_creditsintegerrequiredcachedbooleanrequired
next_cursorstringrequirednullabletotal_charged_creditsintegerrequiredEvery charge on the account, not just this page.
200 · `{ items, next_cursor, total_charged_credits }`, one item per charge with the Run behind it.
{
"items": [
{
"id": "led_71b0c93f4a",
"kind": "charge",
"amount_credits": -3,
"balance_after_credits": 42310,
"created_at": "2026-09-08T09:14:04.930Z",
"run": {
"id": "run_8f2c1ad04b",
"kind": "video_lookup",
"status": "completed",
"charge_credits": 3,
"list_price_credits": 3,
"cached": true
}
},
{
"id": "led_71b0c93e18",
"kind": "charge",
"amount_credits": -6,
"balance_after_credits": 42313,
"created_at": "2026-09-07T16:40:12.207Z",
"run": {
"id": "run_7d1e0bc3a2",
"kind": "creator_lookup",
"status": "completed",
"charge_credits": 6,
"list_price_credits": 6,
"cached": false
}
}
],
"next_cursor": null,
"total_charged_credits": 7689
}400 Bad Request
invalid_request for a limit out of range or a cursor this API did not issue.
object
RFC 9457 problem document, served as application/problem+json. Branch on code, never on the prose.
typestringrequiredtitlestringrequiredstatusintegerrequiredcodestringrequiredone ofmissing_authorization,invalid_key,key_revoked,invalid_token,organization_not_selected,organization_access_revoked,connection_revoked,forbidden,invalid_request,unsupported_platform,unsupported_kind,kind_deprecated,not_found,video_too_long,idempotency_conflict,run_not_ready,advertiser_ambiguous,insufficient_balance,rate_limit_exceeded,concurrency_limit_exceeded,tracker_limit_exceeded,webhook_limit_exceeded,webhook_rotation_in_progress,collection_limit_exceeded,collection_name_taken,collection_kind_mismatch,media_unavailable,vendor_error,source_unavailable,service_unavailable,internal_errorStable machine-readable code.detailstring
400 · Example
{
"type": "https://www.shortsintel.com/docs/reference/errors/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "`cursor` is not a cursor this API issued. Pass back the `next_cursor` from the previous page."
}401 Unauthorized
missing_authorization, invalid_key, key_revoked or invalid_token.
object
RFC 9457 problem document, served as application/problem+json. Branch on code, never on the prose.
typestringrequiredtitlestringrequiredstatusintegerrequiredcodestringrequiredone ofmissing_authorization,invalid_key,key_revoked,invalid_token,organization_not_selected,organization_access_revoked,connection_revoked,forbidden,invalid_request,unsupported_platform,unsupported_kind,kind_deprecated,not_found,video_too_long,idempotency_conflict,run_not_ready,advertiser_ambiguous,insufficient_balance,rate_limit_exceeded,concurrency_limit_exceeded,tracker_limit_exceeded,webhook_limit_exceeded,webhook_rotation_in_progress,collection_limit_exceeded,collection_name_taken,collection_kind_mismatch,media_unavailable,vendor_error,source_unavailable,service_unavailable,internal_errorStable machine-readable code.detailstring
401 · Example
{
"type": "https://www.shortsintel.com/docs/reference/errors/invalid_key",
"title": "Invalid key",
"status": 401,
"code": "invalid_key",
"detail": "That API key does not exist. Keys look like `sk_live_...` and are created in the console."
}Request samples
curl "https://www.shortsintel.com/v1/account/usage?limit=25" \
-H "Authorization: Bearer sk_live_YOUR_KEY"const response = await fetch(
"https://www.shortsintel.com/v1/account/usage?limit=25",
{
method: "GET",
headers: {
"Authorization": "Bearer sk_live_YOUR_KEY",
},
},
);
if (!response.ok) {
throw new Error(`ShortsIntel ${response.status}`);
}
const data = await response.json();import requests
response = requests.get(
"https://www.shortsintel.com/v1/account/usage?limit=25",
headers={
"Authorization": "Bearer sk_live_YOUR_KEY",
},
)
response.raise_for_status()
data = response.json()Related guides
- Pagination: Following
next_cursorthrough a list.