Pricing Catalog
Endpoints
Pricing Catalog
Public pricing catalog. Single round-trip returns every active SKU across text, image, video, and audio with per-call cost detail. Cached 60s.
GET
Pricing Catalog
Public, no authentication required. Returns every active Kyma SKU split into two arrays:
text— models billed per-token (chat / completion family). Includesinput_per_1m,output_per_1m, andcached_input_per_1mfor prompt-caching pricing.media— image / video / audio SKUs (everything non-token). Each row hasmodality,pricing_mode,usd_per_call, and adetailobject describing the pricing shape (per-image, per-second, per-minute, per-quality, etc.).
id for stable diffs across calls. The response is Cache-Control: public, max-age=60.
This is the single source of truth for marketing surfaces, dashboard pricing tables, billing audit scripts, and the pricing.mdx page in these docs. If you’re building a comparison page, integration tooling, or a programmatic billing audit, prefer this over scraping the docs.
Response
Always
"pricing.catalog".Number of text/chat SKUs in the
text array.Number of image/video/audio SKUs in the
media array.Text models. Sorted alphabetically by
id.Image/video/audio SKUs. Sorted alphabetically by
id.Text row fields
| Field | Type | Meaning |
|---|---|---|
id | string | Kyma model ID (e.g. deepseek-v3) |
name | string | Display name |
input_per_1m | number | USD per 1M input tokens |
output_per_1m | number | USD per 1M output tokens |
cached_input_per_1m | number | USD per 1M cached input tokens (90% discount for models that support prompt caching). For models without caching support, this number is informational — Kyma doesn’t bill at the cached rate unless your client opts in. |
Media row fields
| Field | Type | Meaning |
|---|---|---|
id | string | Kyma model ID |
name | string | Display name |
modality | string | One of image, video, audio |
pricing_mode | string | One of per-image, per-second, per-minute, per-quality, per-mp, per-char, per-song, per-call |
usd_per_call | number | Representative USD cost for one typical call (e.g. 1 image at default size, 1s of video, 1 minute of audio, 1 song) |
detail | object | Shape varies by pricing_mode. See pricing modes below. |
Pricing modes
Thedetail object on media rows depends on the pricing_mode:
pricing_mode | detail keys | Example SKUs |
|---|---|---|
per-image | provider_cost, markup | imagen-4, recraft-v4, nano-banana |
per-quality | tiers (object with low/medium/high → cost) | gpt-image-2 |
per-mp | base_usd, extra_per_mp_usd, markup | flux-2-pro |
per-second | provider_cost_per_sec, min_duration_sec, max_duration_sec, allowed_durations | kling-3-pro, veo-3, seedance-2-pro |
per-minute | provider_cost_per_minute, markup | whisper-v3-turbo, gpt-4o-mini-transcribe-2025-12-15, gemini-3-flash-audio |
per-char | provider_cost_per_kchar, markup | eleven-multilingual-v2, minimax-speech-hd |
per-song | usd_per_song | minimax-music, minimax-music-pro |
per-call | usd_per_call | minimax-voice-clone, minimax-voice-design |
Use cases
- Marketing comparison pages: fetch and render a model grid showing every SKU with current pricing, no scraping required.
- Billing audit: cross-check
request_logs.cost_usdagainst this catalog to verify the gateway didn’t drift from documented prices. - Dashboard model picker: render pricing inline in the model selector without hardcoding rates client-side.
- Programmatic SDK config: agents that auto-select models can fetch live pricing for cost-aware routing.
Caching
The endpoint setsCache-Control: public, max-age=60. Hosted in front of Cloudflare so repeat requests within a minute hit CDN edge. Pricing changes propagate to the live response within 60 seconds of a deploy.
Errors
This endpoint is public and read-only — no auth errors. The only failure modes are:| Status | When |
|---|---|
500 | Internal error building the catalog (shouldn’t happen — fail loud if it does) |
Related
GET /v1/limits/tiers— companion endpoint returning the rate-limit tier matrixGET /v1/models— list models without pricing, with filtering params- Pricing — human-readable pricing page rendered from this same catalog
GET /v1/credits/pricing— legacy text-only pricing endpoint (kept for backward compat; prefer this catalog)