Entwickeln / Referenz
Dateien & Skills
Leitet Datei- und Skill-Aufrufe unverändert an den Anbieter weiter und legt fest, welcher Anbieter sie erhält.
/v1/files - Familie
- Durchleitung
- Maskierung
- nein
- Streaming
- nein
- Format
- wie beim Anbieter, Hochladen als multipart/form-data
- Abrechnung
- keine
Voraussetzungen
Dateien und Skills funktionieren nur, wenn Admins Ihrer Organisation unter Models → Datenschutz die Option Dateiinhalte zulassen eingeschaltet haben. Sonst antwortet das Gateway mit 403 file_content_not_allowed.
Weil das Gateway hier nicht maskiert, lehnt es Aufrufe mit Inhalt ab, wenn die Anfrage Maskierung verlangt: bei der Maskierungsrichtlinie enforced oder mit dem Header X-Noirdoc-Mask: on. Das betrifft alle Methoden außer GET, HEAD, OPTIONS und DELETE, also etwa das Hochladen einer Datei und das Anlegen eines Skills oder einer Version. Das Gateway antwortet dann mit 403 masking_not_supported_for_endpoint. Auflisten, Abrufen, Herunterladen und Löschen bleiben erlaubt.
Anbieter wählen
Diese Aufrufe tragen kein Modell. Das Gateway bestimmt deshalb zuerst das API-Format und leitet den Aufruf dann an den ältesten aktiven Anbieter dieses Formats weiter. Anbieter, die Ihre Organisation selbst verbunden hat (BYOK), haben Vorrang. Claude über Google Vertex kommt dafür nicht in Frage.
| Endpunkt | API-Format |
|---|---|
/v1/files mit x-api-key | Anthropic |
/v1/files mit Authorization: Bearer oder api-key | OpenAI |
/v1/files mit Header X-Provider: anthropic oder X-Provider: openai (kleingeschrieben) | das angegebene, unabhängig vom Schlüssel-Header |
/v1/skills | immer Anthropic, X-Provider wirkt nicht |
X-Provider wählt nur das Format. Die Einschränkungen Ihres Schlüssels und Ihrer Organisation gelten weiter. Ist für das Format kein Anbieter eingerichtet, antwortet das Gateway mit 502 provider_not_configured.
Das Anthropic-SDK sendet den Schlüssel als x-api-key. Das Gateway leitet den Aufruf dann an einen Anthropic-Anbieter weiter. Das OpenAI-SDK sendet Authorization: Bearer und landet bei einem Anbieter im OpenAI-Format.
Nutzt ein Anthropic-Client Authorization: Bearer, setzen Sie X-Provider: anthropic.
curl https://api.noirdoc.de/v1/files \
-H "Authorization: Bearer $NOIRDOC_API_KEY" \
-H "X-Provider: anthropic" \
-F file=@vertrag.pdfimport os
from openai import OpenAI
client = OpenAI(
base_url="https://api.noirdoc.de/v1",
api_key=os.environ["NOIRDOC_API_KEY"],
)
with open("vertrag.pdf", "rb") as f:
uploaded = client.files.create(file=f, purpose="user_data")
print(uploaded.id)import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.noirdoc.de/v1",
apiKey: process.env.NOIRDOC_API_KEY,
});
const uploaded = await client.files.create({
file: fs.createReadStream("vertrag.pdf"),
purpose: "user_data",
});
console.log(uploaded.id);Was Noirdoc ändert
| Bereich | Verhalten |
|---|---|
| Body und Antwort | Das Gateway leitet Body, Content-Type und Query-Parameter unverändert weiter. Die Antwort des Anbieters gibt es unverändert zurück, außer bei generierten Dateien und gefilterten Listen (siehe unten). |
| Beta-Header | Bei Anthropic ergänzt das Gateway anthropic-beta um files-api-2025-04-14 für Dateien und skills-2025-10-02 für Skills. Eigene Werte bleiben erhalten. |
| Generierte Dateien | Hat das Modell eine Datei in einer maskierten Anfrage erzeugt, etwa per Code-Ausführung, ersetzt das Gateway beim Herunterladen über /v1/files/{id}/content die Platzhalter in der Datei durch die Originalwerte. Das gilt für Text-, CSV-, Markdown-, HTML-, JSON-, DOCX- und XLSX-Dateien, solange die Zuordnung gespeichert ist. Andere Formate wie PDF oder Bilder erhalten Sie unverändert. |
| Antwort-Header | X-Noirdoc-Provider fehlt bei Datei- und Skill-Aufrufen. Antworten des Anbieters tragen X-Noirdoc-Masked: false. |
Von Noirdoc verwaltete Anbieter
Diese Anbieter nutzen ein gemeinsames Konto für alle Organisationen. Das Gateway trennt die Objekte deshalb selbst:
- Hochladen und Auflisten sind erlaubt. Eine Liste enthält nur Objekte Ihrer Organisation und die vorgefertigten Skills von Anthropic. Eine Listenseite kann deshalb weniger Einträge enthalten als
limit. - Aufrufe mit
{id}erreichen nur Objekte, die über Ihre Organisation entstanden sind. Für alle anderen IDs antwortet das Gateway mit 404object_not_found. - Andere Methoden auf
/v1/filesund/v1/skillslehnt das Gateway mit 403endpoint_not_available_on_platformab. - Kann das Gateway die Zuordnung eines Objekts nicht prüfen oder nicht speichern, antwortet es mit 503
ownership_check_unavailable.
Mit einem eigenen Anbieter-Schlüssel (BYOK) entfallen diese Einschränkungen.
Unterrouten
| Methode | Pfad | Zweck |
|---|---|---|
POST | /v1/files | Datei hochladen |
GET | /v1/files | Dateien auflisten |
GET | /v1/files/{id} | Metadaten einer Datei abrufen |
DELETE | /v1/files/{id} | Datei löschen |
GET | /v1/files/{id}/content | Dateiinhalt herunterladen |
| wie bei Anthropic | /v1/skills | Skills anlegen und auflisten |
| wie bei Anthropic | /v1/skills/{id} | ein Skill |
| wie bei Anthropic | /v1/skills/{id}/versions | die Versionen eines Skills |
| wie bei Anthropic | /v1/skills/{id}/versions/{version} | eine Version eines Skills |
Andere Pfade unter /v1/files/ und /v1/skills/ beantwortet das Gateway mit 404 unsupported_endpoint.
Welche Methoden die Skills-Pfade annehmen, legt Anthropic fest. Siehe die Skills-Referenz von Anthropic.
Fehler auf diesen Endpunkten
| Status | Code | Bedeutung |
|---|---|---|
| 402 | insufficient_credit | Das Guthaben der Organisation ist aufgebraucht oder kleiner als die geschätzten Höchstkosten der Anfrage. |
| 403 | endpoint_not_available_on_platform | Der Aufruf würde Daten aus dem gemeinsamen Konto eines von Noirdoc verwalteten Anbieters lesen und ist dort gesperrt. |
| 403 | provider_not_allowed_for_tenant | Die Organisation gilt als Berufsgeheimnisträger (§ 203 StGB); das schließt jeden Anbieter aus, der dieses Modell anbietet. |
| 403 | provider_not_allowed_for_key | Die Einschränkungen des Schlüssels (Anbieter, Datenresidenz, CLOUD Act, § 203) schließen jeden Anbieter dieses Modells aus. |
| 403 | masking_not_supported_for_endpoint | Der Endpunkt kann nicht maskieren, aber die Maskierungsrichtlinie ist enforced oder die Anfrage sendet X-Noirdoc-Mask: on. |
| 403 | file_content_not_allowed | Die Anfrage enthält Dateien, Bilder oder Audio, und die Organisation lässt keine Dateiinhalte zu. |
| 404 | unsupported_endpoint | Das Gateway kennt diesen Pfad nicht. |
| 404 | object_not_found | Das Objekt (Datei, Skill oder gespeicherte Antwort) existiert nicht oder gehört nicht Ihrer Organisation. |
| 502 | provider_not_configured | Für diese Anfrage ist in der Organisation kein passender Anbieter eingerichtet. |
| 502 | provider_misconfigured | Die Konfiguration des gewählten Anbieters ist ungültig, zum Beispiel eine nicht erlaubte Basis-URL. |
| 502 | provider_unreachable | Das Gateway konnte keine Verbindung zum Anbieter herstellen, oder die Verbindung ist abgebrochen. |
| 503 | ownership_check_unavailable | Das Gateway konnte gerade nicht prüfen, ob das Objekt Ihrer Organisation gehört, und hat die Anfrage abgelehnt. |
| 504 | provider_timeout | Der Anbieter hat nicht innerhalb der Wartezeit des Gateways geantwortet. |
Anbieter-Referenz
Alle Felder beschreiben die Referenzen der Anbieter (geprüft am 30.09.2026):