Conventions¶
Requests¶
The base URL for Breqwatr Cloud is https://dashboard.breqwatr.cloud/api/v1. Requests go over HTTPS, and request bodies are JSON with Content-Type: application/json.
Single resources and lists¶
A single resource is wrapped in data:
A list adds a cursor, as Pagination explains:
Ids¶
Most ids are UUIDs. A region is identified by its Keystone region id, such as yul1, the same value the OpenStack catalogue uses. If a region is renamed, its old id still works in a request and responses carry the new one.
Money¶
Money is an integer in minor units (cents), so 11300 in CAD is $113.00. Invoices and usage carry a currency alongside their amounts.
tax_rate is the exception, because it's a rate rather than an amount: a decimal string, such as "0.1300".
Dates and times¶
Timestamps are ISO 8601 in UTC, such as 2026-09-14T15:04:05Z. Date-only fields, such as an invoice's due_date, are YYYY-MM-DD. An invoice's billing_period is YYYY-MM.
Language¶
Error title and detail follow the language set on the key owner's account, then the Accept-Language header. English and Canadian French are available. Error code never changes, so match on that.
Invoices as PDF¶
GET /orgs/{org_id}/invoices/{id} returns JSON by default, or the invoice's PDF with Accept: application/pdf:
curl -s "$BASE/orgs/$ORG_ID/invoices/$INVOICE_ID" \
-H "Authorization: Bearer $BREQWATR_API_KEY" \
-H "Accept: application/pdf" \
-o invoice.pdf
Getting help¶
Every response carries an X-Request-Id header, and every error repeats it as request_id. Quote it when you contact support.