Felo APIs
LiveDoc API
Erstellen Sie Wissensdatenbanken, verwalten Sie Ressourcen und führen Sie semantische Suche und Routing aus.
/v2/livedocsAuthentifizierung
Bearer API key
Inhaltstyp
application/json or multipart/form-data
Hinweise zu Limits
Es können endpoint-spezifische Limits gelten.
Die LiveDoc API bietet vollständige CRUD-Operationen für LiveDocs und ihre Ressourcen, einschließlich Dokumenterstellung, Datei-Upload, URL-Import und semantischem Retrieval.
Authentifizierung
Alle Anfragen erfordern einen API-Schlüssel im Authorization-Header:
Authorization: Bearer YOUR_API_KEYVerwendung mit KI-Agenten
Installieren Sie das vollständige Paket felo-ai, um einem Agenten LiveDoc-Unterstützung und alle anderen verfügbaren Felo-Skills bereitzustellen. Der Installer ermittelt dynamisch jedes Paketverzeichnis mit SKILL.md, einschließlich künftiger Paketergänzungen. Installieren Sie alle gefundenen Skills im nativen Verzeichnis des Agenten: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills oder Hermes Agent ~/.hermes/skills. Die manuelle Einrichtungsanleitung für KI-Agenten behandelt die jeweiligen API-Schlüssel- und Prüfungsschritte für jede Plattform.
1. LiveDoc erstellen
Endpoint
POST https://openapi.felo.ai/v2/livedocsAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Ja | LiveDoc-Name |
description | string | Nein | LiveDoc-Beschreibung |
icon | string | Nein | LiveDoc-Symbol |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "AI Research Notes",
"description": "Collection of AI research materials"
}'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"short_id": "PvyKouzJirXjFdst4uKRK3",
"name": "AI Research Notes",
"description": "Collection of AI research materials",
"icon": null,
"created_at": "2026-03-09T10:00:00Z",
"modified_at": "2026-03-09T10:00:00Z"
}
}Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
short_id | string | LiveDoc-ID |
name | string | LiveDoc-Name |
description | string | LiveDoc-Beschreibung |
icon | string | LiveDoc-Symbol |
created_at | string | Erstellungszeitstempel (ISO 8601) |
modified_at | string | Zeitstempel der letzten Änderung (ISO 8601) |
is_shared | boolean | Ob dieses LiveDoc für den aktuellen Benutzer freigegeben ist (sich nicht in seinem Besitz befindet) |
2. LiveDocs auflisten
Endpoint
GET https://openapi.felo.ai/v2/livedocsQuery-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
keyword | string | Nein | Nach Stichwort filtern |
page | integer | Nein | Seitennummer (beginnend bei 1) |
size | integer | Nein | Seitengröße |
Beispiel
curl 'https://openapi.felo.ai/v2/livedocs?keyword=AI&page=1&size=20' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"total": 2,
"page": 1,
"size": 20,
"items": [
{
"short_id": "PvyKouzJirXjFdst4uKRK3",
"name": "AI Research Notes",
"description": "Collection of AI research materials",
"icon": null,
"created_at": "2026-03-09T10:00:00Z",
"modified_at": "2026-03-09T10:05:00Z",
"is_shared": false,
"readme": {
"summary": "AI research notes and papers collection",
"content": "# AI Research Notes\n\nThis LiveDoc contains..."
}
}
]
}
}Antwortfelder
Jedes Element in items enthält dieselben Felder wie die Antwort auf das Erstellen eines LiveDocs, zusätzlich:
| Feld | Typ | Beschreibung |
|---|---|---|
readme | object | null | README-Informationen. null, wenn kein README vorhanden ist. |
readme.summary | string | null | Einzeilige Projektbeschreibung |
readme.content | string | null | README-Inhalt (Markdown) |
Endpoint
PUT https://openapi.felo.ai/v2/livedocs/{short_id}Anfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Nein | Neuer LiveDoc-Name |
description | string | Nein | Neue LiveDoc-Beschreibung |
Beispiel
curl -X PUT 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "Updated Research Notes"
}'Erfolgreiche Antwort (200)
Gibt das aktualisierte LiveDoc-Objekt zurück (gleiche Struktur wie beim Erstellen).
4. LiveDoc löschen
Endpoint
DELETE https://openapi.felo.ai/v2/livedocs/{short_id}Beispiel
curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": null
}5. Ressourcen auflisten
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/resourcesQuery-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
resource_types | string[] | Nein | Nach Ressourcentypen filtern |
page | integer | Nein | Seitennummer (beginnend bei 1) |
size | integer | Nein | Seitengröße |
Beispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources?page=1&size=20' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"total": 2,
"page": 1,
"size": 20,
"items": [
{
"id": "res_001",
"title": "OpenAI Blog Post",
"link": "https://openai.com/blog/...",
"snippet": "Summary of the article...",
"thumbnail": null,
"resource_type": "web",
"resource_key": "key_001",
"status": "completed",
"source": "url",
"created_at": "2026-03-09T10:00:10Z",
"modified_at": "2026-03-09T10:00:15Z"
}
]
}
}Antwortfelder einer Ressource
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Ressourcen-ID |
title | string | Ressourcentitel |
link | string | Ressourcenlink/URL |
snippet | string | Ressourcenzusammenfassung |
thumbnail | string | Thumbnail-URL |
resource_type | string | Ressourcentyp (z. B. web, ai_doc, file) |
resource_key | string | Ressourcen-Zuordnungsschlüssel |
status | string | Ressourcenstatus |
source | string | Ressourcenquelle |
created_at | string | Erstellungszeitstempel (ISO 8601) |
modified_at | string | Zeitstempel der letzten Änderung (ISO 8601) |
6. Einzelne Ressource abrufen
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}Beispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
Gibt ein einzelnes Ressourcenobjekt zurück (gleiche Struktur wie die Elemente unter „Ressourcen auflisten“).
7. Ressource aktualisieren
Aktualisieren Sie title, snippet oder thumbnail einer Ressource. Nur übergebene Felder werden aktualisiert; weggelassene Felder behalten ihre aktuellen Werte.
Endpoint
PUT https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}Anfrage-Textkörper
Alle Felder sind optional.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
title | string | Nein | Neuer Ressourcentitel (max. 500 Zeichen) |
snippet | string | Nein | Neue Ressourcenzusammenfassung (max. 2000 Zeichen) |
thumbnail | string | Nein | Neue Thumbnail-URL (max. 2000 Zeichen) |
Beispiel
curl -X PUT 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "Updated Title",
"snippet": "Updated summary of the resource."
}'Erfolgreiche Antwort (200)
Gibt das aktualisierte Ressourcenobjekt zurück (gleiche Struktur wie die Elemente unter „Ressourcen auflisten“).
8. Ressourceninhalt aktualisieren
Aktualisieren Sie den Markdown-Inhalt einer ai_doc-Ressource. Wird nur für Ressourcen mit resource_type == ai_doc unterstützt. Das Feld snippet wird automatisch aus den ersten 2000 Bytes des neuen Inhalts aktualisiert.
Endpoint
PUT https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/contentAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
content | string | Ja | Neuer Markdown-Inhalt für die Ressource |
Beispiel
curl -X PUT 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001/content' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"content": "# Updated Document\n\nThis is the new content."
}'Erfolgreiche Antwort (200)
Gibt das aktualisierte Ressourcenobjekt zurück (gleiche Struktur wie die Elemente unter „Ressourcen auflisten“).
9. Dokumentressource erstellen
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/docAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
title | string | Nein | Dokumenttitel (Standard: "New Document") |
content | string | Ja | Dokumentinhalt |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/doc' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "My Research Notes",
"content": "Key findings from the AI research paper..."
}'Erfolgreiche Antwort (200)
Gibt das erstellte Ressourcenobjekt zurück.
10. Datei als Dokument hochladen
Laden Sie eine Datei hoch und konvertieren Sie sie in eine Dokumentressource (Typ ai_doc).
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/upload-docContent-Type
multipart/form-data
Anfrage-Teile
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file | file | Ja | Die hochzuladende Datei |
title | string | Nein | Dokumenttitel |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/upload-doc' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-F '[email protected]' \
-F 'title=My PDF Document'Erfolgreiche Antwort (200)
Gibt das erstellte Ressourcenobjekt zurück.
11. Dateiressource hochladen
Laden Sie eine Datei hoch und behalten Sie ihr ursprüngliches Format bei.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/uploadContent-Type
multipart/form-data
Anfrage-Teile
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file | file | Ja | Die hochzuladende Datei |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/upload' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-F '[email protected]'Erfolgreiche Antwort (200)
Gibt das erstellte Ressourcenobjekt zurück.
12. URL-Ressourcen hinzufügen
Fügen Sie einem LiveDoc eine oder mehrere URLs als Ressourcen hinzu.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/urlsAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
urls | array | Ja | Liste der hinzuzufügenden URL-Elemente (1–10). Jedes Element kann eine einfache Zeichenfolge oder ein Objekt mit url und optional title sein. |
Formate der URL-Elemente
Jeder Eintrag in urls kann entweder sein:
- Eine einfache Zeichenfolge:
"https://example.com/article" - Ein Objekt:
{"url": "https://example.com/article", "title": "Custom Title"}
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | string | Ja | Die hinzuzufügende URL (5–2000 Zeichen) |
title | string | Nein | Benutzerdefinierter Titel für die Ressource (max. 1000 Zeichen). Wenn nicht angegeben, wird der Titel automatisch aus der Seite generiert. |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/urls' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"urls": [
"https://example.com/article-1",
{"url": "https://example.com/article-2", "title": "My Custom Title"}
]
}'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": [
{
"url": "https://example.com/article-1",
"status": "success",
"fail_reason": null,
"resource_id": "res_003"
},
{
"url": "https://example.com/article-2",
"status": "existed",
"fail_reason": null,
"resource_id": "res_004"
}
]
}Felder des URL-Ergebnisses
| Feld | Typ | Beschreibung |
|---|---|---|
url | string | Die verarbeitete URL |
status | string | Ergebnisstatus: success, failed oder existed |
fail_reason | string | Grund für den Fehler (null bei Erfolg) |
resource_id | string | ID der erstellten Ressource |
13. Ressource löschen
Endpoint
DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}Beispiel
curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": null
}14. Abrufen (semantische Suche)
Führen Sie ein semantisches Retrieval gegen Ressourcen in einem LiveDoc durch.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/retrieveAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
query | string | Ja | Abfrageinhalt für die semantische Suche |
resource_ids | string[] | Nein | Bestimmte Ressourcen-IDs, in denen gesucht werden soll (1–50). Wenn nicht angegeben, werden relevante Ressourcen automatisch anhand der Abfrage zugeordnet |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/retrieve' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "latest developments in large language models",
"resource_ids": ["res_001", "res_002"]
}'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": [
{
"id": "res_001",
"title": "LLM Research Paper",
"content": "Relevant content excerpt...",
"score": 0.92,
"metadata": {}
}
]
}Felder des Retrieval-Ergebnisses
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Ressourcen-ID |
title | string | Ressourcentitel |
content | string | Übereinstimmender Inhalt |
score | number | Relevanzbewertung |
metadata | object | Zusätzliche Metadaten |
15. Ressourcen zuordnen
Ordnen Sie relevante Ressourcen aus einem LiveDoc anhand einer Abfrage zu. Gibt eine Liste von Ressourcen-IDs zurück, die an den Retrieve-Endpoint übergeben werden können.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/routeAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
query | string | Ja | Abfrageinhalt für die Zuordnung |
max_resources | integer | Nein | Maximale Anzahl der zurückzugebenden Ressourcen-IDs |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/route' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "latest developments in large language models",
"max_resources": 5
}'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": ["res_001", "res_003", "res_007"]
}16. Quelldatei einer Ressource herunterladen
Rufen Sie die Quelldatei einer Ressource ab. Gibt eine 302-Weiterleitung zur vorsignierten Download-URL zurück.
Wird nur für Ressourcen mit einer zugehörigen Quelldatei unterstützt (z. B. hochgeladene Dokumente).
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/downloadQuery-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
expires_in | integer | Nein | Ablaufzeit der URL in Sekunden (Standard: 3600) |
Beispiel
curl -L 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001/download' \
-H 'Authorization: Bearer YOUR_API_KEY'Antwort
Gibt 302 Found mit einem Location-Header zurück, der auf die vorsignierte S3-Download-URL verweist. HTTP-Clients mit Weiterleitungsunterstützung (z. B. curl -L) folgen der Weiterleitung und laden die Datei direkt herunter.
17. Ressourceninhalt abrufen
Rufen Sie den extrahierten Textinhalt einer Ressource ab. Wird für die meisten Ressourcentypen unterstützt (document, web, video, ai_doc, ai_ppt, text, voice, mindmap usw.). Für nicht unterstützte Typen wie image wird 400 zurückgegeben.
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/contentBeispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001/content' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"title": "Q4 Financial Report",
"type": "document",
"content": "Full extracted text content of the resource..."
}
}Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
title | string | Ressourcentitel |
type | string | Ressourcentyp |
content | string | Extrahierter Textinhalt |
18. PPT-Seiten-Retrieval
Führen Sie ein tiefgehendes Content-Retrieval auf einer bestimmten Seite einer PPT-Ressource durch. Die Folienseite wird extrahiert und es werden nach Rang sortierte Content-Chunks zurückgegeben. Das Antwortformat entspricht dem Retrieve-Endpoint.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/ppt-retrieveAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
resource_id | string | Ja | PPT-Ressourcen-ID |
page_number | integer | Ja | Abzurufende Seitennummer (beginnt bei 1) |
query | string | Ja | Abfrageinhalt, der beschreibt, wonach gesucht werden soll |
max_chunk | integer | Nein | Maximale Anzahl der zurückzugebenden Chunks (Standard: 3) |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/ppt-retrieve' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"resource_id": "res_001",
"page_number": 3,
"query": "product pricing information",
"max_chunk": 3
}'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": [
{
"id": "res_001_page_3_chunk_1",
"title": "Q4 Product Deck",
"content": "Relevant slide content excerpt...",
"score": null,
"metadata": {
"resource_id": "res_001",
"page_number": 3,
"index": 1
}
}
]
}Antwortfelder
Wie Felder des Retrieval-Ergebnisses.
Fehlercodes
| Code | HTTP-Status | Beschreibung |
|---|---|---|
UNAUTHORIZED | 401 | Der API-Schlüssel ist ungültig oder widerrufen |
LIVEDOC_CREATE_FAILED | 502 | LiveDoc konnte nicht erstellt werden |
LIVEDOC_UPDATE_FAILED | 502 | LiveDoc konnte nicht aktualisiert werden |
LIVEDOC_DELETE_FAILED | 502 | LiveDoc konnte nicht gelöscht werden |
LIVEDOC_NOT_FOUND | 404 | LiveDoc nicht gefunden |
LIVEDOC_LIST_FAILED | 502 | LiveDocs konnten nicht aufgelistet werden |
LIVEDOC_RESOURCE_CREATE_FAILED | 502 | Ressource konnte nicht erstellt werden |
LIVEDOC_RESOURCE_UPLOAD_FAILED | 502 | Ressource konnte nicht hochgeladen werden |
LIVEDOC_RESOURCE_DELETE_FAILED | 502 | Ressource konnte nicht gelöscht werden |
LIVEDOC_RESOURCE_NOT_FOUND | 404 | Ressource nicht gefunden |
LIVEDOC_RESOURCE_LIST_FAILED | 502 | Ressourcen konnten nicht aufgelistet werden |
LIVEDOC_RESOURCE_RETRIEVE_FAILED | 502 | Ressourcen konnten nicht abgerufen werden |
LIVEDOC_RESOURCE_ADD_URLS_FAILED | 502 | URL-Ressourcen konnten nicht hinzugefügt werden |
19. README abrufen
Rufen Sie den README-Inhalt eines LiveDocs ab. Gibt eine leere Zeichenfolge zurück, wenn kein README gesetzt wurde.
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/readmeBeispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"summary": "A brief one-line description of the project.",
"content": "# My LiveDoc\n\nThis is the README content in Markdown."
}
}Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
summary | string | null | Einzeilige Projektbeschreibung. Max. 2000 Zeichen. |
content | string | README-Inhalt (Markdown). Leere Zeichenfolge, wenn nicht gesetzt. |
20. README erstellen oder aktualisieren
Erstellen oder aktualisieren Sie das README eines LiveDocs (Upsert-Semantik).
Endpoint
PUT https://openapi.felo.ai/v2/livedocs/{short_id}/readmeAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
summary | string | Nein | Einzeilige Projektbeschreibung (max. 2000 Zeichen) |
content | string | Nein | README-Inhalt (Markdown) |
Hinweis: Mindestens eines der Felder
summaryodercontentmuss angegeben werden.
Beispiel
curl -X PUT 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"summary": "A brief one-line description of the project.",
"content": "# My LiveDoc\n\nThis is the README content in Markdown."
}'Erfolgreiche Antwort (200)
Gibt das aktualisierte README-Objekt zurück (gleiche Struktur wie unter „README abrufen“).
21. An README anhängen
Hängen Sie Inhalt an das Ende eines vorhandenen README an. Wenn kein README vorhanden ist, wird ein neues mit dem übergebenen Inhalt erstellt.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/readme/appendAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
content | string | Ja | Anzuhängender Inhalt (Markdown) |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme/append' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"content": "\n\n## New Section\n\nAdditional content appended to README."
}'Erfolgreiche Antwort (200)
Gibt das vollständige README-Objekt nach dem Anhängen zurück (gleiche Struktur wie unter „README abrufen“).
22. README löschen
Löschen Sie das README eines LiveDocs.
Endpoint
DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/readmeBeispiel
curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": null
}23. Aufgaben auflisten
Rufen Sie eine paginierte Liste der Aufgaben in einem LiveDoc ab. Die Ergebnisse werden nach sort aufsteigend, status aufsteigend und created_at absteigend sortiert.
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/tasksQuery-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
status | integer | Nein | Nach Status filtern: 0=TODO, 1=IN_PROGRESS, 2=DONE |
labels | string[] | Nein | Nach Labels filtern (Aufgaben müssen alle angegebenen Labels enthalten) |
page | integer | Nein | Seitennummer (beginnend bei 1) |
size | integer | Nein | Seitengröße |
Beispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks?status=0&page=1&size=20' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"total": 1,
"page": 1,
"size": 20,
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Write documentation",
"description": "Write API documentation for the new endpoints",
"status": 0,
"sort": 0,
"labels": ["docs", "priority-high"],
"created_at": "2026-03-19T10:00:00Z",
"modified_at": "2026-03-19T10:00:00Z"
}
]
}
}Felder der Aufgabenantwort
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Aufgaben-ID (UUID) |
title | string | Aufgabentitel |
description | string | Aufgabenbeschreibung |
status | integer | Aufgabenstatus: 0=TODO, 1=IN_PROGRESS, 2=DONE |
sort | integer | Sortierreihenfolge (nicht negativ) |
labels | string[] | Label-Liste |
operated_by | string | Signatur des Bearbeiters, z. B. claude-code, openclaw |
created_at | string | Erstellungszeitstempel (ISO 8601) |
modified_at | string | Zeitstempel der letzten Änderung (ISO 8601) |
24. Aufgabe erstellen
Erstellen Sie eine neue Aufgabe in einem LiveDoc.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/tasksAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
title | string | Ja | Aufgabentitel |
description | string | Nein | Aufgabenbeschreibung |
status | integer | Ja | Aufgabenstatus: 0=TODO, 1=IN_PROGRESS, 2=DONE |
sort | integer | Ja | Sortierreihenfolge (nicht negative ganze Zahl) |
labels | string[] | Nein | Label-Liste (max. 10, jeweils max. 50 Zeichen) |
operated_by | string | Nein | Signatur des Bearbeiters, z. B. claude-code, openclaw (max. 100 Zeichen) |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "Write documentation",
"description": "Write API documentation for the new endpoints",
"status": 0,
"sort": 0,
"labels": ["docs", "priority-high"]
}'Erfolgreiche Antwort (200)
Gibt das erstellte Aufgabenobjekt zurück (gleiche Struktur wie die Elemente unter „Aufgaben auflisten“).
25. Aufgabe aktualisieren
Aktualisieren Sie eine Aufgabe teilweise. Nur übergebene Felder werden aktualisiert; weggelassene Felder behalten ihre aktuellen Werte.
Endpoint
PATCH https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}Anfrage-Textkörper
Alle Felder sind optional.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
title | string | Nein | Neuer Aufgabentitel |
description | string | Nein | Neue Aufgabenbeschreibung |
status | integer | Nein | Neuer Status: 0=TODO, 1=IN_PROGRESS, 2=DONE |
sort | integer | Nein | Neue Sortierreihenfolge (nicht negativ) |
labels | string[] | Nein | Neue Label-Liste (max. 10, jeweils max. 50 Zeichen) |
operated_by | string | Nein | Signatur des Bearbeiters, z. B. claude-code, openclaw (max. 100 Zeichen) |
Beispiel
curl -X PATCH 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"status": 1
}'Erfolgreiche Antwort (200)
Gibt das aktualisierte Aufgabenobjekt zurück (gleiche Struktur wie die Elemente unter „Aufgaben auflisten“).
26. Aufgabe löschen
Löschen Sie eine Aufgabe per Soft-Delete.
Endpoint
DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}Beispiel
curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": null
}27. Aufgabenprotokolle auflisten
Rufen Sie eine paginierte Liste der Protokolleinträge einer Aufgabe ab (Kommentare und Änderungsverlauf), sortiert nach created_at aufsteigend.
Endpoint
GET https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}/recordsQuery-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
record_type | string | Nein | Nach Protokolltyp filtern: comment, edit, status_change |
page | integer | Nein | Seitennummer (beginnend bei 1) |
size | integer | Nein | Seitengröße |
Beispiel
curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000/records' \
-H 'Authorization: Bearer YOUR_API_KEY'Erfolgreiche Antwort (200)
{
"status": "ok",
"message": null,
"data": {
"total": 2,
"page": 1,
"size": 20,
"items": [
{
"id": "rec_001",
"record_type": "comment",
"content": "This is a comment",
"meta": null,
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-03-19T10:05:00Z",
"modified_at": "2026-03-19T10:05:00Z"
},
{
"id": "rec_002",
"record_type": "status_change",
"content": null,
"meta": {"from": 0, "to": 1},
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-03-19T10:10:00Z",
"modified_at": "2026-03-19T10:10:00Z"
}
]
}
}Felder der Protokollantwort
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Protokoll-ID |
record_type | string | Protokolltyp: comment / edit / status_change |
content | string | Kommentartext (nur bei Typ comment) |
meta | object | Änderungsdetails (bei den Typen edit und status_change) |
task_id | string | ID der übergeordneten Aufgabe |
operated_by | string | Signatur des Bearbeiters, z. B. claude-code, openclaw |
created_at | string | Erstellungszeitstempel (ISO 8601) |
modified_at | string | Zeitstempel der letzten Änderung (ISO 8601) |
28. Aufgabenkommentar hinzufügen
Fügen Sie einer Aufgabe einen Kommentar hinzu.
Endpoint
POST https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}/commentsAnfrage-Textkörper
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
content | string | Ja | Kommentarinhalt |
operated_by | string | Nein | Signatur des Bearbeiters, z. B. claude-code, openclaw (max. 100 Zeichen) |
Beispiel
curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000/comments' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"content": "This task is now in progress."
}'Erfolgreiche Antwort (200)
Gibt das erstellte Protokollobjekt zurück (gleiche Struktur wie die Elemente unter „Aufgabenprotokolle auflisten“).
Fehlercodes (aktualisiert)
| Code | HTTP-Status | Beschreibung |
|---|---|---|
UNAUTHORIZED | 401 | Der API-Schlüssel ist ungültig oder widerrufen |
LIVEDOC_CREATE_FAILED | 502 | LiveDoc konnte nicht erstellt werden |
LIVEDOC_UPDATE_FAILED | 502 | LiveDoc konnte nicht aktualisiert werden |
LIVEDOC_DELETE_FAILED | 502 | LiveDoc konnte nicht gelöscht werden |
LIVEDOC_NOT_FOUND | 404 | LiveDoc nicht gefunden |
LIVEDOC_LIST_FAILED | 502 | LiveDocs konnten nicht aufgelistet werden |
LIVEDOC_RESOURCE_CREATE_FAILED | 502 | Ressource konnte nicht erstellt werden |
LIVEDOC_RESOURCE_UPLOAD_FAILED | 502 | Ressource konnte nicht hochgeladen werden |
LIVEDOC_RESOURCE_DELETE_FAILED | 502 | Ressource konnte nicht gelöscht werden |
LIVEDOC_RESOURCE_NOT_FOUND | 404 | Ressource nicht gefunden |
LIVEDOC_RESOURCE_LIST_FAILED | 502 | Ressourcen konnten nicht aufgelistet werden |
LIVEDOC_RESOURCE_RETRIEVE_FAILED | 502 | Ressourcen konnten nicht abgerufen werden |
LIVEDOC_RESOURCE_ADD_URLS_FAILED | 502 | URL-Ressourcen konnten nicht hinzugefügt werden |
LIVEDOC_README_GET_FAILED | 502 | README konnte nicht abgerufen werden |
LIVEDOC_README_UPDATE_FAILED | 502 | README konnte nicht erstellt oder aktualisiert werden |
LIVEDOC_README_DELETE_FAILED | 502 | README konnte nicht gelöscht werden |
LIVEDOC_README_NOT_FOUND | 404 | README nicht gefunden |
LIVEDOC_TASK_LIST_FAILED | 502 | Aufgaben konnten nicht aufgelistet werden |
LIVEDOC_TASK_CREATE_FAILED | 502 | Aufgabe konnte nicht erstellt werden |
LIVEDOC_TASK_UPDATE_FAILED | 502 | Aufgabe konnte nicht aktualisiert werden |
LIVEDOC_TASK_DELETE_FAILED | 502 | Aufgabe konnte nicht gelöscht werden |
LIVEDOC_TASK_NOT_FOUND | 404 | Aufgabe nicht gefunden |
LIVEDOC_TASK_RECORD_LIST_FAILED | 502 | Aufgabenprotokolle konnten nicht aufgelistet werden |
LIVEDOC_TASK_COMMENT_CREATE_FAILED | 502 | Aufgabenkommentar konnte nicht erstellt werden |