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.

planusagecreditsAccount

← Public API

GET /v1/account

Current plan/tariff limits and a usage snapshot for the billing workspace (same counters as the cabinet).

Response fields

NameTypeDescription
user_idnumberBilling workspace owner user id.
planobject | nullCurrent plan; null if none assigned.
plan.idnumberPlan id.
plan.slugstringPlan slug.
plan.namestringPlan display name.
plan.included_creditsnumberCredits included in the plan period.
plan.rps_limitnumberMax requests per second.
plan.endpoints_limitnumberMax RPC endpoints.
plan.webhook_address_slotsnumberMax concurrent Address Watch addresses.
plan.price_monthly_centsnumberMonthly price in cents.
plan.billing_periodstring | nullmonthly | yearly | …
plan.subscription_statusstring | nullSubscription status.
plan.started_atstring | nullISO-8601 period start.
plan.expires_atstring | nullISO-8601 period end.
usage.credit_usednumberCredits consumed in the current plan period.
usage.included_creditsnumberPlan credit allowance.
usage.rps_usednumberPeak RPS over a short Redis window.
usage.rps_limitnumberPlan RPS limit.
usage.address_slots_usednumberActive watched addresses.
usage.webhook_address_slotsnumberPlan 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

NameTypeDescription
daysintegerWindow length: 7, 30, or 90. Default 30. (optional)

Response fields

NameTypeDescription
usage.daysnumberSelected window length.
usage.total_requestsnumberRequests in the window.
usage.total_creditsnumberCredits in the window.
usage.credit_usednumberPlan-period credits used.
usage.included_creditsnumberPlan credit allowance.
usage.address_slots_usednumberActive watched addresses.
usage.webhook_address_slotsnumberPlan address-slot cap.
usage.rps_usednumberPeak RPS (short window).
usage.rps_limitnumberPlan RPS limit.
usage.series[].datestringYYYY-MM-DD.
usage.series[].requestsnumberRequests that day.
usage.series[].creditsnumberCredits that day.
usage.webhooksobjectWebhook delivery slice of the window (methods webhook:tx / webhook:block). Included in total_credits.
usage.webhooks.creditsnumberCredits spent on webhook deliveries.
usage.webhooks.requestsnumberSuccessful deliveries counted.
usage.webhooks.tx_creditsnumberCredits for non-block address-activity deliveries (payload type=payment / payout / other). Billing bucket name remains tx.
usage.webhooks.block_creditsnumberCredits 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.

Related