Rate Cards API

Get the rate estimation table

Returns your organization's effective per-model rates in USD per million tokens, for client-side budget estimation; the server-side ledger is the record. Call it with a GET request to /rate-cards/estimation-table, authenticated with a restricted API key and the "costs:read" scope.

GET https://api.bearlumen.com/v1/rate-cards/estimation-table

Returns your organization's effective per-model rates in USD per million tokens, for client-side budget estimation; the server-side ledger is the record. The Bear Lumen SDKs refresh their local price table from this endpoint at startup and use it to estimate span spend before each call, so budget caps can stop a runaway loop without waiting for the ledger. Treat the values as estimates only: the ledger prices each event with the rates in force at the event's own timestamp, so the two can diverge when rates change mid-run. Rates reflect your organization: when custom rates are agreed with Bear Lumen for a model, those replace the standard rates here. Cache and reasoning rates are already resolved to the same derived values the ledger applies, so you can multiply token counts by these rates directly. Models priced per unit rather than per token are not listed. Refresh once at process start (or at most hourly); rates change rarely. Requests count toward your per-API-key rate limit; sustained overruns return 429 with the standard error envelope.

Authentication and scopes

Authenticate with a restricted API key in the Authorization: Bearer <key> header. This endpoint requires the costs:read scope.

Response example

Success response (200):

JSON
{
  "items": [
    {
      "cache_creation_cost_per_million": "3.75",
      "cache_read_cost_per_million": "0.3",
      "input_cost_per_million": "3",
      "model_slug": "claude-sonnet-4-5",
      "output_cost_per_million": "15",
      "reasoning_cost_per_million": "15"
    },
    {
      "cache_creation_cost_per_million": "3.125",
      "cache_read_cost_per_million": "0.25",
      "input_cost_per_million": "2.5",
      "model_slug": "gpt-4o",
      "output_cost_per_million": "10",
      "reasoning_cost_per_million": "10"
    },
    {
      "cache_creation_cost_per_million": "0.15",
      "cache_read_cost_per_million": "0.012",
      "input_cost_per_million": "0.12",
      "model_slug": "gpt-4o-mini",
      "output_cost_per_million": "0.48",
      "reasoning_cost_per_million": "0.48"
    },
    {
      "cache_creation_cost_per_million": "0.7375",
      "cache_read_cost_per_million": "0.059",
      "input_cost_per_million": "0.59",
      "model_slug": "llama-3.3-70b-versatile",
      "output_cost_per_million": "0.79",
      "reasoning_cost_per_million": "0.79"
    },
    {
      "cache_creation_cost_per_million": "1.1",
      "cache_read_cost_per_million": "0.088",
      "input_cost_per_million": "0.88",
      "model_slug": "meta-llama/Llama-3.3-70B-Instruct",
      "output_cost_per_million": "0.88",
      "reasoning_cost_per_million": "0.88"
    },
    {
      "cache_creation_cost_per_million": "2.5",
      "cache_read_cost_per_million": "0.2",
      "input_cost_per_million": "2",
      "model_slug": "mistral-large",
      "output_cost_per_million": "6",
      "reasoning_cost_per_million": "6"
    },
    {
      "cache_creation_cost_per_million": "0.25",
      "cache_read_cost_per_million": "0.02",
      "input_cost_per_million": "0.2",
      "model_slug": "mistral-small",
      "output_cost_per_million": "0.6",
      "reasoning_cost_per_million": "0.6"
    }
  ]
}

Error codes

Errors return the standard error envelope with a code, message, and a correlationId you can quote to support.

StatusWhen it happens
401Missing or invalid API key. Send your key as Authorization: Bearer YOUR_API_KEY.
403API key lacks the costs:read scope. Create or update an API key with the costs:read scope, then retry.
429Rate limit or plan quota exceeded. Slow down and retry after the current window resets.

Rate limits and retries

Rate limit or plan quota exceeded. Slow down and retry after the current window resets.