Skip to main content
GET
/
v1
/
pricing
Pricing Catalog
curl --request GET \
  --url https://kymaapi.com/v1/pricing \
  --header 'Authorization: Bearer <token>'
{
  "object": "<string>",
  "text_count": 123,
  "media_count": 123,
  "text": [
    {}
  ],
  "media": [
    {}
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.kymaapi.com/llms.txt

Use this file to discover all available pages before exploring further.

Public, no authentication required. Returns every active Kyma SKU split into two arrays:
  • text — models billed per-token (chat / completion family). Includes input_per_1m, output_per_1m, and cached_input_per_1m for prompt-caching pricing.
  • media — image / video / audio SKUs (everything non-token). Each row has modality, pricing_mode, usd_per_call, and a detail object describing the pricing shape (per-image, per-second, per-minute, per-quality, etc.).
Both arrays are sorted by 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.
curl https://kymaapi.com/v1/pricing

Response

{
  "object": "pricing.catalog",
  "text_count": 42,
  "media_count": 19,
  "text": [
    {
      "id": "deepseek-v3",
      "name": "DeepSeek V3",
      "input_per_1m": 0.27,
      "output_per_1m": 1.10,
      "cached_input_per_1m": 0.027
    }
  ],
  "media": [
    {
      "id": "veo-3",
      "name": "Veo 3",
      "modality": "video",
      "pricing_mode": "per-second",
      "usd_per_call": 0.54,
      "detail": {
        "provider_cost_per_sec": 0.40,
        "min_duration_sec": 4,
        "max_duration_sec": 8,
        "allowed_durations": [4, 6, 8]
      }
    }
  ]
}
object
string
Always "pricing.catalog".
text_count
number
Number of text/chat SKUs in the text array.
media_count
number
Number of image/video/audio SKUs in the media array.
text
array
Text models. Sorted alphabetically by id.
media
array
Image/video/audio SKUs. Sorted alphabetically by id.

Text row fields

FieldTypeMeaning
idstringKyma model ID (e.g. deepseek-v3)
namestringDisplay name
input_per_1mnumberUSD per 1M input tokens
output_per_1mnumberUSD per 1M output tokens
cached_input_per_1mnumberUSD 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

FieldTypeMeaning
idstringKyma model ID
namestringDisplay name
modalitystringOne of image, video, audio
pricing_modestringOne of per-image, per-second, per-minute, per-quality, per-mp, per-char, per-song, per-call
usd_per_callnumberRepresentative USD cost for one typical call (e.g. 1 image at default size, 1s of video, 1 minute of audio, 1 song)
detailobjectShape varies by pricing_mode. See pricing modes below.

Pricing modes

The detail object on media rows depends on the pricing_mode:
pricing_modedetail keysExample SKUs
per-imageprovider_cost, markupimagen-4, recraft-v4, nano-banana
per-qualitytiers (object with low/medium/high → cost)gpt-image-2
per-mpbase_usd, extra_per_mp_usd, markupflux-2-pro
per-secondprovider_cost_per_sec, min_duration_sec, max_duration_sec, allowed_durationskling-3-pro, veo-3, seedance-2-pro
per-minuteprovider_cost_per_minute, markupwhisper-v3-turbo, gpt-4o-mini-transcribe-2025-12-15, gemini-3-flash-audio
per-charprovider_cost_per_kchar, markupeleven-multilingual-v2, minimax-speech-hd
per-songusd_per_songminimax-music, minimax-music-pro
per-callusd_per_callminimax-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_usd against 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 sets Cache-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:
StatusWhen
500Internal error building the catalog (shouldn’t happen — fail loud if it does)
  • GET /v1/limits/tiers — companion endpoint returning the rate-limit tier matrix
  • GET /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)