Xenodia Docs
API Reference

Model Discovery API

Discover public Xenodia models, modalities, pricing hints, async support, and capability metadata.

Use GET /v1/models before sending model-specific requests. The catalog prevents clients from guessing which models are currently enabled and which parameters they support.

This endpoint is public. You can call it before an API key exists, then use the selected model ID in authenticated runtime requests.

Endpoint

GET https://api.xenodia.xyz/v1/models

cURL

curl "https://api.xenodia.xyz/v1/models"

Example model item

{
  "id": "gpt-image-2.5-flare",
  "object": "model",
  "name": "gpt-image-2.5-flare",
  "owned_by": "OpenAI",
  "brand_key": "openai",
  "brand_image_url": "",
  "released_at": null,
  "modalities": ["image"],
  "channel_names": ["Image Route 12"],
  "description": "GPT Image 2.5 Flare image generation and editing. Pricing is based on resolution.",
  "price_input_per_m": 18750,
  "price_output_per_m": 18750,
  "capabilities": {
    "async_supported": true,
    "request_mode": ["task"],
    "pricing": {
      "mode": "resolution",
      "tiers": [
        { "id": "1k", "label": "1K", "unit": "image", "price_micro_usdc": 18750 },
        { "id": "2k", "label": "2K", "unit": "image", "price_micro_usdc": 62500 },
        { "id": "4k", "label": "4K", "unit": "image", "price_micro_usdc": 100000 }
      ]
    },
    "parameters": [
      {
        "name": "aspect_ratio",
        "enum": ["1:1", "16:9", "auto"]
      },
      {
        "name": "resolution",
        "enum": ["1K", "2K", "4K"]
      }
    ],
    "reference_input": {
      "supported": true,
      "transport": ["url", "multipart_file"],
      "max_items": 16
    }
  },
  "enabled": true,
  "created_at": "2026-09-17T01:49:47.264958Z",
  "updated_at": "2026-09-17T01:49:47.264958Z",
  "available": true
}

Fields to read

FieldWhy it matters
idThe public model ID to pass in requests.
nameDisplay name derived from the public model ID.
owned_by, brand_key, brand_image_urlModel brand metadata for catalog UI.
modalitiesWhether a model supports text, image, video, audio, or mixed inputs.
channel_namesPublic Xenodia route labels currently available for this model.
price_input_per_m, price_output_per_mPublic token-price fields for text models, or display fields for media entries.
capabilities.async_supportedWhether a task resource is returned. Image and video generation currently require task mode.
capabilities.request_modeSupported request mode. Media generation uses task.
capabilities.pricingCurrent media pricing mode and tiers.
capabilities.parametersSupported request controls and enums.
capabilities.reference_inputReference input transport and item limits.

The response also includes a top-level payment object with minimum and recommended top-up hints.

Client rule

Do not infer media support from a model name. Read modalities and capabilities instead.

Use only entries whose enabled and available fields are true. Re-read the catalog before rendering price-sensitive UI because availability and pricing can change.

Examples describe supported request shapes, not a permanent model inventory. Choose IDs from the current catalog rather than old bookmarks or copied examples. The current image examples use GPT Image 2.5; media requests always return asynchronous tasks.

Recent definite video-create rejections can temporarily set available to false (one minute for rate limits; fifteen minutes for an unavailable endpoint). Newer accepted requests can restore availability. Availability is a preflight signal, not a guarantee that a task will complete; poll the task to its terminal state.

On this page