API-Referenz
Authentifizierung und Idempotenz
Zugangsdaten, Berechtigungsbereiche, Idempotency-Key und Anfrage-IDs für jeden SciFig-API-Aufruf.
Bearer-Authentifizierung#
Senden Sie Authorization: Bearer <credential> bei jeder Anfrage außer GET /pricing, GET /openapi.json und GET /openapi.yaml. Zugangsdaten in Abfrageparametern oder anderen Headern werden ignoriert.
Zugangsdaten verwenden Bearer-Authentifizierung; DPoP-gebundene Zugangsdaten werden nicht unterstützt.
- API-Schlüssel beginnen mit
sk_live_. Erstellen Sie sie unter Einstellungen → Entwickler; der Schlüssel wird nur einmal angezeigt. Bewahren Sie ihn auf einem Server auf und liefern Sie ihn niemals in einer Browser- oder Mobil-App aus. Sie erhalten 7 Tage vor Ablauf eine E-Mail von uns. - OAuth-Zugriffstoken beginnen mit
sf_at_. MCP-Clients erhalten sie nach Ihrer Zustimmung; unter Einstellungen → Entwickler → Verbundene Apps können Sie einen Client trennen. - Fehlende, ungültige, abgelaufene oder widerrufene Zugangsdaten führen zu
401 UNAUTHORIZED. Ein Konto, das die API nicht nutzen kann, etwa weil es gelöscht wird, führt zu401 ACCOUNT_UNAVAILABLE. - Der Widerruf eines Schlüssels verhindert neue Anfragen mit diesem Schlüssel. Bereits erstellte Aufträge laufen weiter und können mit anderen Zugangsdaten desselben Kontos abgefragt werden.
Berechtigungsbereiche#
| Berechtigungsbereich | Berechtigungen | API-Schlüsseltyp |
|---|---|---|
| figures:read | GET /jobs, GET /jobs/{id}, GET /files/{file_id}, GET /credits | Leseschlüssel; kann unbegrenzt gültig sein |
| figures:generate | Alles aus figures:read sowie jeder POST-Endpunkt | Generierungsschlüssel; läuft nach 30 Tagen, 90 Tagen oder 1 Jahr ab; erfordert ein aktives Abonnement oder ein positives Guthaben aus Credit-Paketen |
Eine Anfrage außerhalb des Berechtigungsbereichs der Zugangsdaten führt zu 403 SCOPE_DENIED. Verwenden Sie für jede Anwendung und Umgebung einen eigenen Schlüssel, damit Sie einen widerrufen können, ohne andere zu beeinträchtigen.
Idempotenz#
- Jede Erstellungsanfrage (
POST /images/*,/charts/*,/flowcharts/*) erfordert einenIdempotency-Key-Header mit 1–255 sichtbaren ASCII-Zeichen. Eine zufällige UUID pro Anfrage ist die einfachste Wahl. Auch Uploads anPOST /fileskönnen einen solchen Header senden; siehe Dateien. - Derselbe Schlüssel mit demselben Anfrageinhalt gibt denselben Auftrag zurück und reserviert keine weiteren Credits. Bei Diagrammuploads gehören die Bytes der Datendatei zum Anfrageinhalt.
- Derselbe Schlüssel mit einem anderen Anfrageinhalt führt zu
409 IDEMPOTENCY_CONFLICT. Gleichzeitige Anfragen mit demselben Schlüssel erstellen niemals zwei Aufträge: Jede gibt denselben Auftrag zurück oder409 IDEMPOTENCY_IN_PROGRESSmitRetry-After: 1, während die erste Anfrage noch angenommen wird. - Wiederholen Sie die Anfrage nach einem Zeitlimit, Netzwerkfehler,
429oder503mit demselben Schlüssel. Nur so lässt sich sicherstellen, dass kein zweiter Auftrag erstellt wird. - Sobald der Auftrag existiert, enthält ein wiederholbarer Fehler (
429,503,409 IDEMPOTENCY_IN_PROGRESS) oder500 INTERNAL_ERRORdas Felddetails.job_id. Wiederholen Sie die Anfrage mit demselben Schlüssel oder fragen SieGET /jobs/{job_id}ab. Wechseln Sie nicht zu einem neuen Schlüssel, da dies einen zweiten kostenpflichtigen Auftrag erstellt. Ein angenommener Auftrag, der nicht zurückgelesen werden konnte, wird mit202und Statusqueuedbeantwortet. - Eine abgelehnte Anfrage, etwa
402 INSUFFICIENT_CREDITS, behält diese Antwort für ihren Schlüssel. Senden Sie sie nach dem Aufladen oder Tarifwechsel mit einem neuen Schlüssel erneut.
OAuth-Clients#
- MCP-Clients verwenden OAuth 2.1 mit PKCE. Zugriffstoken (
sf_at_…) gelten 1 Stunde. Ein Client, der den Berechtigungsbereichoffline_accessanfordert, erhält zusätzlich ein 30 Tage gültiges Aktualisierungstoken (sf_rt_…) und bleibt verbunden, bis Sie ihn trennen. Ohneoffline_accessmüssen Sie sich nach Ablauf des Zugriffstokens erneut anmelden. - Aktualisierungstoken werden rotiert: Jede Aktualisierung gibt ein neues Token zurück. Ein bereits verwendetes Aktualisierungstoken erneut vorzulegen, gilt als Wiederverwendung und widerruft die daraus ausgestellten Token. Der Client muss sich dann erneut anmelden.
- Die dynamische Clientregistrierung akzeptiert einen Anfrageinhalt von höchstens 16 KB, mit Limits für die Feldlängen und die Anzahl der Weiterleitungs-URIs. Die Authentifizierung am Token-Endpunkt ist
nonefür öffentliche Clients mit PKCE oderclient_secret_basic. - Ein registrierter, aber nie autorisierter Client wird nach 24 Stunden gelöscht.
- Eine Autorisierungsanfrage mit
prompt=loginodermax_ageverlangt eine erneute Anmeldung. Wenn Sie bereits angemeldet sind, bittet SciFig um Ihre Bestätigung, bevor es Sie ab- und wieder anmeldet. - Limits für OAuth-Zugangsdaten gelten pro Client und Konto. Andere Nutzer desselben Assistenten verbrauchen dadurch nicht Ihre Limits.
Anfrage-IDs#
Jede Antwort enthält X-Request-Id; Fehlerantworten wiederholen den Wert als error.request_id. Die ID kennzeichnet die Anfrage in unseren Protokollen, ohne weitere Informationen offenzulegen. Sie können sie daher bedenkenlos protokollieren und bei einer Supportanfrage angeben.