Melious

Melious

Melious routes your inference across European providers and runs only open-weight models.

The API is a superset of two shapes: OpenAI's /v1/chat/completions and Anthropic's /v1/messages. Same base URL, same API key, whichever client you prefer — we wrote it this way because your code probably already speaks one of them.

from openai import OpenAI

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

response = client.chat.completions.create(
    model="<MODEL_ID>",
    messages=[{"role": "user", "content": "Name three Hanseatic cities."}],
)
print(response.choices[0].message.content)
from anthropic import Anthropic

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

response = client.messages.create(
    model="claude-sonnet-4",   # mapped to an open-weight model, see Anthropic SDK
    max_tokens=256,
    messages=[{"role": "user", "content": "Name three Hanseatic cities."}],
)
text = "".join(block.text for block in response.content if block.type == "text")
print(text)
curl https://api.melious.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-mel-<YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<MODEL_ID>",
    "messages": [{"role": "user", "content": "Name three Hanseatic cities."}]
  }'

Start here

What makes this different

European, open-weight, by construction. Your request stays in the EU — we have nine providers across eight countries, and no US or APAC fallbacks. Every model we run is open-weight: GLM, Qwen, DeepSeek, Kimi, Mistral, Llama, FLUX, Whisper, Voxtral. We don't run Claude, GPT-4o, or Gemini proper. We do map their names where it helps unmodified clients keep working — see Anthropic SDK.

Energy cost in the response. Chat Completions, embeddings, and rerank responses include an environment_impact block — carbon grams, water liters, renewable percent, the provider's PUE, the country where the inference ran. Streamed chat completions carry it on the final usage chunk. Not a dashboard metric; a field in the JSON, and an estimate — Environmental impact says how we compute it and which endpoints don't carry it.

Routing you can steer. Append :speed, :price, or :eco to any model ID and we bias routing accordingly — :eco leans toward providers on greener power. Or leave it at balanced and let us pick. See Routing.

Where to go next

Reference — the endpoints, fields, and error codes. Concepts — the why behind the defaults. Guides — the runnable walkthroughs: streaming, tool calling, batch. The CLI is a separate surface entirely, for when a shell is more honest than an SDK.

On this page