DK9 operational · Aarhus, Denmark

Inference with a physical address.

Open-weight models through an OpenAI-compatible API, served on GPUs, racks and networks owned and operated by team.blue.

endpoint
/v1
region
DK9
operator
team.blue
history
3 years
state
operational
Sovereignty

Sovereign means we can point at the machine.

Sovereignty is a supply-chain property, not a badge. Every request is served by GPUs team.blue bought, in a facility team.blue operates, in a region you can name. There is no third-party inference provider in the path and no cross-border hop in the middle of a completion. If a customer asks where their prompt went, the answer is a rack — not a region code on someone else's status page.

Owned hardware team.blue GPUs, racks and network. No hyperscaler dependency.
Open weights Models we can host ourselves, so the service never depends on someone else's licence.
Nothing retained Prompts and completions are not kept for training. Only metering data is stored.
Keys encrypted Credentials encrypted at rest; every key change written to an audit trail.
Current region
regionDK9
siteAarhus, Denmark
operatorteam.blue
data egressnone
next regionbrewing
status operational
The API

Change the base URL. That's the migration.

Standard OpenAI-compatible routes, so existing SDKs, gateways and libraries keep working unchanged.

python
from openai import OpenAI

client = OpenAI(
    base_url="https://llmfactory.ai/v1",
    api_key="sk-...",
)

r = client.chat.completions.create(
    model="glm-5.3",
    messages=[
        {"role": "system",
         "content": "You triage hosting support tickets."},
        {"role": "user",
         "content": "My DNS change is still not live after 2 hours."},
    ],
    stream=True,
)
POST /v1/chat/completions Chat and completion against any served model, streaming or buffered.
POST /v1/embeddings Vector embeddings with fixed dimensions, computed in-region.
POST /v1/audio/transcriptions Speech to text on the same fleet and the same key.
POST /v1/images/generations Image generation where a team has been granted a generator.

Model catalogue

Models are allocated to your team and appear in the catalogue with their context window already set. Long conversations are summarised rather than truncated.

Keys, quotas, limits

Scoped API keys per team with a request quota and a rate limit, so one runaway script returns 429 instead of taking capacity from everyone else.

Metering you can read

Tokens, cost and latency per key and per model, daily. Enough to see a regression the day it appears and to bill it back internally.

Hardware

Four tiers, one region

Requests are placed on the tier that fits the model, so a small embedding job doesn't occupy a card meant for a 70B.

RTX 6000

Embeddings, transcription and small models. Cheap tokens.

H100

The everyday workhorse behind most production traffic.

B200

Larger models, longer context, higher concurrency per card.

B300

The newest tier, kept for the heaviest serving jobs.

Models are served with vLLM and Ollama on our own cards. Capacity is added tier by tier as demand justifies it, in the same region — not by renting somewhere else.

Access

Internal for now

Open today

team.blue use cases

Access is restricted to internal use cases — product features, internal tooling and brand experiments running on our own infrastructure.

Next

Public inference

Public endpoints are planned: the same fleet, the same region, opened beyond internal workloads. No date promised yet.

How to start

Ask your local brand

Your local team.blue brand handles onboarding, model access and current capacity. They know what is available this quarter.

Roadmap

A new region is brewing.

DK9 is where the fleet runs today. A second region is being built out now — same owned hardware, same API, one more place to pin your workloads. We will name it when the racks are powered, not before.

DK9 serving
region 2 brewing
public API queued