Zum Inhalt springen
DeutschlandGPT

Message erstellen

Natives Anthropic-Messages-Endpoint — eine originalgetreue Teilmenge von Anthropics öffentlichem Messages-Vertrag, sodass die Anthropic-SDKs und Claude Code unverändert funktionieren. Richten Sie sie auf https://api.deutschlandgpt.de/anthropic (selbst gehostet: https://<ihre-domain>/platform-api/api/anthropic) — jedes auf der Plattform gehostete Modell (Claude, GPT, Gemini, Mistral, …) ist über dieses Wire-Format erreichbar, nicht nur Claude. Diese Base URL liegt neben der OpenAI-kompatiblen /v2-Schnittstelle, nicht darin: Das SDK ergänzt /v1/messages selbst, deshalb liefert eine Base URL mit /v2 einen 404.

Authentifizieren Sie sich mit x-api-key: sk_<id>_<secret> (Standard des Anthropic-SDK) oder Authorization: Bearer sk_<id>_<secret>. Antworten tragen anthropic-version: 2023-06-01.

Unterstützt Streaming per SSE (stream: true), Tool-Use, Extended Thinking (thinking), Bilder und Dokumente sowie Prompt-Caching über cache_control-Breakpoints (wirksam auf Anthropic-Hosts, andernfalls ein No-op). Die Breakpoints setzen Sie: dieses Endpoint cacht genau das, was Sie markieren, und ergänzt niemals eigene Breakpoints — eine Anfrage ohne cache_control wird also gar nicht gecacht. ttl: "1h" wird auf diesem Endpoint unterstützt — hier ist es Anthropics eigenes Feld und keine Erweiterung von uns — und darf mit dem Standard 5m in einer Anfrage gemischt werden (Anthropics eigenes Muster aus 1h-Präfix und 5m-Ende), wobei jedes Kontingent zu seinem eigenen Tarif abgerechnet wird. Anthropics Reihenfolge-Regel gilt: 1h-Breakpoints müssen vor jedem 5m-Breakpoint stehen. Dies ist der EINZIGE Endpoint, auf dem ttl: "1h" beachtet wird; /v2/chat/completions und /v2/responses akzeptieren es und fallen auf fünf Minuten zurück. Die Aufteilung nach TTL steht in Anthropics eigenem Feld usage.cache_creation, und prompt_cache.warnings weist jede Markierung aus, die wir nicht genau wie geschrieben platzieren konnten. Siehe Abrechnung → Prompt-Caching.

Nicht unterstützt: Server-Tools (web_search_*, …), die Batches-API und service_tier (wird akzeptiert, aber ignoriert).

POSThttps://api.deutschlandgpt.de/anthropic/v1/messages

Beispielaufruf

curl https://api.deutschlandgpt.de/anthropic/v1/messages \
  -X POST \
  -H "Authorization: Bearer $DGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "claude-4.5-sonnet",
  "max_tokens": 0,
  "messages": [
    {
      "role": "user",
      "content": "string"
    }
  ],
  "system": "string",
  "tools": [
    {
      "name": "string"
    }
  ],
  "tool_choice": {
    "type": "auto"
  },
  "temperature": 0,
  "top_p": 0,
  "top_k": 0,
  "stop_sequences": [
    "string"
  ],
  "stream": false,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 0
  },
  "metadata": {},
  "service_tier": "string"
}'

Anfrage-Body

modelstringerforderlich

Registry-Modellname (z. B. claude-4.5-sonnet, gpt-4o, mistral-large). Jedes gehostete Modell ist über dieses Endpoint erreichbar — nicht nur Claude. Verfügbare Modelle mit /anthropic/v1/models aufzählen.

max_tokensintegererforderlich

Maximale Anzahl zu generierender Tokens. Pflichtfeld (anders als bei den OpenAI-kompatiblen Endpoints).

messagesAnthropicMessage[]erforderlich

Abwechselnde user- / assistant-Turns. Systemanweisungen gehören in das Top-Level-Feld system, nicht hierher.

rolestringerforderlich
contentstring | AnthropicContentBlock[]erforderlich

Ein einfacher String (Kurzform für einen Textblock) oder eine Liste von Content-Blocks.

systemstring | AnthropicTextBlock[]optional

System-Prompt: ein einfacher String oder eine Liste von Textblöcken (jeder Block kann einen cache_control-Breakpoint tragen).

toolsAnthropicTool[]optional

Eigene Tools, die das Modell aufrufen darf. Geben Sie jedes tool_use-Ergebnis in einer folgenden user-Message als tool_result-Block zurück.

typestringoptional

Weglassen oder custom. Andere Werte kennzeichnen nicht unterstützte Server-Tools.

namestringerforderlich
descriptionstringoptional

Was das Tool tut — das Modell entscheidet damit, wann es aufgerufen wird.

input_schemaobjectoptional

JSON Schema der Tool-Argumente.

cache_controlAnthropicCacheControloptional

Prompt-Caching-Breakpoint. Wirksam, wenn der Request von einem Anthropic-Host bedient wird; für andere Provider ein No-op.

typestringerforderlich
ttlstringoptional

Cache-Lebensdauer (TTL).

tool_choiceAnthropicToolChoiceoptional

Wie das Modell die bereitgestellten Tools verwenden soll.

temperaturenumberoptional

Sampling-Temperatur. Höher = zufälligere Ausgabe.

top_pnumberoptional

Nucleus-Sampling.

top_knumberoptional

Nur aus den Top-K-Optionen pro Token samplen.

stop_sequencesstring[]optional

Eigene Sequenzen, die die Generierung stoppen.

streambooleanoptional

Wenn true, wird mit Server-Sent Events im Anthropic-Streaming-Format geantwortet: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop.

thinkingAnthropicThinkingConfigoptional

Extended-Thinking-Konfiguration. Wird auf die entsprechenden Reasoning-Optionen des Providers abgebildet, der das gewählte Modell hostet.

metadataobjectoptional

Request-Metadaten.

user_idstring | nulloptional

Opaker Endnutzer-Identifikator.

service_tierstringoptional

Wird akzeptiert, aber ignoriert — das Routing wird serverseitig entschieden.

Antwort

200application/json
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "model": "string",
  "content": [
    {
      "type": "text",
      "text": "string"
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": "string",
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  },
  "prompt_cache": {
    "cache_write_tokens": {
      "5m": 0,
      "1h": 0
    },
    "warnings": [
      {
        "code": "breakpoint_limit_exceeded",
        "message": "string"
      }
    ]
  }
}

Die generierte Message. Mit stream: true wird stattdessen ein text/event-stream mit Anthropic-Streaming-Events zurückgegeben.

idstringerforderlich
typestringerforderlich
rolestringerforderlich
modelstringerforderlich
contentAnthropicResponseContentBlock[]erforderlich
stop_reasonstringerforderlich
stop_sequencestring | nulloptional
usageAnthropicUsageerforderlich
input_tokensintegererforderlich
output_tokensintegererforderlich
cache_creation_input_tokensintegererforderlich

In den Prompt-Cache geschriebene Tokens (0 bei Providern ohne Prompt-Caching).

cache_read_input_tokensintegererforderlich

Aus dem Prompt-Cache gelesene Tokens (0 bei Providern ohne Prompt-Caching).

prompt_cacheobjectoptional

DeutschlandGPT-Erweiterung. Was mit den gesendeten cache_control-Breakpoints passiert ist. Fehlt vollstaendig, wenn es nichts zu melden gibt; eine Anfrage ohne cache_control bleibt also unveraendert. Siehe Abrechnung -> Prompt-Caching.

cache_write_tokensobject

Cache-Write-Tokens nach TTL, wie vom Anbieter gemeldet: 125% des Eingabetarifs fuer 5m, 200% fuer 1h. Auf diesem Endpoint werden beide TTLs beachtet.

5minteger

Tokens written at the default 5-minute TTL.

1hinteger

Tokens written at the extended 1-hour TTL.

warningsobject[]

Breakpoints, die nicht genau wie geschrieben umgesetzt werden konnten. Nur vorhanden, wenn mindestens einer betroffen war.

codestringerforderlich

Stable machine-readable reason, so a client can branch without parsing prose.

messagestringerforderlich

Human-readable explanation naming the affected position.

Statuscodes

200

Die generierte Message. Mit stream: true wird stattdessen ein text/event-stream mit Anthropic-Streaming-Events zurückgegeben.

AnthropicMessageResponse
400

Ungültiger Request-Body.

AnthropicError
401

Fehlender oder ungültiger API-Key.

AnthropicError
404

Modell nicht gefunden, oder der API-Key hat keinen Zugriff darauf.

AnthropicError
War diese Seite hilfreich?