curl --request GET \
--url https://api.protoface.com/v1/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.protoface.com/v1/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.protoface.com/v1/usage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"billable_seconds": 14280,
"by_billing_surface": {
"api": 180,
"playground": 58
},
"by_model": {
"lightricks/ltx-2.5-fast": 58,
"minimax/minimax-h3": 180
},
"by_quality": {
"pro": 2280,
"standard": 12000
},
"by_speech_billing_mode": {
"customer_managed": 180,
"platform_managed": 58
},
"credits_charged": 238,
"daily_credits_by_billing_surface": {
"2026-05-24": {
"api": 180
},
"2026-05-25": {
"playground": 58
}
},
"period_end": "2026-05-25T19:00:00Z",
"period_start": "2026-05-01T00:00:00Z",
"sessions": 42
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}Get usage summary
Return aggregated usage for the calling org over a time range.
Pass either period=current_month (or previous_month) for convenience, or an explicit period_start / period_end pair. The two modes are mutually exclusive.
curl --request GET \
--url https://api.protoface.com/v1/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.protoface.com/v1/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.protoface.com/v1/usage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"billable_seconds": 14280,
"by_billing_surface": {
"api": 180,
"playground": 58
},
"by_model": {
"lightricks/ltx-2.5-fast": 58,
"minimax/minimax-h3": 180
},
"by_quality": {
"pro": 2280,
"standard": 12000
},
"by_speech_billing_mode": {
"customer_managed": 180,
"platform_managed": 58
},
"credits_charged": 238,
"daily_credits_by_billing_surface": {
"2026-05-24": {
"api": 180
},
"2026-05-25": {
"playground": 58
}
},
"period_end": "2026-05-25T19:00:00Z",
"period_start": "2026-05-01T00:00:00Z",
"sessions": 42
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}{
"error": {
"code": "transport.unsupported",
"message": "transport.type=pipecat is not supported",
"param": "transport.type",
"request_id": "req_01HXY5K8E7QYG3X8Z6N9R7S0VR",
"type": "invalid_request"
}
}Authorizations
Live API key minted in the dashboard. Pass as Authorization: Bearer sk_live_…. Keys are scoped to a single environment (staging / prod).
Query Parameters
Convenience period selector; mutually exclusive with explicit range.
current_month, previous_month ISO-8601 UTC. Must be paired with period_end.
ISO-8601 UTC. Must be paired with period_start.
IANA timezone for daily credit buckets.
64Response
Successful Response
Aggregated usage; returned by GET /v1/usage.
Total billable seconds across all sessions in the window.
x >= 0Exclusive end of the aggregated window. Matches the period_end query argument.
Inclusive start of the aggregated window. Matches the period_start query argument.
Number of sessions that contributed usage in the window.
x >= 0credits_charged per billing surface.
Show child attributes
Show child attributes
Embed-attributed usage, ordered by credits then time.
Show child attributes
Show child attributes
credits_charged per model identifier, across every charge in the window. Charges that are not attributed to a model are omitted, as are charges for internal models that are not offered as customer-facing models, so these values intentionally do not sum to credits_charged. Unlike recent_charges, this covers the whole window rather than the most recent settled charges.
Show child attributes
Show child attributes
credits_charged per durable billable operation identifier.
Show child attributes
Show child attributes
billable_seconds per quality tier. Forward-compatible breakdown — additional by_* slices may appear over time.
Show child attributes
Show child attributes
credits_charged per speech billing mode.
Show child attributes
Show child attributes
Total credits charged across all usage events in the window.
x >= 0credits_charged per requested timezone day and billing surface. Keys use YYYY-MM-DD.
Show child attributes
Show child attributes
Most recent settled model and Studio charges in the requested window.
Show child attributes
Show child attributes

