API reference
Billing
GET
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64Billing overview
application/json- response
billing*curl -X GET "https://example.com/billing"{ "billing": { "organization_id": 0, "currency": "EUR", "balance": "12.345600", "hourly_burn": "string", "hours_left": 0, "month_to_date": "string", "forecast_month": "string", "status": "active", "suspension_reason": "string", "suspend_at": "2019-08-24T14:15:22Z", "fee": { "mode": "customer_pays", "percent": "2.90", "fixed": "0.250000" }, "min_topup": "string", "max_topup": "string", "payments_enabled": true, "stripe_publishable_key": "string", "auto_recharge": { "enabled": true, "threshold": "string", "amount": "string", "card": "visa •••• 4242", "failures": 0 }, "limits": { "property1": { "limit": 0, "used": 0 }, "property2": { "limit": 0, "used": 0 } } }}GET
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64page?integerRange
1 <= valueDefault
1per_page?integerRange
1 <= value <= 50Default
25Wallet ledger, newest first
application/json- response
transactions*array<>meta*curl -X GET "https://example.com/billing/transactions"{ "transactions": [ { "id": 0, "amount": "string", "balance_after": "string", "kind": "topup", "description": "string", "created": "2019-08-24T14:15:22Z" } ], "meta": { "pagination": { "page": 0, "per_page": 0, "previous_page": 0, "next_page": 0, "last_page": 0, "total_entries": 0 } }}GET
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64month?stringYYYY-MM, defaults to the current month
Match
^\d{4}-\d{2}$Usage
application/json- response
usage*curl -X GET "https://example.com/billing/usage"{ "usage": { "month": "2026-10", "total": "string", "lines": [ { "description": "string", "resource_type": "string", "resource_id": 0, "project_id": 0, "sku": "string", "hours": 0, "hourly": "string", "monthly_cap": "string", "capped": true, "amount": "string", "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } ] }}POST
cookieAuthcookie
odx_session<token>application/json- body
organization_id?integerFormat
int64amount*stringAmount to credit in EUR, e.g. "20.00"
Payment created
application/json- response
topup*curl -X POST "https://example.com/billing/topups" \ -H "Content-Type: application/json" \ -d '{ "amount": "20.00" }'{ "topup": { "payment_id": 0, "client_secret": "string", "amount": "string", "fee": "string", "total": "string", "currency": "string", "publishable_key": "string" }}POST
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64SetupIntent created
application/json- response
client_secret*stringpublishable_key?string|nullcurl -X POST "https://example.com/billing/cards/setup"{ "client_secret": "string", "publishable_key": "string"}PUT
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64application/json- body
enabled*booleanthreshold?stringTop up when the balance falls below this
amount?stringpayment_method_id?stringThe pm_… returned by confirmSetup; omit to keep the saved card
Saved
application/json- response
auto_recharge*curl -X PUT "https://example.com/billing/auto_recharge" \ -H "Content-Type: application/json" \ -d '{ "enabled": true }'{ "auto_recharge": { "enabled": true, "threshold": "string", "amount": "string", "card": "visa •••• 4242", "failures": 0 }}GET
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64Payments, newest first
application/json- response
payments*array<>curl -X GET "https://example.com/billing/payments"{ "payments": [ { "id": 0, "status": "pending", "provider": "string", "amount": "string", "fee": "string", "total": "string", "receipt_number": "string", "failure_message": "string", "created": "2019-08-24T14:15:22Z" } ]}GET
cookieAuthcookie
odx_session<token>organization_id?integerDefaults to your personal organization
Format
int64Monthly statements
application/json- response
statements*array<>curl -X GET "https://example.com/billing/statements"{ "statements": [ { "id": 0, "month": "2026-10", "total": "string", "issued": "2019-08-24T14:15:22Z" } ]}GET
cookieAuthcookie
odx_session<token>id*integerFormat
int64organization_id?integerDefaults to your personal organization
Format
int64Statement with its lines
application/json- response
statement*curl -X GET "https://example.com/billing/statements/0"{ "statement": { "id": 0, "month": "2026-10", "total": "string", "issued": "2019-08-24T14:15:22Z", "lines": [ { "description": "string", "resource_type": "string", "resource_id": 0, "project_id": 0, "sku": "string", "hours": 0, "hourly": "string", "monthly_cap": "string", "capped": true, "amount": "string", "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } ] }}