Snelstart

  1. Create an account in the console and copy the API key — it is shown once.
  2. Point any OpenAI-compatible client at https://api.llmeu.com/v1.
  3. Call llmeu-auto and read the llmeu block in the response.

cURL

curl https://api.llmeu.com/v1/chat/completions \
  -H "Authorization: Bearer $LLMEU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llmeu-auto",
    "messages": [{"role": "user", "content": "Say hello from EU hosting."}],
    "llmeu": {"residency": "eu-hosted", "task": "general"}
  }'

Python

from openai import OpenAI

client = OpenAI(base_url="https://api.llmeu.com/v1", api_key="llmeu_live_xxxxxxxx.your-secret")

resp = client.chat.completions.create(
    model="llmeu-auto",
    messages=[{"role": "user", "content": "Say hello from EU hosting."}],
)
print(resp.choices[0].message.content)
print(resp.llmeu.inference_region, resp.llmeu.trace_id)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.llmeu.com/v1", apiKey: process.env.LLMEU_API_KEY });

const resp = await client.chat.completions.create({
  model: "llmeu-auto",
  messages: [{ role: "user", content: "Say hello from EU hosting." }],
});
console.log(resp.choices[0].message.content);
console.log(resp.llmeu.inference_region);

API-referentie

EndpointMethodNotes
/v1/chat/completionsPOSTOpenAI-compatible, streaming and non-streaming
/v1/modelsGETOnly models this key may actually call
/v1/models/{id}GETOne model, including its hosting state
/v1/embeddingsPOSTRequires an embedding model to be hosted
/v1/completionsPOSTNot offered: returns 501 by design
/platform/v1/*Keys, traces, usage, policies
/healthzGETLiveness
/readyzGETReadiness; fails if a first-party endpoint is down

Bewijs en verificatie

Every response carries a llmeu block: trace_id, model_used, inference_region, sovereignty_class, route_reason and the retention that applied. Fetch the full row with GET /platform/v1/traces/{'{id}'}.

Deze deployment kan mock-inferentie uitvoeren: een antwoord kan van een plaatsvervangend model komen in plaats van het model dat in het verzoek wordt genoemd. Wanneer de mockmodus aan staat, vermelden de console en de trace dat, en worden er geen tokenkosten in rekening gebracht.