Private beta · Production deploy on OVHcloud Paris

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.usage

curl

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:

TierFormatExample
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