Documentation Index
Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
Use this file to discover all available pages before exploring further.
Die API-Referenzdokumentation ist derzeit nur in Englisch verfügbar. Wenn Sie diese Seite in einer anderen Sprache anzeigen, wechseln Sie bitte zur englischen Version — die vollständige Liste der API-Endpunkte wird in der linken Seitenleiste angezeigt.
Basis-URL
Authentifizierung
Alle API-Anfragen erfordern eine Authentifizierung über einen API-Schlüssel oder JWT-Token.API-Schlüssel verwenden
Fügen Sie Ihren API-Schlüssel in denAuthorization-Header ein:
JWT-Token verwenden
Für SSE-Streaming-Endpunkte (/api/react und /api/dag) können Sie das Token stattdessen im Request-Body übergeben:
Antwortformat
Erfolgreiche Antwort
Alle erfolgreichen API-Antworten folgen dieser Struktur:Fehlerantwort
Fehlerantworten enthalten einen Fehlercode und eine für Menschen lesbare Nachricht:Paginierte Antworten
List-Endpunkte geben paginierte Ergebnisse zurück:Streaming (Server-Sent Events)
Chat-Endpunkte (POST /api/react und POST /api/dag) geben Server-Sent Events für Echtzeit-Streaming zurück. Jedes Event hat ein type-Feld, das seinen Inhalt angibt:
| Event-Typ | Beschreibung |
|---|---|
step | ReAct-Reasoning-Schritt (Tool-Aufrufe, Denken). Für Modelle mit erweitertem Denken (Claude, o-Serie, DeepSeek-R1) enthält thinking_delta-Inhalte in Echtzeit während Tool-Entscheidungsphasen |
step_progress | DAG-Schrittfortschritt (gestartet/Iteration/abgeschlossen). Kann thinking_delta-Inhalte enthalten, wenn der zugrunde liegende Agent Reasoning-Token streamt |
phase | Pipeline-Phasenübergang (Planung/Ausführung/Analyse) |
compact | Kontext-Komprimierung aufgetreten |
answer | Gestreamter Antworttext (Start/Delta/Fertig) |
done | Endgültiges Ergebnis-Payload |
suggestions | Vorgeschlagene Anschlussfragen |
title | Automatisch generierter Gesprächstitel |
end | Stream-Terminator (immer zuletzt) |
SSE-Stream-Beispiel
Cursor-basierte Wiederaufnahme
Jedes SSE-Event trägt eine monotonecursor-Ganzzahl, die auf das Gespräch beschränkt ist. Clients sollten den höchsten angetroffenen Cursor verfolgen. Wenn die Verbindung während eines Durchlaufs abbricht (Netzwerkfehler, Proxy-Timeout, Server-Neustart), kann der Client sich erneut abonnieren, ohne den Agenten erneut auszuführen:
cursor > 42 erneut abspielt und mit einem Terminal-event: resume_done-Frame endet. Übergeben Sie cursor: -1, um eine vollständige Wiederaufnahme von Anfang an anzufordern.
Fehlerantworten:
404 conversation_not_found— Gesprächs-ID ist ungültig oder gehört nicht dem authentifizierten Benutzer404 no_recent_assistant_message— Gespräch hat keine persistierte Assistent-Runde zum Fortsetzen (z. B. ein brandneues Gespräch ohne Benutzernachrichten)400 invalid_cursor— Cursor ist keine nicht-negative Ganzzahl oder-1
useSseResume Hook im Playground) versucht Netzwerktrennungen automatisch mit exponentiellem Backoff erneut (300ms → 1s → 3s, max. 3 Versuche) und unterscheidet benutzerinitiierte Abbrüche von Netzwerkfehlern, um unbeabsichtigte Wiederverbindungen zu vermeiden. Siehe die playground-page.tsx-Integration für das vollständige Muster.
Die Wiederaufnahme ist zustandslos — sie spielt Events aus dem gespeicherten
sse_events-Array der Assistent-Nachricht erneut ab. Wenn der Durchlauf des Agenten unterbrochen wurde, bevor eine Assistent-Nachricht persistiert wurde (z. B. ein Absturz vor done), wird der verwaiste tool_use-Block automatisch durch DbMemory._repair_dangling_tool_calls im nächsten Durchlauf repariert. Synthetische tool_result-Zeilen werden mit metadata_.synthetic=true und metadata_.reason="interrupted" für Audit persistiert.Ratenbegrenzung
Die Ratenbegrenzung pro Schlüssel ist für eine zukünftige Version geplant. Derzeit gibt es keine durchgesetzten Anfragelimits pro Schlüssel, aber bitte nutzen Sie die API verantwortungsvoll.Pagination
List-Endpunkte unterstützen Pagination über Abfrageparameter:page(Standard: 1) — Seitennummer, beginnend bei 1size(Standard: 20) — Elemente pro Seite, max. 100
Zeitstempel
Alle Zeitstempel sind im ISO 8601-Format mit UTC-Zeitzone:Fehlercodes
Häufige Fehlercodes und ihre Bedeutungen:| Fehlercode | HTTP-Status | Bedeutung |
|---|---|---|
unauthorized | 401 | Ungültige oder fehlende Authentifizierung |
forbidden | 403 | Benutzer hat keine Berechtigung für diese Ressource |
not_found | 404 | Ressource existiert nicht |
bad_request | 400 | Ungültige Anfrageparameter |
rate_limit_exceeded | 429 | Zu viele Anfragen (geplant) |
internal_error | 500 | Serverfehler |
API-Spielplatz
Jede Endpunkt-Seite enthält einen interaktiven API-Spielplatz, in dem Sie:- Anfragen direkt von Ihrem Browser aus testen können
- Echte Antworten anzeigen können
- Anfrage-Code in mehreren Sprachen kopieren können
- Sich mit Ihrem API-Schlüssel authentifizieren können
Der API-Spielplatz führt Anfragen von Ihrem Browser aus aus, daher stellen Sie sicher, dass Ihr API-Schlüssel über entsprechende CORS-Berechtigungen verfügt (normalerweise standardmäßig für Same-Origin-Anfragen aktiviert).
SDK-Verfügbarkeit
Obwohl die FIM One API vollständig REST-basiert ist, sind SDKs in beliebten Sprachen verfügbar (oder in Kürze verfügbar):- Python: In Kürze verfügbar
- JavaScript/TypeScript: In Kürze verfügbar
- Go: In Kürze verfügbar
Versionierung
Die aktuelle API-Version istv0.8.0. Die Version ist nicht im URL-Pfad enthalten; Breaking Changes werden durch Major-Version-Bumps und eine Migrationsfrist signalisiert.
Unterstützung
Bei API-Problemen oder Fragen:- Dokumentation: Siehe detaillierte Leitfäden zu jedem Endpunkt
- GitHub Issues: Melden Sie Fehler unter https://github.com/fim-ai/fim-one/issues
- Discord Community: Treten Sie unserer Community bei, um zu diskutieren