Skip to documentation
DEVELOPER DOCS / HASHBIDXMODEL ACCESS. ONE INTEGRATION.

Tenant billing

Billing ledger

Balance ledger entries, cursor-paginated; limit clamps to [1, 100]. The response is wrapped in a {code, data, message} envelope; the fields below live under data.

GET/v1/billing/ledger

Key request parameters

ParameterTypeDescription
cursorstringOpaque cursor from previous response
limitintegerDefaults to 50.

Key response parameters

ParameterTypeDescription
itemsLedgerEntry[]Ledger entries
items[].iduuidEntry identifier
items[].entry_typestringEntry type, e.g. charge, payment, refund, manual_credit, manual_adjustment
items[].amountdecimal stringSigned amount
items[].currencystringISO 4217
items[].occurred_atdatetimeISO 8601 UTC
next_cursorstringPass back as cursor; omitted when there is no next page
has_morebooleanWhether another page may exist

Integration examples

Replace the API key and model ID in these examples with your values.

cURL
cURL
curl "https://hashbidx.ai/v1/billing/ledger?limit=20" \
  -H "Authorization: Bearer <YOUR_API_KEY>"
Python
Python
import httpx

resp = httpx.get(
    "https://hashbidx.ai/v1/billing/ledger",
    params={"limit": 20},
    headers={"Authorization": "Bearer <YOUR_API_KEY>"},
)
resp.raise_for_status()
print(resp.json())
Node.js
Node.js
const resp = await fetch("https://hashbidx.ai/v1/billing/ledger?limit=20", {
  headers: { Authorization: "Bearer <YOUR_API_KEY>" },
});
console.log(await resp.json());
Go
Go
req, _ := http.NewRequest("GET",
  "https://hashbidx.ai/v1/billing/ledger?limit=20", nil)
req.Header.Set("Authorization", "Bearer <YOUR_API_KEY>")
resp, err := http.DefaultClient.Do(req)
Rust
Rust
let resp = reqwest::Client::new()
    .get("https://hashbidx.ai/v1/billing/ledger")
    .query(&[("limit","20")])
    .bearer_auth("<YOUR_API_KEY>")
    .send().await?;

If the response includes X-Request-Id, include it when troubleshooting an issue.

All API endpoints
BUILD WITH HASHBIDX

Find your model. Make your first call.

Models & pricing