Entwickeln / Referenz
Modelle & Preise
Welche Modelle ein Schlüssel aufrufen darf und wo die öffentliche Preisliste der von Noirdoc verwalteten Modelle steht.
Modelle
/v1/models - Authentifizierung
- ja, API-Schlüssel
- Format
- JSON
- Abrechnung
- keine Modellkosten
GET /v1/models liefert die Modelle, die der aufrufende Schlüssel verwenden darf. Die Antwort hat die Form der OpenAI-Modellliste (object: "list" mit data). Die Liste enthält
- die Modelle eigener Anbieter-Schlüssel (BYOK) Ihrer Organisation,
- die von Noirdoc verwalteten Modelle, wenn Ihre Organisation sie nutzen darf.
Das Gateway filtert die Liste mit denselben Regeln wie die Anfragen selbst: Die Einstufung der Organisation als Berufsgeheimnisträger, die Einschränkungen des Schlüssels und seine erlaubten Modelle gelten auch hier. Gibt es dieselbe ID bei einem eigenen und einem verwalteten Anbieter, gilt der eigene.
| Feld | Inhalt |
|---|---|
id | Modell-ID, die Sie in model senden |
object | immer model |
owned_by | personal (eigener Anbieter-Schlüssel) oder platform (von Noirdoc verwaltet) |
display_name | Anzeigename des Modells |
endpoint_family | Familie des Modells: chat, embeddings, stt, tts oder image_gen. Sie legt fest, über welchen Endpunkt Sie das Modell aufrufen. |
legacy_public_id | frühere ID des Modells, weiterhin aufrufbar, sonst null |
Die Liste ist nach id sortiert und enthält Modelle aller Endpunkt-Familien. Die Familie steht in endpoint_family: chat für /v1/chat/completions, /v1/responses und /v1/messages, embeddings für /v1/embeddings, stt für /v1/audio/transcriptions, tts für /v1/audio/speech und image_gen für /v1/images/generations. Das API-Format des Anbieters (OpenAI oder Anthropic) steht nicht in der Liste. Rufen Sie ein Modell über einen Endpunkt einer anderen Familie oder eines anderen API-Formats auf, antwortet das Gateway mit dem Fehlercode wrong_endpoint_for_model.
curl https://api.noirdoc.de/v1/models \
-H "Authorization: Bearer $NOIRDOC_API_KEY"for model in client.models.list():
print(model.id)for await (const model of client.models.list()) {
console.log(model.id);
}{
"object": "list",
"data": [
{
"id": "qwen3.8-27b",
"object": "model",
"owned_by": "platform",
"display_name": "Qwen 3.8 27B",
"endpoint_family": "chat",
"legacy_public_id": null
}
]
}Preise
/v1/prices - Authentifizierung
- nein, öffentlich
- Format
- JSON
- Abrechnung
- keine
GET /v1/prices ist die öffentliche Preisliste der von Noirdoc verwalteten Modelle. Der Endpunkt braucht keinen Schlüssel. Er enthält nur aktive Modelle mit vollständigem Preis. Modelle eigener Anbieter-Schlüssel stehen nie darin.
Die Liste hat eine Zeile je Modell und Anbieter. Bieten mehrere Anbieter dieselbe Modell-ID an, erscheint die ID mehrfach, mit dem jeweiligen Anbieter und Preis. Welchen Anbieter das Gateway wählt, erklärt Anbieter & Routing.
| Feld | Inhalt |
|---|---|
public_id | Modell-ID für model |
legacy_public_id | frühere ID dieser Zeile, weiterhin aufrufbar und an diesen Anbieter gebunden, sonst null |
provider_slug, provider_display_name | Anbieter dieser Zeile |
price_input, price_output | Preis für Eingabe und Ausgabe |
price_cache_read, price_cache_write, price_cache_write_1h | Preise für Prompt-Cache, sonst null |
long_context_threshold | Eingabe-Tokens, ab denen die *_long-Preise für die ganze Anfrage gelten, sonst null |
price_input_long, price_output_long, price_cache_read_long, price_cache_write_long | Preise über der Schwelle; null heißt: der normale Preis gilt |
price_unit | Einheit der Preise |
price_currency | Währung, EUR |
curl https://api.noirdoc.de/v1/pricesimport httpx
response = httpx.get("https://api.noirdoc.de/v1/prices")
prices = response.json()["data"]const res = await fetch("https://api.noirdoc.de/v1/prices");
const { data: prices } = await res.json();{
"object": "list",
"data": [
{
"public_id": "qwen3.8-27b",
"legacy_public_id": null,
"provider_slug": "<anbieter-slug>",
"provider_display_name": "<Anbieter>",
"price_input": 0.3,
"price_output": 2.2,
"price_cache_read": null,
"price_cache_write": null,
"price_cache_write_1h": null,
"long_context_threshold": null,
"price_input_long": null,
"price_output_long": null,
"price_cache_read_long": null,
"price_cache_write_long": null,
"price_unit": "per1MTokens",
"price_currency": "EUR"
}
]
}Preiseinheiten
price_unit sagt, worauf sich die Beträge beziehen. Welche Felder gefüllt sind, hängt von der Familie des Modells ab.
price_unit | Bedeutung | Familie | Gefüllte Preise |
|---|---|---|---|
per1MTokens | pro 1 Mio. Tokens | Chat, Embeddings | Chat: price_input und price_output; Embeddings: nur price_input |
per1MChars | pro 1 Mio. Zeichen Eingabetext | Sprachausgabe | price_input |
perMinute | pro Minute Audio | Transkription | price_input oder price_output |
perImage | pro erzeugtem Bild | Bilder | price_output |
perMpx | pro angefangenem Megapixel (1024 × 1024 Pixel) je Bild | Bilder | price_output |
perFirstMpx | erstes Megapixel eines Bildes; price_input trägt, falls gesetzt, den Preis jedes weiteren Megapixels | Bilder | price_output, optional price_input |