Quickstart

Make your first request in under a minute.

Kontinent is a single OpenAI-compatible endpoint in front of more than a dozen model providers serving from the EU, among them Mistral, Scaleway, OVHcloud, IONOS, AWS Bedrock (Frankfurt and Ireland), Azure OpenAI (EU Data Zone) and Google Vertex AI (EU). You get prepaid credits, per-key rate limits, and no prompt storage on Kontinent's side. The full, current list of models and providers is in the catalog.

If you already talk to OpenAI, there is nothing new to learn. You change two things: the base URL and the API key. Messages, tools, streaming, and the response shape stay as you wrote them. A few models cannot call tools; GET /v1/models tells you which.

Estimated time: 1 minute. All you need is a sk-kt- key and a model id.

Steps

  1. Set your base URL and key

    typescript
    import OpenAI from "openai";
     
    const client = new OpenAI({
      baseURL: "https://api.kontinent.ai/v1",
      apiKey: process.env.KONTINENT_API_KEY, // sk-kt-...
    });
  2. Send a chat completion

    typescript
    const res = await client.chat.completions.create({
      model: "mistral/mistral-medium-3.5",
      messages: [{ role: "user", content: "Hallo!" }],
    });
    console.log(res.choices[0].message.content);
  3. Stream the response

    Set stream: true to receive Server-Sent Events as the model generates.

    typescript
    const stream = await client.chat.completions.create({
      model: "mistral/mistral-small-4",
      messages: [{ role: "user", content: "Write a haiku about Europe." }],
      stream: true,
    });
     
    for await (const chunk of stream) {
      process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
    }

    See Streaming for the SSE wire format and timeout behavior.

  4. Pick the right model

    Model ids are in provider/model form, e.g. mistral/mistral-medium-3.5. List every active model, with EUR pricing and sovereignty tier, in one call:

    bash
    curl https://api.kontinent.ai/v1/models \
      -H "Authorization: Bearer $KONTINENT_API_KEY"

Why Kontinent

Next steps

Principles Authentication Models & sovereignty Handling errors