usage.threshold_reached
A call ends leaving 25% or less of the period’s allowance: the plan’s included minutes plus any extra minutes. Sent once per crossing, and not on a plan with no minute cap. When the same call also sends usage.extra_credits_low, this event is not sent for that crossing. Sent to the account’s webhooks and to the app of the partner that pays for the account; no other app receives it.
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”t=<unix seconds>,v1=<hex HMAC-SHA256>, the HMAC computed over <t>.<raw body> with the signing secret. During a secret rotation it carries one v1 per secret: accept the request if any matches.
The event type, as in type.
The event ID, as in id.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The event’s ID, evt_ and 32 hex characters. Equal to the X-Talki-Delivery header and unchanged on a redelivery: deduplicate on it.
When the event was written, ISO 8601 with a +00:00 offset, possibly with microseconds. Parse it as an instant.
The dated contract version data is shaped for: the endpoint’s version on a webhook, the app’s on an app event.
The Talki account the event happened on.
false for an event from a sandbox account.
object
Where the change came from: voice (the assistant, during a call), dashboard (a person in the Talki web or mobile app), api (a credential through the API) or system (a rule Talki applied on its own). New values may be added; treat one you do not recognise as unknown.
The event’s payload.
object
Seconds used in the current billing period, this call included: plan and extra minutes together.
Seconds included in the period, without extra minutes: the same figure as Usage.included_seconds.
Everything the account may spend in the period: included_seconds plus the extra seconds it held when the period began and any added since. Equal to included_seconds when it has none.
allowance_seconds minus used_seconds, never below 0.
used_seconds as a percentage of allowance_seconds, to one decimal place. Above 100 when a call ran past the allowance.
Extra seconds still unspent after this call; 0 when the account has none.
used_seconds rounded to the nearest whole minute. For display.
Minutes included in the period, without extra minutes: Usage.included_seconds in minutes.
remaining_seconds in whole minutes, rounded down. For display.
The same value as used_seconds.
The same value as included_seconds.
The same value as allowance_seconds.
The same value as remaining_seconds.
The same value as extra_seconds.
Example
{ "id": "evt_04d8e87897db4ecab459a456ea55e754", "type": "usage.threshold_reached", "created_at": "2026-09-22T15:04:06.218734+00:00", "api_version": "2026-10-01", "account_id": "f7e39b9a-1ac8-45e4-93da-2600f17cb286", "livemode": true, "origin": { "source": "voice", "credential_id": null, "idempotency_key": null }, "data": { "minutes_used": 271, "minutes_included": 300, "minutes_remaining": 89, "seconds_used": 16245, "seconds_included": 18000, "seconds_remaining": 5355, "extra_seconds_balance": 3600, "seconds_allowance": 21600, "percent_used": 75.2, "used_seconds": 16245, "included_seconds": 18000, "allowance_seconds": 21600, "remaining_seconds": 5355, "extra_seconds": 3600 }}Responses
Section titled “ Responses ”Any 2xx acknowledges the event. Any other status, a redirect, or no answer within 10 seconds is a failure and is retried; 410 disables a webhook endpoint at once.
