Get service usage
const url = 'https://api.trueproxies.com/v1/services/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/usage';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.trueproxies.com/v1/services/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/usage \ --header 'Authorization: Bearer <token>'Traffic counters are bytes; GB balances are decimal gigabytes (1 GB = 1,000,000,000 bytes). Read last_updated_at and provider_observed_at for freshness. Provider balances are present for GB services.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Owned sub-customer UUID. Resellers only; reads require reseller:read and writes reseller:purchase in addition to the operation scope. X-Customer-Id header is an alternative. Not allowed for me, wallet, trial, API keys, or reseller-management routes.
Responses
Section titled “Responses”Ok
object
Bytes the proxy read from the client, which is the customer’s upload.
Bytes the proxy wrote back to the client, which is the customer’s download.
Traffic counted against the current allowance period. Lifetime totals remain in bytes_in and bytes_out.
Informational provider balance in decimal GB; billing uses node byte counters.
Informational provider balance in decimal GB; billing uses node byte counters.
Informational provider balance in decimal GB; billing uses node byte counters.
Next scheduled allowance reset; a past timestamp means confirmation is pending.
Start of the current confirmed allowance period, when applicable.
object
Compares the change in vendor balance with the change in node counters between two consecutive observations, hourly. baseline is the first observation for a service, which has no predecessor to compare with and therefore reports zero drift; it is not a statement that the two figures agree. Billing always uses the node counters.
Node allowance remaining, floored at zero.
Traffic packs in expiry order. Old traffic keeps its deadline; new traffic lasts 30 days.
object
Billing usage comes from durable, deduplicated node byte counters.
Example
{ "provider_usage_informational": true, "reconciliation": { "status": "baseline" }, "usage_source": "node"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}Error
object
What a client needs to act on the error (ids, flags), never display text.
object
Example
{ "code": "BAD_REQUEST"}