Developer docs
Build on EU-sovereign LLM rails. Drop-in OpenAI-compatible API, per-request jurisdiction policy, audit log included. Replace one line of code; route across global hyperscalers, EU-hosted and EU-sovereign providers under one contract.
Quickstart
The gateway is OpenAI-compatible. Point your existing OpenAI client at https://api.techvera.ai/v1 and swap your key for a TechVera key — that is it.
Python (openai >= 1.0)
from openai import OpenAI
client = OpenAI(
base_url="https://api.techvera.ai/v1",
api_key="tvr-...", # request access at office@techvera.ai
)
response = client.chat.completions.create(
model="mistral-ai/mistral-large-latest",
messages=[
{"role": "user", "content": "Explain Three-Layer Sovereignty."},
],
)
print(response.choices[0].message.content)
# usage and per-request cost are on response.usagecurl
curl https://api.techvera.ai/v1/chat/completions \
-H "Authorization: Bearer tvr-..." \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-ai/mistral-large-latest",
"messages": [
{"role": "user", "content": "Explain Three-Layer Sovereignty."}
]
}'Key concepts
Authentication
All endpoints require a Bearer token in theAuthorization header. Keys are scoped to your TechVera organisation and inherit its jurisdiction policy. Keys prefixed with test- route exclusively to the Quality pseudo-LLM for integration tests — billable usage starts on the first non-test key call.
Model tier format
The model field uses a tiered format that decouples client code from the provider lottery:
| Tier | Format | Example |
|---|---|---|
| 1 — Explicit | {provider}/{model} | mistral-ai/mistral-large-latest |
| 2 — Jurisdiction-Aware | {jurisdiction}/{model} | eu-sovereign/gpt-4o |
| 2+ — Model-Pinned Optimised | {jurisdiction}-{strategy}/{model} | eu-hosted-cheapest/gpt-4o |
| 3 — Fully Optimised | {jurisdiction}/{strategy} | eu-sovereign/cheapest |
Tier 1 ships today. Higher tiers roll out as the routing policy engine lands — your code keeps working unchanged when you upgrade.
Streaming
POST /v1/chat/completions supports SSE streaming when stream: true. Per-request cost and token usage are delivered in the final SSE chunk's usage object — same shape as OpenAI's stream_options.include_usage.
Jurisdiction policy
Every request is routed under your organisation's jurisdiction policy. The policy decides which providers, regions and operators are eligible for the call —eu-sovereign excludes anything with US-operator exposure, eu-hostedpermits EU-region US-operators, globalpermits any. The policy is enforced before the provider call, audited per request, and exportable for your compliance team.
Errors
Errors use the OpenAI-compatible{ error: { code, message, type } }envelope so existing client error handling works unchanged. See thefull reference for the catalogue of error codes per endpoint.
Next steps
Full API reference →
Interactive Scalar-rendered docs for every endpoint, schema and error code. Try requests inline.
OpenAPI 3.1 spec →
Raw YAML for codegen, Postman import, contract testing. Versioned with the gateway release tag.
Models catalogue →
Every model available across providers — global, EU-hosted and EU-sovereign, with pricing per token.
Request access →
Private beta. Email us your organisation and use-case; we onboard within one business day.