Get one site's usage
const url = 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/usage';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
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.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/usage \ --header 'x-api-key: <x-api-key>'One site’s usage rolled up per month (oldest → newest), plus the
current billing period’s metered usage against the per-app allowances.
Read from the billing ledger, so it stays accurate across configuration
changes. Prices live on GET /v1/billing (managers); this is just
consumption, so members and CMS keys can read it.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The site’s UUID.
Responses
Section titled “ Responses ”Monthly usage plus the current period’s allowance meters.
object
One month of crawl usage.
object
UTC billing period, YYYY-MM.
object
The current UTC billing period, YYYY-MM.
Pages crawled this period.
Pages rendered by the accessibility scan this period.
Uptime monitors currently configured on the site.
The per-site monthly allowances the meters run against.
object
Example
{ "byMonth": [ { "billing_period": "2026-06" } ]}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}No site with that id is visible to the caller.
object
A human-readable error message.
Example
{ "error": "site not found"}