Models
/modelsModell-IDs ermitteln, die für den Schlüssel sichtbar sind.
- Streaming
- —
- Hinweis
- Schlüsselbezogene Antwort; das folgende Beispiel ist gekürzt.
API-DOKUMENTATION
Authentifizieren Sie sich mit Ihrem Sealarca-API-Schlüssel, entdecken Sie die verfügbaren Modelle, senden Sie Responses-, Chat-Completions- oder Claude-Messages-Anfragen und verbinden Sie den Dienst mit Ihrer Software.
Die Beispiele verwenden eine von GET /v1/models zurückgegebene Modell-ID. In dieser Dokumentation ist kein Modell fest hinterlegt.
Erster Aufruf
cURL · Responses
curl https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Fassen Sie diesen vertraulichen Text in drei Punkten zusammen.\",\"max_output_tokens\":256}"Antwortstruktur
JSON · Gekürzte Antwort
{"id":"<response-id>","object":"response","status":"completed","model":"<model-id>","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":"<generated text>"}]}]}HIER BEGINNEN
Halten Sie diese Reihenfolge ein: Zugang, Modellentdeckung und anschliessend eine serverseitige Anfrage.
Erstellen Sie Ihr Sealarca-Konto für den Dashboard-Zugriff.
Laden Sie Ihr Prepaid-Guthaben in CHF auf, bevor Sie die API aufrufen.
Erstellen Sie einen Sealarca-API-Schlüssel und bewahren Sie ihn auf dem Server auf.
Rufen Sie GET /v1/models auf und wählen Sie eine für Ihren Schlüssel sichtbare ID.
Verwenden Sie die zurückgegebene ID mit Responses, Chat Completions oder Claude Messages.
Die öffentliche API akzeptiert einen Sealarca-API-Schlüssel als Bearer-Token oder für Claude-Clients über `x-api-key` auf der Messages-Route.
Authentifizierungs-Header
Verwenden Sie `Authorization: Bearer ...` für Responses und Chat Completions. Claude-Clients können mit `anthropic-version` auf `/v1/messages` `x-api-key: ...` verwenden.
Authorization: Bearer $SEALARCA_API_KEYx-api-key: $SEALARCA_API_KEYanthropic-version: 2023-06-01Schlüssel auf dem Server halten
Legen Sie ihn nie in eine öffentliche Webanwendung, eine verteilte mobile App, ein Repository oder eine NEXT_PUBLIC_*-Variable. Desk ist ein eigener lokaler Client: Der Benutzer gibt den Schlüssel ein und er bleibt nur während der Tab-Sitzung erhalten.
Ein serverseitiger Schlüssel, die Basis-URL und ein JSON-Body genügen. Das kanonische Beispiel verwendet Responses.
Ausschliesslich serverseitiger Schlüssel. Platzieren Sie den Schlüssel niemals in einer öffentlichen Webanwendung, einem Browser-Bundle, einer `NEXT_PUBLIC_*`-Variable, einem Git-Repository oder einer verteilten mobilen App. Eine öffentliche Webanwendung muss Ihr Backend aufrufen, das anschliessend Sealarca aufruft.
export SEALARCA_API_KEY="YOUR_SEALARCA_API_KEY"
export SEALARCA_MODEL_ID="MODEL_ID_FROM_V1_MODELS"
curl https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Fassen Sie diesen vertraulichen Text in drei Punkten zusammen.\",\"max_output_tokens\":256}"{"id":"<response-id>","object":"response","status":"completed","model":"<model-id>","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":"<generated text>"}]}]}Fragen Sie den Katalog mit demselben Schlüssel ab und verwenden Sie eine exakt zurückgegebene `id` im Feld `model`.
curl https://api.sealarca.ch/v1/models \
-H "Authorization: Bearer $SEALARCA_API_KEY"{"data":[{"id":"<model-id>","object":"model"}]}Die Antwort ist auf den Schlüssel begrenzt. Verwenden Sie eine exakt zurückgegebene ID als model-Wert und kopieren Sie keinen Modellnamen aus dieser Seite.
Diese Statusangaben beschreiben den veröffentlichten Vertrag. Nicht verfügbare Routen werden bewusst nicht veröffentlicht.
/modelsModell-IDs ermitteln, die für den Schlüssel sichtbar sind.
/responsesEmpfohlenes Format für neue Integrationen mit dem OpenAI-SDK.
/chat/completionsMessages-Format für bestehende Clients.
/messagesMessages-Format für Claude-kompatible Clients und Integrationen mit der Messages API.
/embeddingsVektordarstellungen für Suche und Ähnlichkeitsvergleich erstellen.
/vault/proofs/{receiptId}Status und Prüfungen zu einem Vault-Beleg abrufen.
/vault/proofs/{receiptId}/bundleDas signierte JWS eines endgültigen Vault-Nachweises herunterladen.
/vault/proofs/signing-keysDas öffentliche JWKS der aktiven und zurückgezogenen Schlüssel abrufen.
/vault/attestation?nonce=…Eine frische, an einen Client-Nonce gebundene Attestierung anfordern.
Vier Beispiele: Drei verwenden Responses, das vierte Messages. Wählen Sie ein für den jeweiligen Endpoint freigegebenes Modell.
curl https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Analysieren Sie dieses Dokument und nennen Sie drei Risiken.\"}"Responses, Chat Completions und Claude Messages können mit stream: true Server-Sent Events anfordern.
Setzen Sie stream auf true und verwenden Sie curl -N oder einen gleichwertigen Streaming-HTTP-Client. Die Antwort verwendet text/event-stream.
Verarbeiten Sie data:-Datensätze, die durch Leerzeilen getrennt sind. Ereignisdaten und Beendigung hängen vom Routenvertrag ab.
curl -N https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Fassen Sie diese Datei zusammen.\",\"stream\":true}"curl -N https://api.sealarca.ch/v1/messages \
-H "x-api-key: $SEALARCA_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"max_tokens\":256,\"stream\":true,\"messages\":[{\"role\":\"user\",\"content\":\"Fassen Sie diese Datei zusammen.\"}]}"Content-Type: text/event-stream
data: <JSON event>
Eine vertrauliche multimodale Route für Text, Bilder, Tools und strukturierte Ausgaben mit Streaming.
curl https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm.5.3-flash-shield",
"input": "Reply with OK.",
"reasoning": {
"effort": "low"
},
"store": false,
"max_output_tokens": 256
}'curl https://api.sealarca.ch/v1/chat/completions \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm.5.3-flash-shield",
"messages": [
{
"role": "user",
"content": "Reply with OK."
}
],
"reasoning_effort": "low",
"max_tokens": 256,
"stream": true
}'curl https://api.sealarca.ch/v1/messages \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm.5.3-flash-shield",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Reply with OK."
}
]
}'X-Sealarca-Receipt-ID und X-Sealarca-Receipt-URL aus der Antwort lesen. Der Beleg ist nach Abschluss und Übermittlung verfügbar; ein 404 kann vorübergehend sein. complete, interrupted und failed beschreiben den beobachteten Austausch.
# X-Sealarca-Receipt-ID / X-Sealarca-Receipt-URL / X-Sealarca-Proof-Profile
curl https://api.sealarca.ch/v1/vault/proofs/$RECEIPT_ID/bundle \
-H "Authorization: Bearer $SEALARCA_API_KEY"
# JWKS: https://api.sealarca.ch/v1/vault/proofs/signing-keysJede akzeptierte Vault-Inferenz enthält einen Beleg, der die Antwort mit der von Sealarca geprüften Route und Sitzung verknüpft.
Vor jeder Weiterleitung zur Ausführung prüft Sealarca, ob die Vertrauensumgebung und der mit der Route verbundene Kanal die Vault-Anforderungen erfüllen. Schlägt diese Prüfung fehl oder ist sie nicht verfügbar, wird die Inferenz ohne Rückfall auf eine ungeschützte Route abgelehnt. Der Vault-Beleg verknüpft anschliessend die Antwort mit der geprüften Route und Sitzung.
curl -i https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Fassen Sie diese Datei zusammen.\"}"Der Anfangsstatus ist pending. Bewahren Sie die Belegkennung auf und rufen Sie das endgültige Ergebnis über die angegebene URL ab.
export SEALARCA_VAULT_PROOF_URL="<X-Sealarca-Vault-Proof-URL>"
curl "$SEALARCA_VAULT_PROOF_URL" \
-H "Authorization: Bearer $SEALARCA_API_KEY"{
"schema": "sealarca-vault-proof/1",
"receipt_id": "<receipt-id>",
"status": "verified",
"model": "<model-id>",
"created_at": "<ISO-8601>",
"updated_at": "<ISO-8601>",
"verified_at": "<ISO-8601>",
"expires_at": "<ISO-8601>",
"admission": {
"status": "verified",
"checked_at": "<ISO-8601>",
"attested_at": "<ISO-8601>",
"expires_at": "<ISO-8601>",
"evidence_digest": "sha256:<hex>",
"keyset_digest": "sha256:<hex>"
},
"checks": [
{ "id": "attestation", "status": "verified" },
{ "id": "receipt", "status": "verified" }
],
"hashes": {
"request": "sha256:<hex>",
"response": "sha256:<hex>",
"request_received": "sha256:<hex>",
"request_forwarded": "sha256:<hex>",
"response_returned": "sha256:<hex>",
"keyset": "sha256:<hex>",
"evidence": "sha256:<hex>",
"runtime": "sha256:<hex>"
}
}Die Prüfung läuft noch. Versuchen Sie es nach einer kurzen Wartezeit erneut.
Zulassung, Beleg und referenzierte Vault-Sitzung haben die erforderlichen Prüfungen erfüllt.
Der Nachweis wurde nicht bestätigt. Behandeln Sie das Ergebnis nicht als verifiziert.
404 bedeutet, dass der Nachweis fehlt oder nicht zugänglich ist; 410 bedeutet, dass er abgelaufen ist.
503 · VAULT_VERIFICATION_UNAVAILABLEDie Vault-Prüfung ist nicht verfügbar. Die Inferenz wird abgelehnt, ohne auf eine ungeschützte Ausführung auszuweichen.
Die Standardschnittstelle zeigt das Ergebnis der Prüfung durch Sealarca. Sie ist kein vollständiger Export der Rohartefakte für eine unabhängige kryptografische Prüfung; der Zugang unterliegt dem anwendbaren vertraglichen Verfahren.
Jeder aktive Schlüssel desselben Benutzers kann dessen Verlauf abrufen. Platzieren Sie einen API-Schlüssel niemals in der URL.
Beim Streaming wird der Beleg mit der Antwort angekündigt; das endgültige Ergebnis ist nach dem Ende des Streams verfügbar.
Nachweise werden 90 Tage aufbewahrt und enthalten weder Prompt noch Antwort oder API-Schlüssel.
Geben Sie einen eindeutigen Nonce aus 64 kleingeschriebenen Hexadezimalzeichen an, um eine frische, authentifizierte Attestierung anzufordern.
export SEALARCA_VAULT_NONCE="<64-lowercase-hex-characters>"
curl "https://api.sealarca.ch/v1/vault/attestation?nonce=$SEALARCA_VAULT_NONCE" \
-H "Authorization: Bearer $SEALARCA_API_KEY"Die Standardantwort enthält Status, Nonce, Prüf- und Ablaufzeit, normalisierte Prüfungen, Evidence-, Runtime- und Keyset-Digests sowie die nützlichen Fingerabdrücke der Umgebungsschlüssel. Vollständige Artefakte bleiben dem vertraglich genehmigten Audit-Export vorbehalten.
{
"schema": "sealarca-vault-attestation/1",
"status": "verified",
"nonce": "<64-lowercase-hex-characters>",
"verified_at": "<ISO-8601>",
"expires_at": "<ISO-8601>",
"checks": [{ "id": "<check-id>", "status": "verified" }],
"measurements": {
"evidence": "sha256:<hex>",
"runtime": "sha256:<hex>",
"keyset": "sha256:<hex>"
},
"key_fingerprints": {
"receipt_signing": ["sha256:<hex>"],
"tls": ["sha256:<hex>"],
"e2ee": ["sha256:<hex>"]
}
}Jeder Wert besteht aus sha256: gefolgt vom hexadezimalen Digest der in der Vault-Kette beobachteten Bytes. request_received umfasst den von der Umgebung empfangenen Body, request_forwarded den vor dem Modell eventuell transformierten Body und response_returned die beobachteten Antwortbytes einschliesslich Streams. Nach Normalisierung oder Transformation können diese Bytes von den ursprünglichen HTTP-Bytes des Clients abweichen.
Ein endgültiger Nachweis mit Status verified oder failed ist als sealarca-vault-proof-bundle/1 verfügbar. Sein Payload wird nach RFC 8785 kanonisiert und danach als JWS mit Ed25519 signiert. Das öffentliche JWKS bewahrt aktive und zurückgezogene Schlüssel auf, damit ein archiviertes Bundle nach 90 Tagen geprüft werden kann.
Die Signatur gewährleistet Integrität und Herkunft des Bundles von Sealarca. Sie verlängert nicht die Gültigkeitsdauer der Attestierung und ist für sich allein keine unabhängige Hardwareprüfung.
curl -f "$SEALARCA_VAULT_PROOF_URL/bundle" \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-o sealarca-vault-proof.jws.json
curl -f "https://api.sealarca.ch/v1/vault/proofs/signing-keys" \
-o sealarca-vault-jwks.jsonimport { createHash, createPublicKey, verify } from "node:crypto";
import { readFileSync } from "node:fs";
const bundle = JSON.parse(readFileSync("sealarca-vault-proof.jws.json", "utf8"));
const jwks = JSON.parse(readFileSync("sealarca-vault-jwks.json", "utf8"));
const header = JSON.parse(Buffer.from(bundle.protected, "base64url"));
if (header.alg !== "EdDSA" || header.typ !== "sealarca-vault-proof+jws") throw new Error("Unexpected JWS algorithm");
const jwk = jwks.keys.find((key) => key.kid === header.kid);
if (!jwk || jwk.kty !== "OKP" || jwk.crv !== "Ed25519") throw new Error("Signing key not found or unsupported");
// Obtain this fingerprint independently from your current Sealarca contract/guide.
// Never trust a fingerprint received alongside an untrusted bundle.
const expected = process.env.SEALARCA_VAULT_JWK_SHA256;
if (!expected) throw new Error("Trusted JWK fingerprint required");
const thumbprint = createHash("sha256")
.update(JSON.stringify({ crv: jwk.crv, kty: jwk.kty, x: jwk.x }))
.digest("hex");
if ("sha256:" + thumbprint !== expected) throw new Error("Unexpected signing key");
const valid = verify(
null,
Buffer.from(bundle.protected + "." + bundle.payload),
createPublicKey({ key: jwk, format: "jwk" }),
Buffer.from(bundle.signature, "base64url"),
);
if (!valid) throw new Error("Invalid Vault proof signature");
console.log(JSON.parse(Buffer.from(bundle.payload, "base64url")));503 · VAULT_PROOF_SIGNING_UNAVAILABLEMinimale Felder, Ausgabeformat und Streaming-Verhalten für bestätigte Routen.
Kein Request-Body. Bearer-Token erforderlich.
Schlüsselbezogene Liste mit den für diesen Schlüssel sichtbaren Modell-IDs.
model
input
max_output_tokens
stream
`response`-Objekt; SDKs exponieren `output_text`.
Erforderlich: `model` und `input`. Übliche dokumentierte Felder: `max_output_tokens` (positive Ganzzahl) und `stream` (Boolean). Andere Felder hängen vom Modell ab und gehören nicht zu diesem Mindestvertrag.
export SEALARCA_API_KEY="YOUR_SEALARCA_API_KEY"
export SEALARCA_MODEL_ID="MODEL_ID_FROM_V1_MODELS"
curl https://api.sealarca.ch/v1/responses \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"input\":\"Fassen Sie diesen vertraulichen Text in drei Punkten zusammen.\",\"max_output_tokens\":256}"model
messages
max_tokens
stream
choices[0].message.content
Erforderlich: `model` und `messages`. Übliche dokumentierte Felder: `max_tokens` (positive Ganzzahl) und `stream` (Boolean). Andere Felder hängen vom Modell ab und gehören nicht zu diesem Mindestvertrag.
curl https://api.sealarca.ch/v1/chat/completions \
-H "Authorization: Bearer $SEALARCA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"messages\":[{\"role\":\"user\",\"content\":\"Fassen Sie diese Datei zusammen.\"}],\"max_tokens\":256}"model
messages
max_tokens
stream
content
Erforderlich: `model`, `max_tokens` und `messages`. `stream` aktiviert SSE-Ereignisse. Andere Felder hängen vom veröffentlichten Vertrag ab.
curl https://api.sealarca.ch/v1/messages \
-H "x-api-key: $SEALARCA_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$SEALARCA_MODEL_ID\",\"max_tokens\":256,\"messages\":[{\"role\":\"user\",\"content\":\"Fassen Sie diese Datei zusammen.\"}]}"Wiederholen Sie Anfragen nicht blind. Beheben Sie deterministische 4xx-Fehler und wenden Sie begrenzten Backoff bei vorübergehenden Fehlern an.
Anfrage-ID. Jede `/v1/`-Antwort enthält einen von Sealarca generierten `x-request-id`-Header. Ein Fehlerkörper kann zusätzlich eine separate Kennung `(id=…)` enthalten; bewahren Sie beide auf, falls vorhanden.
Diese Empfehlungen folgen dem aktuellen Verhalten von Authentifizierung, Modellzugriff, Abrechnung und Anfrageverfolgung.
Laden Sie den Schlüssel aus einer Umgebungsvariable oder einem Secret-Manager und rotieren Sie ihn bei einer Offenlegung.
Rufen Sie /v1/models mit demselben Schlüssel auf und hinterlegen Sie keine Modell-ID fest im bereitgestellten Code.
Korrigieren Sie deterministische 4xx-Fehler. Verwenden Sie begrenztes Backoff für 429, 5xx und Gateway-Timeouts.
Bewahren Sie x-request-id und eine mit dem Fehler gelieferte Fehler-ID für Support und Diagnose auf.
Die API verwendet Prepaid-Guthaben in CHF. Das Guthaben wird vor der Anfrage geprüft und die tatsächliche Nutzung belastet.
Das Guthaben wird über Guthabenaufladungen finanziert.
Input und Output können unterschiedliche Tarife haben. Der Katalog zeigt die öffentlichen Preise jedes Modells.
Laden Sie das Guthaben vor einem erneuten Versuch auf.
Nutzen Sie diese Links für Kontozugang, Modellverbrauch, Schutzmassnahmen und den technischen Umfang des Dienstes.
Folgen Sie dem Ablauf für Konto, Guthaben und API-Schlüssel.
Sehen Sie den dynamischen Katalog und die veröffentlichten Verbrauchsinformationen.
Prüfen Sie Schutzmassnahmen, Datenverarbeitung und deren Grenzen.
Verstehen Sie den öffentlichen Dienstfluss und die geschützte Ausführungsumgebung.
Erstellen Sie Ihren Zugang, entdecken Sie ein erlaubtes Modell und senden Sie Ihre erste serverseitige Anfrage.