Your AI. Europe’s data centres. One line of code.
We route your AI requests to inference providers in Europe, behind one OpenAI-compatible interface. One base URL swap, one balance — and for every model you can see who operates it, where it runs and how strictly it has been audited.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.konduit.eu/v1",
api_key=os.environ["KONDUIT_KEY"],
)
client.chat.completions.create(
model="llama-3.3-70b-instruct",
messages=messages,
extra_body={"provider": {"require": ["c5-type-2"]}},
)Prompts and responses are never written to logs or traces.
Billing is based solely on usage reported by the provider, never on local estimates.
An outage of the control plane does not stop inference already running.
Top up your balance
Billed by usage, paid from your balance — no contract, and it does not expire. The balance can be topped up automatically; invoicing with payment terms for the public sector is planned.
Generate a key
One key per workload, with a rate limit and a model allow-list — enforced before a request reaches a provider.
Swap the base URL
Tools that use the OpenAI API for chat completions, embeddings and the model list keep working unchanged — SDKs, frameworks, your own integrations.
Europe is a given. How strictly audited is your call.
Every request goes to a provider in Europe. Beyond that, the catalogue states for every model who operates it, which country it runs in and which third-party attestation applies, with what scope — an attestation often covers the infrastructure, not the AI product built on top of it. You filter by what your procurement authority accepts, C5 for instance.
Talk to us about the evidence your procurement authority requires.
Book a callMachine-readable, not marketing.
Sovereignty information consists of fields in the API, not footnotes in a brochure. Your compliance team checks the catalogue programmatically — operator, location, attestation and its scope.
{
"id": "example-eu-provider/llama-3.3-70b-instruct",
"owned_by": "example-eu-provider",
"sovereignty": {
"hosting_country": "DE",
"ownership": "eu",
"zero_retention": true,
"tier": "sovereign",
"certifications": [
{
"type": "c5-type-2",
"scope": "Infrastructure attestation naming the inference service",
"evidence_url": "https://example-eu-provider.eu/attestation.pdf"
}
]
}
}One product, three contexts of use.
For developer teams
Productive from the start: usage-based from a balance, keys with rate limits, cost per request.
- OpenAI-compatible API
- Usage-based, no contract
- Rate limit, model allow-list and expiry per key
- Cost per request visible
- Automatic top-up
For companies
Organisations with their own identity provider, roles and centralised billing.
- Everything in self-service
- SSO with your own identity providerplanned
- Roles: owner, admin, member
- Direct debit and invoicingplanned
For the public sector
Procurement-compliant sourcing: evidence, invoicing and filters for attested routes.
- Attestation evidence per model route
- XRechnung under EN 16931planned
- Invoicing with payment termsplanned
- Procurement documentationplanned
What you want to know before the first request.
What is konduit?
konduit is a European AI gateway: one OpenAI-compatible endpoint that routes your requests to inference providers in Europe. Billing is usage-based, paid from a balance. Sovereignty is a piece of metadata here — for every model the catalogue states the operator, the hosting country and the attestation with its scope, rather than a brochure. The platform is being built.
Is the API OpenAI-compatible?
Yes, for chat completions, embeddings, and listing and looking up models; balance and limits come from konduit’s own usage endpoint. Swap the base URL and the key, and existing SDKs keep working unchanged: bytes pass as sent, apart from the routing decision written into the request, a stream’s usage counts, requested for billing and passed on only if you asked, and tool-call ids for the few models whose chat template demands it.
Where does inference run, and what is stored?
Your requests go to inference providers in Europe. Which operator runs a model, which country it runs in and which attestation applies, with what scope, is stated for every model in the catalogue. Prompts and responses are never written to logs or traces; only metadata is recorded — model, token counts, latency. Your GDPR review therefore reads the catalogue, not a promise from us.
How does billing work?
Usage-based, paid from a balance, with no contract; the balance does not expire. Every charge derives solely from the usage the provider reports, never from a local estimate. Each key can carry its own rate limit, model allow-list and expiry; the organisation’s balance is checked and reserved before a request reaches a provider. The balance can be topped up automatically; invoicing with payment terms is planned.
How do I know how strictly a model has been audited?
The catalogue serves the fields machine-readably through GET /v1/models: operator, hosting country, attestation tier and the scope of the evidence. A tier is only ever as high as the linked evidence carries it; a commitment from the provider without a third-party audit is listed as self-declared. Where no evidence is on file, that is what the page says.
Let's talk about your use case.
The platform is being built. Procurement authorities, compliance teams and developer teams are joining us early — book a call or sign up for early access.
Book a callConfirmed by double opt-in, unsubscribe at any time. More in our privacy policy.