Démarrage rapide

  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);

Référence API

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

Preuves et vérification

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}'}.

Ce déploiement peut exécuter de l'inférence simulée : une réponse peut provenir d'un modèle de substitution plutôt que du modèle nommé dans la requête. Quand le mode simulé est activé, la console et la trace le disent, et aucun frais de token n'est facturé.