Docs K  Search
Docs/Reference/Billing & usage
Billing

Billing & Usage

Understand Hebbrix pricing tiers, monitor your API usage, and manage your subscription programmatically.

Plan entitlements

Current plan entitlements

Loaded from the same public plan catalog used by Dashboard Billing. Contract-specific Enterprise terms are separate. Graph reads can be available on lower tiers; manual graph mutation and inference have additional gates described in the graph guide.

Loading plan catalog…

Credit weights and a worked example

The generated OpenAPI contract publishes each operation's x-hebbrix-default-credit-weight. Defaults: read operations 0; raw memory 1; smart ingestion 5; hybrid search 2; reasoning search 10; documents 10 per MB. These are operation weights, not a universal one-credit-per-request promise.

OperationDefault creditsUnit
Read-only resource retrieval0Request
Raw memory write1Request
Smart ingestion5Request
Hybrid search2Request
Reasoning search10Request
Document ingestion10MB

Example using those defaults: 100 raw writes × 1 + 50 hybrid searches × 2 + 10 smart-ingestion requests × 5 = 250 operation credits. Managed-model usage, size-based operations, and account-specific billing configuration can add or change charges. Check the served-model usage receipt, current credit balance and billing ledger for actual amounts; the example is not a price guarantee.

Pricing Tiers

TierPriceIncludes
Free$0/monthFor side projects and experimentation. 1K credits/month, GPT-5-nano model, Hybrid search, Community support.
Starter$19/monthFor indie developers. 25K credits/month, GPT-5-mini model, Hybrid search, BYOK support, Knowledge graph.
ProMost Popular$99/monthFor teams and production apps. 200K credits/month, GPT-5 model, Outcome Memory, 99.9% availability objective, Advanced analytics.
Scale$399/monthFor teams with heavy workloads. 1M credits/month, Managed model / BYOK, Knowledge graph, Team collaboration, Custom integrations.
EnterpriseCustomFor large organizations. Pay as you go, Any model (BYOK), Dedicated infrastructure, Security questionnaire and procurement review, Custom terms by signed agreement.

Usage Limits

ResourceFreeStarterProScaleEnterprise
Price$0/mo$19/mo$99/mo$399/moBy signed agreement
Credits1K/mo25K/mo200K/mo1M/moPay as you go
Rate limit60/min300/min1,200/min2,000/min3,000/min
Default ModelGPT-5-nanoGPT-5-miniGPT-5Managed model / BYOKAny configured model
Knowledge Graph-
BYOK-
Outcome Memory / RL access--
SLA--Plan termsBest-effort objectiveCustom
SupportCommunityStandardPriorityPriority24/7 Dedicated

Endpoints

Code Examples

Check Usage

Python
import os
import requests

BASE = "https://api.hebbrix.com/v1"
H = {"Authorization": f"Bearer {os.environ['HEBBRIX_API_KEY']}"}

# GET /v1/usage: dashboard-style overview with PDF-contract api_calls
# object exposed at the top level.
r = requests.get(f"{BASE}/usage", headers=H)
usage = r.json()

ac = usage["api_calls"]
print(f"API Calls: {ac['used']}/{ac['limit']}")  # limit = -1 for unlimited tiers
print(f"Remaining: {ac['remaining']}")
print(f"Percentage: {ac['percentage']:.1f}%")

# Summary block has success_rate, total_bytes_*, avg_latency_ms, etc.
print(f"Avg latency: {usage['summary']['avg_latency_ms']} ms")

Monitor Usage Programmatically

Python (Usage Monitoring)
# Warn when nearing the quota. Handle "unlimited" (limit=-1) safely.
r = requests.get(f"{BASE}/usage", headers=H)
ac = r.json()["api_calls"]

if ac["limit"] > 0:
    percent_used = (ac["used"] / ac["limit"]) * 100
    if percent_used > 80:
        print(f"Warning: {percent_used:.1f}% of API calls used this period")
    if percent_used > 95:
        print("Critical: upgrade or wait for the quota reset")
else:
    print("Unlimited tier, no quota pressure")

Upgrade Subscription

Python (Upgrade)
# POST /v1/billing/upgrade: body accepts `tier` (preferred) or the
# legacy `plan` key. Both resolve to the same internal field.
r = requests.post(
    f"{BASE}/billing/upgrade",
    headers=H,
    json={"tier": "pro", "billing_interval": "monthly"},
)
new_sub = r.json()

# GET /v1/billing/subscription: current plan + renewal date
r = requests.get(f"{BASE}/billing/subscription", headers=H)
sub = r.json()
print(f"Status: {sub['status']}")
print(f"Renews: {sub['current_period_end']}")

Rate limits and headers

Successful responses do not promise a remaining-request or reset header. On a rate-limit failure, use the HTTP 429 status and Retry-After when present. The tier-aware defaults and error envelopes are documented together in Errors and rate limits.

Read quota and UTC period boundaries from GET /v1/usage/quota. Usage overview windows are rolling intervals, not lifetime API-key counters. API-key metadata and traffic from removed keys are different concepts.

Overage & Limits

When you hit limits. If you exceed your monthly API calls, requests will return 429 Too Many Requests. Upgrade your plan or wait until the next billing period.
  • Period boundaries. Subscription credits follow the period returned by the billing API. The legacy API-call quota is measured by UTC calendar month; the Usage page is a separately selected rolling reporting window. Use the returned start/end timestamps rather than assuming these periods are identical.
  • Instant Upgrades. Upgrades take effect immediately with pro-rated billing. New limits apply right away.

Billing response fields

Metered operations return a set of billing fields so you can show cost and remaining quota to your users. The table below documents the meaning and stability of each one.

FieldTypeMeaning
quota_remainingintCredits left in the current period. A non-negative number is the literal remaining count. -1 means UNLIMITED (enterprise / unmetered plans), so always special-case it before doing arithmetic.
estimated_cost_usdfloatEstimated USD cost of the operation. 0.0 means there is no metered charge for that call, e.g. a NOOP (a duplicate or no-op memory write) or an operation included in the plan. It is an estimate, not a final invoice line.
billed_tokensintTokens actually billed for the call, after any multiplier is applied.
actual_tokensintRaw tokens consumed before any multiplier.
token_multiplierfloatPlan/operation multiplier applied to actual_tokens to produce billed_tokens.
Credit model. Credits are weighted usage units; managed-model operations also report token and estimated-cost fields. NOOPs (no-op or duplicate writes) are unmetered. Overage is user-controlled and feature-flagged: you are never charged beyond your plan unless you opt in.

Stability. The following fields are a stable public contract: quota_remaining, estimated_cost_usd, billed_tokens, actual_tokens, and token_multiplier. You can rely on their names and semantics across releases.

cURL Example

GET/v1/usage
curl -X GET "https://api.hebbrix.com/v1/usage" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
Ask the docs
reading · this page

Hi! I'm the Hebbrix docs assistant. Ask me anything about this page: setup, code examples, endpoints, pricing, or integrations.