API Reference / Account
List your usage
GET/v1/usage
Lists your detection, enrollment and verification requests with their outcome and the credits they used, newest first. Filter by operation or status; page with limit and cursor. Requires scope usage:read.
Authentication
Send your API key as Authorization: Bearer <your API key>.
Headers
| Name | Type | Details |
|---|---|---|
Authorizationrequired | string |
|
Query parameters
| Name | Type | Details |
|---|---|---|
limitoptional | integer | How many entries to return (1-100). 1 to 100default |
cursoroptional | string or null |
at most 256 characters |
operationoptional | string or null | Only this kind of request. |
statusoptional | string or null | Only requests with this outcome. |
Response
200 Success.
request_idstringrequiredobjectstringrequiredalways
"list"dataarray of objectrequired12 fields in
dataidstringrequiredoperation_idstring or nullrequiredtypestringrequiredOne of:
deepfake.detect,speaker.enroll,speaker.verifysourcestringrequiredOne of:
api,dashboard,mcpstatusstringrequiredOne of:
succeeded,rejected,failed,replayedhttp_statusintegerrequirederror_codestring or nullrequiredcredits_chargedintegerrequiredduration_secondsnumber or nullrequiredlatency_msnumber or nullrequiredrequest_idstringrequiredcreated_atstringrequired
has_morebooleanrequirednext_cursorstring or nullrequired
Example response
{
"request_id": "req_8f14e45fceea167a5a36dedd",
"object": "list",
"data": [
{
"id": "use_812",
"operation_id": "op_6f1ed002ab5595859014ebf0951522d9",
"type": "deepfake.detect",
"source": "api",
"status": "succeeded",
"http_status": 200,
"duration_seconds": 6.4,
"request_id": "req_8f14e45fceea167a5a36dedd",
"created_at": "2026-10-13T09:30:00Z"
}
],
"has_more": true,
"next_cursor": "eyJ0IjoiMjAyNi0xMC0xM1QwOTozMDowMFoiLCJpIjo4MTJ9"
}Errors
| Status | Meaning |
|---|---|
| 400 | The request is invalid, for example a missing or malformed field. |
| 401 | The API key is missing, invalid or revoked. |
| 403 | The key lacks the required scope, the email address is not verified, or the account is suspended. |
| 429 | Too many requests or too many operations at the same time. Wait for the number of seconds in Retry-After. |
| 500 | Something went wrong on our side. No credits were used. |
Error bodies share one shape with a stable error.code; see Errors for every code and how to fix it.
Code samples
curl "https://platform.detectif.ai/v1/usage" \
-H "Authorization: Bearer $DETECTIF_API_KEY"import os
import requests
resp = requests.get(
"https://platform.detectif.ai/v1/usage",
headers={"Authorization": f"Bearer {os.environ['DETECTIF_API_KEY']}"},
timeout=30,
)
print(resp.status_code, resp.json())const res = await fetch("https://platform.detectif.ai/v1/usage", {
headers: {
Authorization: `Bearer ${process.env.DETECTIF_API_KEY}`,
},
});
console.log(res.status, await res.json());