SovrGPT Docs
API

OpenAI-compatible API

The SovrGPT API speaks the OpenAI schema: base URL, sov_… bearer keys, scopes and every endpoint for chat, embeddings, audio and decisions.

The SovrGPT API is OpenAI-compatible. Existing OpenAI clients work once you change the base URL, the API key and the model ID. Catalogue models run in EU data centres.

  • Base URL: https://sovrgpt.com/api/v1
  • Header: Authorization: Bearer sov_…
  • Key: sov_ followed by 48 hex characters, created under Settings → API keys; see Authentication.
  • Scopes: chat, embeddings, rerank, speech, transcribe, mcp, decisions. A new key has all of them by default; narrow them down per use case.
curl https://sovrgpt.com/api/v1/chat/completions \
  -H "Authorization: Bearer $SOVR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemma-4-12b", "messages": [{"role": "user", "content": "Hello!"}]}'

Endpoints

EndpointScopePurpose
GET /v1/models–Every model you can use: chat, embeddings, re-ranking, speech, decisions.
GET /v1/me–What this key may do: every scope with a granted flag.
POST /v1/chat/completionschatChat, as JSON or as a stream (SSE).
POST /v1/embeddingsembeddingsEmbeddings, OpenAI-compatible (bge-m3 as the default, nomic-embed-code; at STACKIT stackit-qwen3-vl-embedding-8b with a selectable length via dimensions and stackit-e5-mistral-7b, overview).
POST /v1/rerankrerankRe-ranking, Cohere-compatible (bge-reranker-base).
POST /v1/audio/speechspeechText-to-speech: voice catalogue (voice: "bib-m-40"), currently defaults to voxtral-mini-tts; further engines via provider (qwen, preliminary; supertonic; cosyvoice with emotion, inline tags and voice cloning).
GET /v1/audio/voices–The voice catalogue with samples and whether your organisation may select.
POST /v1/audio/voices/designsspeechDesign your own fictional voice from a description; auto_adopt: true does it in one go. Plus GET (list), /{id}, /{id}/adopt, /suggest.
GET /v1/audio/voices/design-options–The casting sheet (timbre, character, pace, intonation, register, use case), the limits and whether the service is switched on.
POST /v1/audio/transcriptionstranscribeSpeech-to-text (Voxtral).
POST /v1/audio/uploadstranscribeUpload ticket for recordings above 4.5 MiB: a signed address you upload to directly, limit 100 MiB.
POST /v1/decisionsdecisionsDecision Engine: state and questions with fixed options in, probabilities out. No prose, one forward pass per question.
GET /v1/decisions/presets–Server-side question packs (ticket-routing-v1).
GET /v1/decisions/models–sovr-decision-v1/-v2, this organisation's default, operator, country, measurements.
POST /mcp/mcpmcpMCP server with chat, search, image and video tools for Cursor, Claude Desktop, Zed, Windsurf.
POST /mcp/docs/mcpno keyPublic documentation search via MCP.
POST /v1/images/generations–Planned: image generation (Z-Image, Qwen-Image, FLUX.2) as REST. Available today in chat and via MCP.

Endpoints without a scope still need a valid key, except the documentation search. The machine-readable description is the OpenAPI specification.

Compatibility with the OpenAI schema

We follow the OpenAI v1 schema as of 2026-04. Extra fields such as tier in the model list extend the schema; standard clients ignore them. Other OpenAI fields (e.g. seed, logit_bias) are passed through to the model server. Whether they take effect depends on the model.

Limits

The API currently enforces no fixed request limit per key. Your client should still handle these responses:

StatusMeaningWhat to do
402 quota_exceededThe spend limit of the organisation (org_spend_limit) or of the person who created the key (user_spend_limit) has been reached.Check the limit under Settings → Spend limits.
429The model provider is throttling.Retry with backoff.
503 model_cold_startA self-hosted model is starting up.Retry after Retry-After (60 s).

Versioning

  • Current version: v1.
  • Breaking changes get a new version number (v2, v3, …) with at least six months of overlap.
  • New fields and new model IDs arrive without a new version. GET /v1/models tells you which models exist right now.

Next

OpenAI-compatible API