Melious
API Reference

Models

GET /v1/models — list and retrieve available models with capabilities

The live catalog of models. Always dynamic — we don't keep a static list in these docs because it drifts the moment we add a model.

Auth: Bearer token or x-api-key. Requires scope inference.models. Responses are cached for 5 minutes — safe to poll.

List models

GET /v1/models

Returns every model available to your key's plan. Add ?include_meta=true for Melious-specific capability metadata.

curl https://api.melious.ai/v1/models \
  -H "Authorization: Bearer sk-mel-<YOUR_API_KEY>"
{
  "object": "list",
  "data": [
    { "id": "<MODEL_ID>", "object": "model", "created": 1699999999, "owned_by": "melious" },
    { "id": "<ANOTHER_MODEL_ID>", "object": "model", "created": 1699999999, "owned_by": "melious" }
  ]
}
curl "https://api.melious.ai/v1/models?include_meta=true" \
  -H "Authorization: Bearer sk-mel-<YOUR_API_KEY>"
{
  "object": "list",
  "data": [
    {
      "id": "<MODEL_ID>",
      "object": "model",
      "created": 1699999999,
      "owned_by": "melious",
      "_meta": {
        "type": "chat",
        "input_modalities": ["text"],
        "output_modalities": ["text"],
        "capabilities": {
          "streaming": true,
          "function_calling": true,
          "vision": false,
          "structured_output": true,
          "json_schema": true,
          "reasoning": false
        },
        "context_length": 131072,
        "max_output_tokens": 16384,
        "reasoning_type": "non_reasoning",
        "reasoning_effort": null,
        "knowledge_cutoff": "2024-10",
        "release_date": "2025-03-01",
        "huggingface_url": "https://huggingface.co/Qwen/Qwen3-235B-A22B",
        "pricing": {
          "input_cost_per_million_eur": 0.50,
          "output_cost_per_million_eur": 1.50,
          "cache_read_cost_per_million_eur": 0.13,
          "currency": "EUR"
        }
      }
    }
  ]
}

_meta.type

One of chat, embeddings, audio, image, reranker, guardrail. Tells you which endpoint to hit.

_meta.capabilities

Boolean flags you can branch on when picking a model programmatically. Common keys: streaming, function_calling, vision, structured_output, json_schema, audio_input, reasoning. Absence of a key means "not applicable" for that model type (e.g. embedding models don't have vision).

_meta.context_length

Max context tokens for chat and embedding models. Absent for image/audio models. Exceeding it returns INFERENCE_3207.

_meta.max_output_tokens

The model's default maximum output tokens, from its parameter configuration. null when the model doesn't specify one.

_meta.reasoning_type

One of reasoning, non_reasoning, hybrid. Hybrid models can toggle reasoning on or off per request using reasoning_effort.

_meta.reasoning_effort

For models that support reasoning effort levels: low, medium, or high. null when the model doesn't support effort control.

_meta.knowledge_cutoff

The model's training data cutoff date (e.g. 2024-10). null when not available.

_meta.release_date

When the model was released (ISO date string, e.g. 2025-03-01). null when not available.

_meta.huggingface_url

Link to the model's HuggingFace page, when the model has one. null for closed or proprietary models.

_meta.pricing

User-facing pricing for the model, computed as the cheapest rate across active providers. Present only when at least one active provider has pricing for the model type. All amounts are in EUR.

The fields vary by model type:

Model typePricing fields
chatinput_cost_per_million_eur, output_cost_per_million_eur, cache_read_cost_per_million_eur (optional), currency
embeddings, rerankerinput_cost_per_million_eur, currency
imageimage_cost_per_image_eur, currency
audioaudio_cost_per_minute_eur, currency
guardrailinput_cost_per_million_eur, output_cost_per_million_eur, currency

cache_read_cost_per_million_eur is only present when at least one provider supports prompt caching for that model. Token costs are per 1 million tokens. The displayed price is what you actually pay — it matches the billing_cost on inference responses.

Retrieve one model

GET /v1/models/{id}

Returns a single model object in the same shape. include_meta=true works here too.

curl "https://api.melious.ai/v1/models/<MODEL_ID>?include_meta=true" \
  -H "Authorization: Bearer sk-mel-<YOUR_API_KEY>"

Finding models programmatically

A common pattern: filter on capabilities before picking.

from openai import OpenAI

client = OpenAI(api_key="sk-mel-<YOUR_API_KEY>", base_url="https://api.melious.ai/v1")

# OpenAI SDK doesn't expose ?include_meta, so hit the raw endpoint
import httpx
models = httpx.get(
    "https://api.melious.ai/v1/models",
    params={"include_meta": "true"},
    headers={"Authorization": "Bearer sk-mel-<YOUR_API_KEY>"},
).json()

# Pick the largest-context chat model that supports tools
candidates = [
    m for m in models["data"]
    if m["_meta"]["type"] == "chat"
    and m["_meta"]["capabilities"].get("function_calling")
]
best = max(candidates, key=lambda m: m["_meta"]["context_length"])
print(best["id"], best["_meta"]["context_length"])

Plan benefits affect what shows up. If your key's plan doesn't include advanced models, they won't appear in the list — no need to filter them out on your side.

What's not here

The model list endpoint doesn't return provider-level details (which providers serve a model, their health status, or raw provider costs). The _meta.pricing block gives you the user-facing price — the cheapest across providers — but not the provider breakdown. For the authoritative per-request cost, check billing_cost on each inference response.

Errors

  • INFERENCE_3001 — unknown model ID on the single-retrieve endpoint.
  • AUTH_1015 — missing inference.models scope.

Human-readable catalog: melious.ai/hub • Model stance and families: Models concept • Routing by capability: Routing.

On this page