Programmatic SDK Usage API
Retrieve your team's SDK usage for a specific product in machine-readable format. The API returns usage in minutes per day and per API key over any date range.
Endpoint Configuration
Host: https://api.developers.krisp.ai/
GET /v2/sdk/usage
GET /v2/sdk/usageRetrieves your team's SDK usage for a specific product over a date range. The response includes the total minutes and a breakdown by day and API key.
Authentication
Use the Authorization header with your API key:
Authorization: api-key YOUR_KEY
Use the api-key scheme.
Accepted keys: license keys, while valid (not paused, suspended, archived, or expired).
Not accepted: session tokens.
Scope: any accepted key returns the usage of its whole team (all of the team's keys), not only its own.
Request Parameters
Query Parameters
| Parameter | Required | Description |
|---|---|---|
product | Yes | One of: nc (Noise Cancellation), tt (Turn-Taking), ac (Accent Conversion), vad (Voice Activity Detection), vt (Voice Translation), tts (TTS Detection, not text-to-speech), sv (Studio Voice), ip (Interrupt Prediction). Lowercase; one value per request. |
from | No | Start date, inclusive, in YYYY-MM-DD format. Default: 29 days before to, so the default range is the last 30 days including to. |
to | No | End date, inclusive, in YYYY-MM-DD format. Default: today (UTC). |
Rules:
productis case-sensitive and lowercase only (NCreturns a 400 error).tomust be on or afterfrom.- Maximum 366 days per request. For longer history, make consecutive requests with non-overlapping ranges.
Example Request
curl --location 'https://api.developers.krisp.ai/v2/sdk/usage?product=nc&from=2026-09-01&to=2026-09-30' \
--header 'Authorization: api-key YOUR_KEY'Response Structure
Example Response
{
"code": 0,
"message": "Success",
"data": {
"product": "nc",
"unit": "minutes",
"from": "2026-09-01",
"to": "2026-09-30",
"total": 495.75,
"records": [
{
"date": "2026-09-01",
"key_name": "prod-backend",
"minutes": 180.5
},
{
"date": "2026-09-02",
"key_name": "prod-backend",
"minutes": 195.25
},
{
"date": "2026-09-02",
"key_name": "staging-backend",
"minutes": 120.0
}
]
},
"req_id": "3f1c9a52-a41f-4e8b-8c12-example"
}Response Object Attributes
| Field | Type | Description |
|---|---|---|
data.product | String | The requested product name. |
data.unit | String | Always minutes, for every product. |
data.from | String | The inclusive start date (after applying defaults). |
data.to | String | The inclusive end date (after applying defaults). |
data.total | Number | Total minutes for the whole range, rounded to 2 decimals. Computed from unrounded values, so may differ from the sum of rounded records by a few hundredths. |
data.records | Array | Breakdown by day and API key. One entry per day and key that had usage, sorted by date then key name. Empty array if no usage in the range. |
records[].date | String | Date in YYYY-MM-DD format. |
records[].key_name | String | The API key's name as shown in the dashboard. |
records[].minutes | Number | Minutes processed that day with that key, rounded to 2 decimals. |
req_id | String | Unique request identifier. |
No usage in the range returns HTTP 200 with "records": [] and "total": 0.
Error Responses
| HTTP Status | Error Code | When | Fix |
|---|---|---|---|
| 400 | VALIDATION_ERROR | Missing or unknown product; invalid date format; to before from; range exceeds 366 days. details specifies which field is invalid. | Correct the request. |
| 401 | AUTH_HEADER_MISSING | Missing Authorization: api-key … header. | Add the header. |
| 401 | AUTH_API_KEY_INVALID | Unknown, paused, suspended, or archived key; or a session token. | Use a valid, active license key. |
| 401 | AUTH_API_KEY_EXPIRED | Expired key. | Rotate to an active key. |
| 403 | AUTH_API_KEY_TYPE_NOT_ALLOWED | Playground key used. | Use a license key. |
| 429 | TOO_MANY_REQUESTS | Rate limit exceeded. | Retry after the Retry-After header value (in seconds). |
| 502 | USAGE_METRICS_UNAVAILABLE | Usage backend temporarily unavailable. | Retry with backoff. |
| 500 | INTERNAL_SERVER_ERROR | Unexpected server error. | Retry later. |
Example Error Response
{
"code": 1016,
"error_code": "VALIDATION_ERROR",
"message": "Something went wrong.",
"message_code": "3f1c9a52",
"situation": "Happens when api receives inputs from client that are unexpected or wrong",
"req_id": "3f1c9a52-a41f-4e8b-8c12-example",
"details": {
"details": "The date range cannot be longer than 366 days"
}
}Rate Limits and Caching
Rate limit: 200 requests per 15 minutes per API key.
Headers: All successful responses include RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. A 429 response adds a Retry-After header with the number of seconds to wait.
Caching: Results can be up to 10 minutes old.
Notes
This API returns usage only: minutes of usage, not cost or consumed credits.
The API does not return:
- Prices, cost, or credits.
- Session counts.
- Custom tags or labels.
To split usage across your own groups (environment, workload, region), use a separate API key per group — usage is reported per key.
Updated about 15 hours ago
