Public API
Account
Account routes return plan/tariff limits and usage for the billing workspace (same counters as the cabinet). All routes require signed headers (see Authentication). Base: https://api.rpcnode.dev — paths start with /v1/… (no /api). Success responses use ok: true plus the fields below.
GET /v1/account
Current plan/tariff limits and a usage snapshot for the billing workspace (same counters as the cabinet).
Response fields
| Name | Type | Description |
|---|---|---|
| user_id | number | Billing workspace owner user id. |
| plan | object | null | Current plan; null if none assigned. |
| plan.id | number | Plan id. |
| plan.slug | string | Plan slug. |
| plan.name | string | Plan display name. |
| plan.included_credits | number | Credits included in the plan period. |
| plan.rps_limit | number | Max requests per second. |
| plan.endpoints_limit | number | Max RPC endpoints. |
| plan.webhook_address_slots | number | Max concurrent Address Watch addresses. |
| plan.price_monthly_cents | number | Monthly price in cents. |
| plan.billing_period | string | null | monthly | yearly | … |
| plan.subscription_status | string | null | Subscription status. |
| plan.started_at | string | null | ISO-8601 period start. |
| plan.expires_at | string | null | ISO-8601 period end. |
| usage.credit_used | number | Credits consumed in the current plan period. |
| usage.included_credits | number | Plan credit allowance. |
| usage.rps_used | number | Peak RPS over a short Redis window. |
| usage.rps_limit | number | Plan RPS limit. |
| usage.address_slots_used | number | Active watched addresses. |
| usage.webhook_address_slots | number | Plan address-slot cap. |
Response example
{
"ok": true,
"user_id": 1,
"plan": {
"id": 2,
"slug": "pro",
"name": "Pro",
"included_credits": 1000000,
"rps_limit": 50,
"endpoints_limit": 10,
"webhook_address_slots": 100,
"price_monthly_cents": 4900,
"billing_period": "monthly",
"subscription_status": "active",
"started_at": "2026-08-01T00:00:00+00:00",
"expires_at": "2026-09-01T00:00:00+00:00"
},
"usage": {
"credit_used": 12000,
"included_credits": 1000000,
"rps_used": 3,
"rps_limit": 50,
"address_slots_used": 2,
"webhook_address_slots": 100
}
}GET /v1/account/usage
Consumption over the last N calendar days (credits + requests series), plus current plan-period counters and address slots.
Query parameters
| Name | Type | Description |
|---|---|---|
| days | integer | Window length: 7, 30, or 90. Default 30. (optional) |
Response fields
| Name | Type | Description |
|---|---|---|
| usage.days | number | Selected window length. |
| usage.total_requests | number | Requests in the window. |
| usage.total_credits | number | Credits in the window. |
| usage.credit_used | number | Plan-period credits used. |
| usage.included_credits | number | Plan credit allowance. |
| usage.address_slots_used | number | Active watched addresses. |
| usage.webhook_address_slots | number | Plan address-slot cap. |
| usage.rps_used | number | Peak RPS (short window). |
| usage.rps_limit | number | Plan RPS limit. |
| usage.series[].date | string | YYYY-MM-DD. |
| usage.series[].requests | number | Requests that day. |
| usage.series[].credits | number | Credits that day. |
| usage.webhooks | object | Webhook delivery slice of the window (methods webhook:tx / webhook:block). Included in total_credits. |
| usage.webhooks.credits | number | Credits spent on webhook deliveries. |
| usage.webhooks.requests | number | Successful deliveries counted. |
| usage.webhooks.tx_credits | number | Credits for non-block address-activity deliveries (payload type=payment / payout / other). Billing bucket name remains tx. |
| usage.webhooks.block_credits | number | Credits for type=block deliveries. |
- Query string is not part of the signature — sign path /v1/account/usage with an empty body.
- series is oldest → newest, one point per day (zeros when no usage).
- credit_used / included_credits are plan-period counters (not the window sum). total_credits / total_requests sum the window.
Response example
{
"ok": true,
"usage": {
"days": 30,
"total_requests": 5400,
"total_credits": 12000,
"credit_used": 12000,
"included_credits": 1000000,
"address_slots_used": 2,
"webhook_address_slots": 100,
"rps_used": 3,
"rps_limit": 50,
"series": [
{ "date": "2026-07-08", "requests": 10, "credits": 20 },
{ "date": "2026-08-06", "requests": 100, "credits": 250 }
],
"webhooks": {
"requests": 40,
"credits": 2400,
"tx_requests": 30,
"tx_credits": 900,
"block_requests": 10,
"block_credits": 1500
}
}
}Tips
- Sign every request with X-Api-Key, X-Timestamp, and X-Signature (see Authentication).
- For GET /v1/account/usage?days=30, sign path /v1/account/usage — query string is not part of the signature.
- Address Watch slot usage also appears here; manage watches under Address Watch.