HydraCore
API by router

Billing

Get Billing

GET
/v1/billing

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Response Body

Successful Response

application/json
  1. response

Combined billing response — plan + usage.

plan*

Current subscription plan details.

"Listen, I'm a politician, which means I'm a cheat and a liar, and when I'm not kissing babies I'm stealing their lollipops." — The President, The Naked Gun 2½

subscribed_tier_ids?array<string>
Default[]
usage*

Usage metrics for the current billing period.

Note: webhost_nodes and total_hosted_sites are tenant-wide aggregates (not customer-scoped) because hosting infrastructure is provisioned at the tenant level. All other usage fields are customer-scoped via subscription.

Example Request
curl -X GET 'https://example.com/v1/billing'
Example Response200
{  "plan": {    "api_call_limit": 10000,    "billing_cycle": "string",    "conversation_limit": 1000,    "current_period_end": "string",    "current_period_start": "string",    "instance_limit": 1,    "max_sites_per_node": 25,    "plan_name": "string",    "price_cents": 0,    "product_name": "string",    "status": "string",    "tier_id": "string",    "tier_slug": "string",    "token_allowance": 100000,    "trial_days_remaining": 0,    "trial_ends_at": "string"  },  "subscribed_tier_ids": [],  "usage": {    "active_instances": 0,    "api_call_limit": 10000,    "conversation_limit": 1000,    "instance_limit": 0,    "max_sites_per_node": 25,    "platform_cost_usd": "string",    "token_allowance": 100000,    "total_cost_usd": "string",    "total_hosted_sites": 0,    "total_requests": 0,    "total_tokens": 0,    "unique_end_users": 0,    "webhost_nodes": 0  }}

Get Trial Status

GET
/v1/billing/trial-status

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Response Body

Successful Response

application/json
  1. response

Lightweight trial status for sidebar countdown.

"Time is an illusion. Lunchtime doubly so." — Ford Prefect, The Hitchhiker's Guide to the Galaxy

plan_name?Plan Name
Default"No Plan"
status*Status
trial_days_remaining?integer|null
trial_ends_at?string|null
trial_expired?Trial Expired
Defaultfalse
upgrade_url?Upgrade Url
Default"/billing"
Example Request
curl -X GET 'https://example.com/v1/billing/trial-status'
Example Response200
{  "plan_name": "No Plan",  "status": "string",  "trial_days_remaining": 0,  "trial_ends_at": "string",  "trial_expired": false,  "upgrade_url": "/billing"}

Get Usage

GET
/v1/billing/usage

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Response Body

Successful Response

application/json
  1. response

Detailed usage breakdown for the current billing period.

by_instance*array<>
period_end*Period End
period_start*Period Start
platform_cost_usd*Platform Cost Usd
token_allowance_monthly*Token Allowance Monthly
token_usage_pct*Token Usage Pct
total_cost_usd*Total Cost Usd
total_requests*Total Requests
total_tokens*Total Tokens
unique_end_users*Unique End Users
Example Request
curl -X GET 'https://example.com/v1/billing/usage'
Example Response200
{  "by_instance": [    {}  ],  "period_end": "string",  "period_start": "string",  "platform_cost_usd": "string",  "token_allowance_monthly": 0,  "token_usage_pct": 0,  "total_cost_usd": "string",  "total_requests": 0,  "total_tokens": 0,  "unique_end_users": 0}

Get Usage Chart

GET
/v1/billing/usage/chart

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Query Parameters

days?Days
Default30
instance_id?string|null

Response Body

Successful Response

application/json
  1. response
period_label*Period Label
points*array<>
Example Request
curl -X GET 'https://example.com/v1/billing/usage/chart'
Example Response
{  "period_label": "string",  "points": [    {      "cost_usd": "string",      "date": "string",      "requests": 0,      "tokens": 0    }  ]}