Console & adminBilling & credits

Billing & credits

API traffic is paid for in two layers:

  1. The plan. Your organization’s subscription includes a token allowance, enforced over monthly, weekly and 5-hour windows.
  2. Usage credits. An optional prepaid US-dollar wallet that pays, at per-model rates, for requests the plan cannot cover.

Requests always try the plan first. Credits are only touched once a plan window is full, and only if you have turned them on. This page covers plans, the credit wallet, buying credits, auto-reload and the spend limits that keep it all bounded.

Plans

Each plan includes a monthly token allowance shared by everyone in the organization. Prices are on syntic.ai/pricing.

PlanMonthly tokensWeekly window (60%)5-hour window (25%)
Free200,000120,00050,000
Starter2,000,0001,200,000500,000
Business2,000,0001,200,000500,000
Pro5,000,0003,000,0001,250,000
Scale8,000,0004,800,0002,000,000
Operations25,000,00015,000,0006,250,000
EnterpriseUnlimitedUnlimitedUnlimited

How the windows work is explained in Usage & cost. Some models are only offered on certain plans; a request for a model your plan does not include is served by the default model instead, and the response carries an x-syntic-model-downgraded header. See Models.

Usage credits

Usage credits keep your API running after the plan allowance is spent, at a cost you control.

A request is paid from credits only when all of these hold:

  • a plan window is full for this request;
  • credits are turned on for the organization;
  • the organization has not reached its monthly spend limit;
  • the member who owns the key has not reached their own spend limit, if one is set;
  • the wallet balance covers a conservative estimate of what the request could cost.

If any condition fails, the API returns 402 quota_exhausted and names the reason in limit. See the table in Usage & cost.

Settings

Credits are managed in Settings → Billing, in the Usage credits section. Only owners and administrators can change them; every member can see them.

SettingDefault for a new organizationNotes
Usage creditsOffNothing is charged to the wallet until this is on
Monthly spend limit$20The most credits may spend per calendar month (UTC). Clear the limit for no cap. Can be set to $0.
Auto-reloadOffTops the wallet up automatically from your saved card
Reload when balance falls to$5The trigger amount
Reload up to$15The target balance. Must be higher than the trigger while auto-reload is on.

The section also shows the current balance and how much credit has been spent this month.

Buy credits

Open billing

As an owner or administrator, go to Settings → Billing with the organization you want to fund selected. Credits always go to that organization’s wallet.

Pick an amount

Choose a preset pack or enter your own amount. The minimum top-up is $25.

Pay

Card payments go through a hosted checkout. Larger amounts switch to an invoice or to the sales team, as shown below.

Wait for confirmation

The wallet is credited once the payment is confirmed, not when you click pay.

Preset packs

You payCredit addedBonus
$25$25none
$100$1077%
$500$55010%
$2,000$2,30015%

Custom amounts

AmountBonusHow you pay
$25 to $99.99noneCard checkout
$100 to $499.997%Card checkout
$500 to $1,999.9910%Card checkout
$2,000 to $9,999.9915%Card checkout
$10,000 to $49,999.9920%Invoice, payable by bank transfer
$50,000 and aboveAgreed with salesThe request goes to the sales team, who reply within one business day

Auto-reload

Auto-reload keeps the wallet from running dry in the middle of a busy day.

How it behaves

  • The platform checks wallets with auto-reload turned on at regular intervals.
  • When the balance is at or below the trigger, your saved default card is charged the difference between the balance and the target, so the balance returns to the target. With a $5 trigger, $15 target and $3.20 left, the charge is $11.80.
  • The wallet is credited once the charge succeeds, just like a manual top-up.
  • Charges under $0.50 are skipped.
⚠️

Auto-reload needs a saved payment method. Without one, reloads are skipped silently and requests start failing with 402 quota_exhausted once the balance can no longer cover them. Add a card under Settings → Billing before relying on auto-reload.

Because reloads happen on a schedule rather than on every request, a large burst can still empty the wallet between checks. Leave enough headroom between the trigger and your busiest few minutes of spend.

Spend limits

Spend limits only ever restrict credit spend; plan usage is never blocked by them.

LimitSet byWhereEffect when reached
Organization monthly spend limitOwner or administratorSettings → Billing → Usage creditsEvery member’s credit-paid requests fail with 402, limit: "spend_limit"
Group limitOwner or administratorSettings → Usage → Group spend limitsApplies to each member of the group who has no limit of their own; a member who reaches it is blocked as below
Member limitOwner or administratorSettings → Usage → Spend limitsThat member’s API requests fail with 402, limit: "spend_limit"

All spend limits start afresh when a new calendar month begins (UTC midnight). Details of group and member limits are in Usage & cost.

React to billing errors in code

Your code cannot change billing settings, but it can tell the difference between “wait” and “a person needs to act”:

import os
import requests
 
resp = requests.post(
    "https://app.syntic.ai/v1/chat/completions",
    headers={"Authorization": f"Bearer {os.environ['SYNTIC_API_KEY']}"},
    json={
        "model": "Amara Deep",
        "stream": False,
        "messages": [{"role": "user", "content": "Draft a reply to this refund request."}],
    },
    timeout=120,
)
 
if resp.status_code == 402:
    err = resp.json()
    if err["limit"] in ("monthly", "weekly", "session"):
        print("Plan window full; it reopens at", err["resets_at"])
    elif err["limit"] in ("spend_limit", "no_credits"):
        print("A billing admin needs to act:", err["add_credit_url"])
    else:  # "unavailable"
        print("Usage check failed; retry shortly")
else:
    resp.raise_for_status()
    print(resp.headers["x-syntic-billing-source"], resp.json()["usage"])

A fuller pattern, with retries and alerting, is in Handle usage limits.

Who can do what

ActionOwner / Primary ownerAdministratorDeveloper / Custom
View plan, balance and month-to-date spendYesYesYes
Turn credits on or off, set the spend limit, configure auto-reloadYesYesNo
Buy creditsYesYesNo
Set group and member spend limitsYesYesNo
Change plan or payment methodYesYesNo
Cancel the subscriptionYesNoNo

Adding and removing payment methods is recorded in the audit log.

Was this page helpful?