Skip to content

Review deployment — not yet open for customers. No inference node and no payment provider are connected: the API answers 503 and nothing is sold or charged.

SOVEREIGN AI CLOUDPOWERED BY MEDIA HOLDING

Reference

Sovereign AI Cloud API

Rendered from the OpenAPI 3.1 specification of the control plane. The format is OpenAI-compatible so that client libraries work unchanged. No OpenAI services are involved.

Specification version 0.1.0 · BUILT — tested in isolation; not published

Overview

OpenAI-compatible API format. No OpenAI services are involved. Sovereign inference by MEDIA HOLDING INTELLIGENCE ECOSYSTEM.

Servers

  • https://sovereignai-api.mediaholding.tech/v1 — PLANNED public host (publication is a separate Founder GO)
  • http://127.0.0.1:8796/v1 — local isolated build

Authentication

http bearer — Authorization: Bearer sk-sov-<prefix>-<secret>. A project API key created in the cabinet (CONTRACT.md §4). The secret is shown once and stored only as an Argon2 hash.

Request identifiers

Every response carries X-Request-Id (CONTRACT.md §4); error bodies carry the same id in error.request_id. Quote it in support requests.

Contents

Endpoints

GET/v1/models

List Models

Responses

StatusMeaningBody
200 Successful Response application/json → any

GET/v1/models/{model_id}

Get Model

Parameters

NameInTypeDescription
model_id required path string

Responses

StatusMeaningBody
200 Successful Response application/json → any
422 Validation Error application/json → HTTPValidationError

POST/v1/chat/completions

Chat Completions

Request body required

ChatRequest

Request body
FieldTypeDescription
model required string
messages required array of Message
min items 1
max_tokens integer | null
temperature number | null
stream boolean
default false
stream_options object | null
tools array of any | null
tool_choice any | null
response_format object | null
stop any | null
top_p number | null
seed integer | null
chat_template_kwargs object | null
user string | null
n integer | null
default 1

Responses

StatusMeaningBody
200 Successful Response application/json → any
422 Validation Error application/json → HTTPValidationError

POST/v1/completions

Completions

Legacy text generation: mapped onto chat with a single user message (documented, not hidden).

Request body required

CompletionRequest

Request body
FieldTypeDescription
model required string
prompt required string | array of string
max_tokens integer | null
temperature number | null
stream boolean
default false
stop any | null

Responses

StatusMeaningBody
200 Successful Response application/json → any
422 Validation Error application/json → HTTPValidationError

GET/v1/usage

Usage

Responses

StatusMeaningBody
200 Successful Response application/json → any

GET/v1/health

Health

Responses

StatusMeaningBody
200 Successful Response application/json → any

Schemas

ChatRequest

ChatRequest
FieldTypeDescription
model required string
messages required array of Message
min items 1
max_tokens integer | null
temperature number | null
stream boolean
default false
stream_options object | null
tools array of any | null
tool_choice any | null
response_format object | null
stop any | null
top_p number | null
seed integer | null
chat_template_kwargs object | null
user string | null
n integer | null
default 1

CompletionRequest

CompletionRequest
FieldTypeDescription
model required string
prompt required string | array of string
max_tokens integer | null
temperature number | null
stream boolean
default false
stop any | null

HTTPValidationError

HTTPValidationError
FieldTypeDescription
detail array of ValidationError

Message

Message
FieldTypeDescription
role required string
content any
default ""
name string | null

ValidationError

ValidationError
FieldTypeDescription
loc required array of string | integer
msg required string
type required string
input any
ctx object

Errors

Every error is a JSON body of one shape, with the HTTP status that names its class. The message never contains URLs, tokens, paths or upstream exception messages. Retry-After accompanies 429 and 503.

HTTPerror.typeWhen
400invalid_request_errorThe body or parameters are invalid; also 404 with a code for an unknown model or route.
401authentication_errorMissing, malformed, revoked or unknown API key.
403permission_errorThe key may not use this model, project or route.
404invalid_request_errorUnknown model or route (code names it).
429rate_limit_error · budget_exceededRate limit or project budget reached; wait Retry-After seconds.
500server_errorAn unexpected failure on our side; quote the request id.
503backend_busy · upstream_unavailableThe GPU is held by another job, or the inference provider is down; wait Retry-After seconds. No fallback to any external supplier exists.
{
  "error": {
    "type": "invalid_request_error | authentication_error | permission_error | rate_limit_error | budget_exceeded | backend_busy | upstream_unavailable | server_error",
    "code": "<machine-readable>",
    "message": "<human-readable>",
    "request_id": "<uuid>"
  }
}