Billing & Pricing
Understand how billing works, view pricing, and manage your balance
OpenModel uses a pay-per-token billing model. You are charged based on the number of tokens processed in each request, with separate rates for input and output tokens.
How Billing Works
Per-Token Pricing
Each model has its own pricing for input tokens and output tokens. The rates are determined by the upstream provider's pricing and any platform-level adjustments configured by your administrator.
- Input tokens — The tokens in your prompt, system message, and any context
- Output tokens — The tokens generated by the model in its response
- Cache read tokens — Input tokens served from prompt cache (billed at a reduced rate, if applicable)
- Cache write tokens — Input tokens written to prompt cache (billed at a separate rate, if applicable)
- Cache write tokens (1h TTL) — Some providers (e.g., Anthropic) offer a short-lived prompt cache with a 1-hour TTL, billed at a distinct rate from the standard cache write
- Reasoning tokens — For models that support chain-of-thought reasoning (e.g., via the Responses protocol), reasoning output tokens may be billed at a separate rate from regular output tokens
Input and output tokens are billed at different rates, with output tokens typically costing more. Cache tokens and reasoning tokens are billed separately when the model supports these features.
Pricing Display
Prices are displayed in dollars per million tokens ($/M tokens).
See the Console or API for latest pricing.
Internal Precision
Internally, OpenModel tracks all monetary amounts in microdollars (1 USD = 1,000,000 microdollars) to maintain precision without floating-point rounding errors. This is transparent to you as a user — all amounts are displayed in USD in the Console.
Tiered Pricing
Some models use tiered pricing, where the per-token rate changes based on how many tokens are in the request. There are two tiering modes:
Threshold tiers — A single price applies to all tokens once a threshold is exceeded. For example, Anthropic and OpenAI models may have an above_128k tier that applies a different rate when the total input exceeds 128,000 tokens. Other common thresholds include above_200k and above_256k.
Range tiers — Multiple price brackets apply to different ranges of tokens within a single request (similar to progressive tax brackets). DashScope models use this approach with multi-segment pricing. Each segment has its own per-token rate.
Tiered pricing is configured per model by your administrator and reflected automatically in cost calculations. You can view the pricing tiers for each model in the Console.
Price Multiplier
Administrators can configure a price multiplier per model to adjust the effective rate. This allows:
- Discounted pricing — A multiplier below 1.0 reduces the cost (e.g., 0.8 = 20% discount)
- Free models — A multiplier of 0 makes a model free to use
- Premium pricing — A multiplier above 1.0 increases the cost
The multiplier applies to all token types (input, output, cache, reasoning). Check the Console for current effective pricing.
Multiple Discount Sources
Client offers and other discounts do not stack. OpenModel automatically uses the best price available for each request. The model page can advertise an available client deal, but the Consumption Logs page records the price actually used. See Client Benefits for eligibility and verification details.
No Minimum Charge
There is no minimum charge per request. You only pay for the tokens actually processed. A short request that uses 50 input tokens and receives 10 output tokens is billed for exactly those tokens.
Billing Deduplication
OpenModel includes built-in deduplication to prevent double-billing. If a request is retried internally (for example, due to a channel failover), you are only charged once for the successful response.
Viewing Pricing
In the Console
Visit the Models page in the Console to see all available models with their current pricing, including input and output rates.
Via the API
Query the models endpoint to get pricing information programmatically. This is a public endpoint — no authentication required:
curl "https://api.openmodel.ai/web/v1/models"Balance Management
Checking Your Balance
Your current balance is displayed in the Console dashboard. You can also retrieve it via the API:
curl https://api.openmodel.ai/web/v1/self \
-H "Authorization: Bearer $ACCESS_TOKEN"The response includes your balance field in microdollars. Note that your available balance is balance - frozen_balance — the frozen portion represents amounts held for pending refund requests.
Insufficient Balance
If your balance is too low to process a request, the API returns an INSUFFICIENT_BALANCE error. The HTTP status code depends on the endpoint type:
- Web API (
/web/v1/*) — Returns HTTP 400 (Bad Request) - Proxy endpoints (
/v1/responses,/v1/messages,/v1beta/models/*) — Returns HTTP 402 (Payment Required)
Top up your balance in the Console before retrying.
Signup Bonus
New users may receive a signup bonus — a complimentary balance credited automatically upon registration. The bonus amount is configured by the platform administrator and may vary.
- The signup bonus has an expiry period. If the bonus is not used before it expires, the remaining amount is reclaimed automatically.
- Once the bonus expires or is consumed, you will need to recharge your account to continue using the API.
Check the Console dashboard for your current balance and any expiry information.
Recharging Your Account
To add funds to your account:
- Log in to the Console
- Navigate to the Recharge page
- Enter an amount within the minimum and maximum shown on the page
- Complete payment through Stripe Checkout
Payments are processed securely through Stripe. Your balance is updated immediately after successful payment.
The allowed recharge range is configured by the OpenModel deployment and can change without a documentation update. The Console loads the current limits directly from the service and prevents checkout when the amount is outside that range, so the values shown on the Recharge page are the source of truth.
Refunds
If you need a refund:
- Go to the Refunds page in the Console
- Submit a refund request with the amount and reason
- The requested amount will be frozen from your balance while the request is pending
- An administrator will review and approve or reject the request
- On approval, the amount is deducted from your balance and refunded
You can cancel a pending refund request at any time, which will unfreeze the held amount.
Tracking Consumption
The Console provides several tools to monitor your spending:
Dashboard
The main dashboard shows:
- Current balance — Your remaining funds
- Total cost — Cumulative spending
- Request count — Total API requests made
- Token usage — Total input and output tokens consumed
- Spend trends — Cost over time (hourly or daily)
- Model stats — Usage breakdown by model
Usage Page
The Usage page provides per-API-key usage statistics with date range filters. This helps you understand which API keys are consuming the most resources.
Consumption Logs
The Logs page shows a detailed record of every API request, including:
- Timestamp
- Model used
- Input and output token counts
- Cost for the request
- API key used
You can filter logs by model, API key, and date range.
Cost Estimation
To estimate the cost of a request before making it, you can approximate the token count:
- English text: Roughly 1 token per 4 characters, or about 0.75 tokens per word
- Code: Token density varies, but is typically similar to English text
- Chinese/Japanese/Korean: Characters typically require 1-2 tokens each
For a more precise count, use the token counting endpoint:
curl https://api.openmodel.ai/v1/messages/count_tokens \
-H "x-api-key: $OPENMODEL_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Your prompt text here"}
]
}'Best Practices
- Monitor spending regularly — Check the Console dashboard frequently to track usage trends.
- Use appropriate models — Choose the most cost-effective model for your use case. Smaller models are significantly cheaper for simple tasks.
- Optimize prompts — Shorter, well-structured prompts reduce input token costs.
- Set API key quotas — Configure per-key usage limits in the Console to prevent unexpected spending.
- Use separate API keys for different projects to track costs independently.
- Cache responses — If you are making repeated similar requests, cache and reuse responses when possible.