Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Créez des bases de connaissances, gérez les ressources et exécutez la recherche sémantique et le routage.

POST/v2/livedocs

Authentification

Bearer API key

Type de contenu

application/json or multipart/form-data

Notes sur les limites

Des limites propres à l'endpoint peuvent s'appliquer.

L'API LiveDoc fournit des opérations CRUD complètes sur les LiveDocs et leurs ressources, y compris la création de documents, l'import de fichiers, l'import d'URL et la récupération sémantique.

Authentification

Toutes les requêtes nécessitent une clé API dans l'en-tête Authorization :

Authorization: Bearer YOUR_API_KEY

Utilisation avec des agents IA

Installez le paquet complet felo-ai pour fournir à un agent la prise en charge des LiveDocs et tous les autres Felo Skills disponibles. L'installateur découvre dynamiquement chaque répertoire de paquet contenant SKILL.md, y compris les ajouts futurs au paquet. Installez tous les Skills découverts dans le répertoire natif de votre agent : Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills ou Hermes Agent ~/.hermes/skills. Le guide d'installation manuelle des agents IA détaille les étapes de clé API et de vérification propres à chaque plateforme.


1. Créer un LiveDoc

Endpoint

POST https://openapi.felo.ai/v2/livedocs

Corps de requête

ParamètreTypeRequisDescription
namestringOuiNom du LiveDoc
descriptionstringNonDescription du LiveDoc
iconstringNonIcône du LiveDoc

Exemple

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"
  }'

Réponse de succès (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"
  }
}

Champs de réponse

ChampTypeDescription
short_idstringID du LiveDoc
namestringNom du LiveDoc
descriptionstringDescription du LiveDoc
iconstringIcône du LiveDoc
created_atstringHorodatage de création (ISO 8601)
modified_atstringHorodatage de la dernière modification (ISO 8601)
is_sharedbooleanIndique si ce LiveDoc est partagé avec l'utilisateur actuel (sans lui appartenir)

2. Lister les LiveDocs

Endpoint

GET https://openapi.felo.ai/v2/livedocs

Paramètres de requête

ParamètreTypeRequisDescription
keywordstringNonFiltrer par mot-clé
pageintegerNonNuméro de page (à partir de 1)
sizeintegerNonTaille de page

Exemple

curl 'https://openapi.felo.ai/v2/livedocs?keyword=AI&page=1&size=20' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (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..."
        }
      }
    ]
  }
}

Champs de réponse

Chaque élément de items contient les mêmes champs que la réponse de création d'un LiveDoc, plus :

ChampTypeDescription
readmeobject | nullInformations du README. null si aucun README n'existe.
readme.summarystring | nullDescription du projet en une ligne
readme.contentstring | nullContenu du README (Markdown)

Endpoint

PUT https://openapi.felo.ai/v2/livedocs/{short_id}

Corps de requête

ParamètreTypeRequisDescription
namestringNonNouveau nom du LiveDoc
descriptionstringNonNouvelle description du LiveDoc

Exemple

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"
  }'

Réponse de succès (200)

Renvoie l'objet LiveDoc mis à jour (même structure que la création).


4. Supprimer un LiveDoc

Endpoint

DELETE https://openapi.felo.ai/v2/livedocs/{short_id}

Exemple

curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": null
}

5. Lister les ressources

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources

Paramètres de requête

ParamètreTypeRequisDescription
resource_typesstring[]NonFiltrer par types de ressources
pageintegerNonNuméro de page (à partir de 1)
sizeintegerNonTaille de page

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources?page=1&size=20' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (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"
      }
    ]
  }
}

Champs de réponse d'une ressource

ChampTypeDescription
idstringID de la ressource
titlestringTitre de la ressource
linkstringLien ou URL de la ressource
snippetstringRésumé de la ressource
thumbnailstringURL de la vignette
resource_typestringType de ressource (par exemple web, ai_doc, file)
resource_keystringClé d'association de la ressource
statusstringStatut de la ressource
sourcestringSource de la ressource
created_atstringHorodatage de création (ISO 8601)
modified_atstringHorodatage de la dernière modification (ISO 8601)

6. Obtenir une ressource unique

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

Renvoie un objet ressource unique (même structure que les éléments de la liste des ressources).


7. Mettre à jour une ressource

Mettez à jour le title, le snippet ou la thumbnail d'une ressource. Seuls les champs fournis sont modifiés ; les champs omis conservent leur valeur actuelle.

Endpoint

PUT https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}

Corps de requête

Tous les champs sont facultatifs.

ParamètreTypeRequisDescription
titlestringNonNouveau titre de la ressource (500 caractères maximum)
snippetstringNonNouveau résumé de la ressource (2000 caractères maximum)
thumbnailstringNonNouvelle URL de vignette (2000 caractères maximum)

Exemple

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."
  }'

Réponse de succès (200)

Renvoie l'objet ressource mis à jour (même structure que les éléments de la liste des ressources).


8. Mettre à jour le contenu d'une ressource

Mettez à jour le contenu Markdown d'une ressource ai_doc. Pris en charge uniquement pour les ressources dont resource_type == ai_doc. Le champ snippet est automatiquement mis à jour à partir des 2000 premiers octets du nouveau contenu.

Endpoint

PUT https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/content

Corps de requête

ParamètreTypeRequisDescription
contentstringOuiNouveau contenu Markdown de la ressource

Exemple

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."
  }'

Réponse de succès (200)

Renvoie l'objet ressource mis à jour (même structure que les éléments de la liste des ressources).


9. Créer une ressource document

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/doc

Corps de requête

ParamètreTypeRequisDescription
titlestringNonTitre du document (par défaut New Document)
contentstringOuiContenu du document

Exemple

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..."
  }'

Réponse de succès (200)

Renvoie l'objet ressource créé.


10. Importer un fichier comme document

Importez un fichier et convertissez-le en ressource document (type ai_doc).

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/upload-doc

Content-Type

multipart/form-data

Parties de requête

ParamètreTypeRequisDescription
filefileOuiLe fichier à importer
titlestringNonTitre du document

Exemple

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'

Réponse de succès (200)

Renvoie l'objet ressource créé.


11. Importer un fichier comme ressource

Importez un fichier en conservant son format d'origine.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/upload

Content-Type

multipart/form-data

Parties de requête

ParamètreTypeRequisDescription
filefileOuiLe fichier à importer

Exemple

curl -X POST 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/upload' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F '[email protected]'

Réponse de succès (200)

Renvoie l'objet ressource créé.


12. Ajouter des ressources URL

Ajoutez une ou plusieurs URL comme ressources à un LiveDoc.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/urls

Corps de requête

ParamètreTypeRequisDescription
urlsarrayOuiListe des URL à ajouter (1 à 10). Chaque élément peut être une chaîne simple ou un objet avec url et un title facultatif.

Formats d'élément URL

Chaque entrée de urls peut être :

  • Une chaîne simple : "https://example.com/article"
  • Un objet : {"url": "https://example.com/article", "title": "Custom Title"}
ChampTypeRequisDescription
urlstringOuiL'URL à ajouter (5 à 2000 caractères)
titlestringNonTitre personnalisé de la ressource (1000 caractères maximum). S'il est omis, le titre est généré automatiquement à partir de la page.

Exemple

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"}
    ]
  }'

Réponse de succès (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"
    }
  ]
}

Champs de résultat URL

ChampTypeDescription
urlstringL'URL traitée
statusstringStatut du résultat : success, failed ou existed
fail_reasonstringRaison de l'échec (null en cas de succès)
resource_idstringID de la ressource créée

13. Supprimer une ressource

Endpoint

DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}

Exemple

curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": null
}

14. Récupération (recherche sémantique)

Effectuez une récupération sémantique sur les ressources d'un LiveDoc.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/retrieve

Corps de requête

ParamètreTypeRequisDescription
querystringOuiContenu de la requête pour la recherche sémantique
resource_idsstring[]NonID de ressources spécifiques dans lesquelles chercher (1 à 50). S'il est omis, les ressources pertinentes sont routées automatiquement selon la requête

Exemple

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"]
  }'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": [
    {
      "id": "res_001",
      "title": "LLM Research Paper",
      "content": "Relevant content excerpt...",
      "score": 0.92,
      "metadata": {}
    }
  ]
}

Champs de résultat de récupération

ChampTypeDescription
idstringID de la ressource
titlestringTitre de la ressource
contentstringContenu correspondant
scorenumberScore de pertinence
metadataobjectMétadonnées supplémentaires

15. Router les ressources

Routez les ressources pertinentes d'un LiveDoc selon une requête. Renvoie une liste d'ID de ressources à transmettre à l'endpoint de récupération.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/route

Corps de requête

ParamètreTypeRequisDescription
querystringOuiContenu de la requête pour le routage
max_resourcesintegerNonNombre maximal d'ID de ressources à renvoyer

Exemple

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
  }'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": ["res_001", "res_003", "res_007"]
}

16. Télécharger le fichier source d'une ressource

Obtenez le fichier source d'une ressource. Renvoie une redirection 302 vers l'URL de téléchargement présignée.

Pris en charge uniquement pour les ressources associées à un fichier source (par exemple les documents importés).

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/download

Paramètres de requête

ParamètreTypeRequisDescription
expires_inintegerNonExpiration de l'URL en secondes (par défaut : 3600)

Exemple

curl -L 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001/download' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse

Renvoie 302 Found avec un en-tête Location pointant vers l'URL de téléchargement S3 présignée. Les clients HTTP prenant en charge les redirections (par exemple curl -L) suivent la redirection et téléchargent le fichier directement.


17. Obtenir le contenu d'une ressource

Récupérez le contenu textuel extrait d'une ressource. Pris en charge pour la plupart des types de ressources (document, web, vidéo, ai_doc, ai_ppt, texte, voix, mindmap, etc.). Renvoie 400 pour les types non pris en charge, comme image.

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/resources/{resource_id}/content

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/resources/res_001/content' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "title": "Q4 Financial Report",
    "type": "document",
    "content": "Full extracted text content of the resource..."
  }
}

Champs de réponse

ChampTypeDescription
titlestringTitre de la ressource
typestringType de ressource
contentstringContenu textuel extrait

18. Récupération sur une page PPT

Effectuez une récupération de contenu approfondie sur une page spécifique d'une ressource PPT. La page de la diapositive est analysée et des blocs de contenu classés sont renvoyés. Le format de réponse est identique à celui de l'endpoint Récupération.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/resources/ppt-retrieve

Corps de requête

ParamètreTypeRequisDescription
resource_idstringOuiID de la ressource PPT
page_numberintegerOuiNuméro de page à récupérer (à partir de 1)
querystringOuiContenu de la requête décrivant ce que vous cherchez
max_chunkintegerNonNombre maximal de blocs à renvoyer (par défaut : 3)

Exemple

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
  }'

Réponse de succès (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
      }
    }
  ]
}

Champs de réponse

Identiques aux champs de résultat de récupération.


Codes d'erreur

CodeStatut HTTPDescription
UNAUTHORIZED401La clé API est invalide ou révoquée
LIVEDOC_CREATE_FAILED502Échec de la création du LiveDoc
LIVEDOC_UPDATE_FAILED502Échec de la mise à jour du LiveDoc
LIVEDOC_DELETE_FAILED502Échec de la suppression du LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc introuvable
LIVEDOC_LIST_FAILED502Échec de la liste des LiveDocs
LIVEDOC_RESOURCE_CREATE_FAILED502Échec de la création de la ressource
LIVEDOC_RESOURCE_UPLOAD_FAILED502Échec de l'import de la ressource
LIVEDOC_RESOURCE_DELETE_FAILED502Échec de la suppression de la ressource
LIVEDOC_RESOURCE_NOT_FOUND404Ressource introuvable
LIVEDOC_RESOURCE_LIST_FAILED502Échec de la liste des ressources
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Échec de la récupération des ressources
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Échec de l'ajout des ressources URL

19. Obtenir le README

Obtenez le contenu du README d'un LiveDoc. Renvoie une chaîne vide si aucun README n'a été défini.

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/readme

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (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."
  }
}

Champs de réponse

ChampTypeDescription
summarystring | nullDescription du projet en une ligne. 2000 caractères maximum.
contentstringContenu du README (Markdown). Chaîne vide s'il n'est pas défini.

20. Créer ou mettre à jour le README

Créez ou mettez à jour le README d'un LiveDoc (sémantique d'upsert).

Endpoint

PUT https://openapi.felo.ai/v2/livedocs/{short_id}/readme

Corps de requête

ParamètreTypeRequisDescription
summarystringNonDescription du projet en une ligne (2000 caractères maximum)
contentstringNonContenu du README (Markdown)

Remarque : au moins l'un de summary ou content doit être fourni.

Exemple

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."
  }'

Réponse de succès (200)

Renvoie l'objet README mis à jour (même structure que pour l'obtention du README).


21. Ajouter du contenu au README

Ajoutez du contenu à la fin d'un README existant. Si aucun README n'existe, un nouveau est créé avec le contenu fourni.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/readme/append

Corps de requête

ParamètreTypeRequisDescription
contentstringOuiContenu à ajouter (Markdown)

Exemple

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."
  }'

Réponse de succès (200)

Renvoie l'objet README complet après l'ajout (même structure que pour l'obtention du README).


22. Supprimer le README

Supprimez le README d'un LiveDoc.

Endpoint

DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/readme

Exemple

curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/readme' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": null
}

23. Lister les tâches

Obtenez une liste paginée des tâches d'un LiveDoc. Les résultats sont triés par sort croissant, status croissant, puis created_at décroissant.

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/tasks

Paramètres de requête

ParamètreTypeRequisDescription
statusintegerNonFiltrer par statut : 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]NonFiltrer par étiquettes (les tâches doivent contenir toutes les étiquettes indiquées)
pageintegerNonNuméro de page (à partir de 1)
sizeintegerNonTaille de page

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks?status=0&page=1&size=20' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (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"
      }
    ]
  }
}

Champs de réponse d'une tâche

ChampTypeDescription
idstringID de la tâche (UUID)
titlestringTitre de la tâche
descriptionstringDescription de la tâche
statusintegerStatut de la tâche : 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerOrdre de tri (non négatif)
labelsstring[]Liste d'étiquettes
operated_bystringSignature de l'opérateur, par exemple claude-code, openclaw
created_atstringHorodatage de création (ISO 8601)
modified_atstringHorodatage de la dernière modification (ISO 8601)

24. Créer une tâche

Créez une nouvelle tâche dans un LiveDoc.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/tasks

Corps de requête

ParamètreTypeRequisDescription
titlestringOuiTitre de la tâche
descriptionstringNonDescription de la tâche
statusintegerOuiStatut de la tâche : 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerOuiOrdre de tri (entier non négatif)
labelsstring[]NonListe d'étiquettes (10 maximum, 50 caractères chacune au maximum)
operated_bystringNonSignature de l'opérateur, par exemple claude-code, openclaw (100 caractères maximum)

Exemple

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"]
  }'

Réponse de succès (200)

Renvoie l'objet tâche créé (même structure que les éléments de la liste des tâches).


25. Mettre à jour une tâche

Mettez partiellement à jour une tâche. Seuls les champs fournis sont modifiés ; les champs omis conservent leur valeur actuelle.

Endpoint

PATCH https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}

Corps de requête

Tous les champs sont facultatifs.

ParamètreTypeRequisDescription
titlestringNonNouveau titre de la tâche
descriptionstringNonNouvelle description de la tâche
statusintegerNonNouveau statut : 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerNonNouvel ordre de tri (non négatif)
labelsstring[]NonNouvelle liste d'étiquettes (10 maximum, 50 caractères chacune au maximum)
operated_bystringNonSignature de l'opérateur, par exemple claude-code, openclaw (100 caractères maximum)

Exemple

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
  }'

Réponse de succès (200)

Renvoie l'objet tâche mis à jour (même structure que les éléments de la liste des tâches).


26. Supprimer une tâche

Supprimez une tâche en douceur (soft delete).

Endpoint

DELETE https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}

Exemple

curl -X DELETE 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (200)

{
  "status": "ok",
  "message": null,
  "data": null
}

27. Lister les enregistrements d'une tâche

Obtenez une liste paginée des enregistrements d'une tâche (commentaires et historique des modifications), triés par created_at croissant.

Endpoint

GET https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}/records

Paramètres de requête

ParamètreTypeRequisDescription
record_typestringNonFiltrer par type d'enregistrement : comment, edit, status_change
pageintegerNonNuméro de page (à partir de 1)
sizeintegerNonTaille de page

Exemple

curl 'https://openapi.felo.ai/v2/livedocs/PvyKouzJirXjFdst4uKRK3/tasks/550e8400-e29b-41d4-a716-446655440000/records' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Réponse de succès (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"
      }
    ]
  }
}

Champs de réponse d'un enregistrement de tâche

ChampTypeDescription
idstringID de l'enregistrement
record_typestringType d'enregistrement : comment / edit / status_change
contentstringTexte du commentaire (uniquement pour le type comment)
metaobjectDétails de la modification (pour les types edit et status_change)
task_idstringID de la tâche parente
operated_bystringSignature de l'opérateur, par exemple claude-code, openclaw
created_atstringHorodatage de création (ISO 8601)
modified_atstringHorodatage de la dernière modification (ISO 8601)

28. Ajouter un commentaire à une tâche

Ajoutez un commentaire à une tâche.

Endpoint

POST https://openapi.felo.ai/v2/livedocs/{short_id}/tasks/{task_id}/comments

Corps de requête

ParamètreTypeRequisDescription
contentstringOuiContenu du commentaire
operated_bystringNonSignature de l'opérateur, par exemple claude-code, openclaw (100 caractères maximum)

Exemple

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."
  }'

Réponse de succès (200)

Renvoie l'objet enregistrement créé (même structure que les éléments de la liste des enregistrements d'une tâche).


Codes d'erreur (mis à jour)

CodeStatut HTTPDescription
UNAUTHORIZED401La clé API est invalide ou révoquée
LIVEDOC_CREATE_FAILED502Échec de la création du LiveDoc
LIVEDOC_UPDATE_FAILED502Échec de la mise à jour du LiveDoc
LIVEDOC_DELETE_FAILED502Échec de la suppression du LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc introuvable
LIVEDOC_LIST_FAILED502Échec de la liste des LiveDocs
LIVEDOC_RESOURCE_CREATE_FAILED502Échec de la création de la ressource
LIVEDOC_RESOURCE_UPLOAD_FAILED502Échec de l'import de la ressource
LIVEDOC_RESOURCE_DELETE_FAILED502Échec de la suppression de la ressource
LIVEDOC_RESOURCE_NOT_FOUND404Ressource introuvable
LIVEDOC_RESOURCE_LIST_FAILED502Échec de la liste des ressources
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Échec de la récupération des ressources
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Échec de l'ajout des ressources URL
LIVEDOC_README_GET_FAILED502Échec de l'obtention du README
LIVEDOC_README_UPDATE_FAILED502Échec de la création ou de la mise à jour du README
LIVEDOC_README_DELETE_FAILED502Échec de la suppression du README
LIVEDOC_README_NOT_FOUND404README introuvable
LIVEDOC_TASK_LIST_FAILED502Échec de la liste des tâches
LIVEDOC_TASK_CREATE_FAILED502Échec de la création de la tâche
LIVEDOC_TASK_UPDATE_FAILED502Échec de la mise à jour de la tâche
LIVEDOC_TASK_DELETE_FAILED502Échec de la suppression de la tâche
LIVEDOC_TASK_NOT_FOUND404Tâche introuvable
LIVEDOC_TASK_RECORD_LIST_FAILED502Échec de la liste des enregistrements de tâche
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Échec de la création du commentaire de tâche