OpenModelOpenModel
Guides

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:

  1. Log in to the Console
  2. Navigate to the Recharge page
  3. Enter an amount within the minimum and maximum shown on the page
  4. 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:

  1. Go to the Refunds page in the Console
  2. Submit a refund request with the amount and reason
  3. The requested amount will be frozen from your balance while the request is pending
  4. An administrator will review and approve or reject the request
  5. 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.

On this page