Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Crea knowledge base, gestisci risorse ed esegui recupero semantico e routing.

POST/v2/livedocs

Autenticazione

Bearer API key

Tipo di contenuto

application/json or multipart/form-data

Note sui limiti

Possono applicarsi limiti specifici dell'endpoint.

La LiveDoc API offre operazioni CRUD complete sui LiveDoc e sulle loro risorse, compresi la creazione di documenti, il caricamento di file, l'importazione di URL e il recupero semantico.

Autenticazione

Tutte le richieste richiedono una chiave API nell'header Authorization:

Authorization: Bearer YOUR_API_KEY

Uso con agenti IA

Installa il pacchetto completo felo-ai per dare a un agente il supporto LiveDoc e ogni altra Felo Skill disponibile. L'installer individua dinamicamente ogni directory del pacchetto che contiene SKILL.md, comprese le aggiunte future del pacchetto. Installa tutte le Skill trovate nella directory nativa dell'agente: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills o Hermes Agent ~/.hermes/skills. La guida alla configurazione manuale degli agenti IA illustra i distinti passaggi su chiave API e verifica per ogni piattaforma.


1. Creare un LiveDoc

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
namestringSìNome del LiveDoc
descriptionstringNoDescrizione del LiveDoc
iconstringNoIcona del LiveDoc

Esempio

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

Risposta di successo (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"
  }
}

Campi della risposta

CampoTipoDescrizione
short_idstringID del LiveDoc
namestringNome del LiveDoc
descriptionstringDescrizione del LiveDoc
iconstringIcona del LiveDoc
created_atstringTimestamp di creazione (ISO 8601)
modified_atstringTimestamp dell'ultima modifica (ISO 8601)
is_sharedbooleanSe questo LiveDoc è condiviso con l'utente corrente (non di sua proprietà)

2. Elencare i LiveDoc

Endpoint

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

Parametri di query

ParametroTipoObbligatorioDescrizione
keywordstringNoFiltra per parola chiave
pageintegerNoNumero di pagina (parte da 1)
sizeintegerNoDimensione della pagina

Esempio

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

Risposta di successo (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..."
        }
      }
    ]
  }
}

Campi della risposta

Ogni elemento in items contiene gli stessi campi della risposta di creazione di un LiveDoc, più:

CampoTipoDescrizione
readmeobject | nullInformazioni del README. null se non esiste alcun README.
readme.summarystring | nullDescrizione del progetto in una riga
readme.contentstring | nullContenuto del README (Markdown)

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
namestringNoNuovo nome del LiveDoc
descriptionstringNoNuova descrizione del LiveDoc

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto LiveDoc aggiornato (stessa struttura della creazione).


4. Eliminare un LiveDoc

Endpoint

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

Esempio

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

Risposta di successo (200)

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

5. Elencare le risorse

Endpoint

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

Parametri di query

ParametroTipoObbligatorioDescrizione
resource_typesstring[]NoFiltra per tipi di risorsa
pageintegerNoNumero di pagina (parte da 1)
sizeintegerNoDimensione della pagina

Esempio

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

Risposta di successo (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"
      }
    ]
  }
}

Campi della risposta della risorsa

CampoTipoDescrizione
idstringID della risorsa
titlestringTitolo della risorsa
linkstringLink/URL della risorsa
snippetstringRiepilogo della risorsa
thumbnailstringURL della miniatura
resource_typestringTipo di risorsa (ad es. web, ai_doc, file)
resource_keystringChiave di associazione della risorsa
statusstringStato della risorsa
sourcestringOrigine della risorsa
created_atstringTimestamp di creazione (ISO 8601)
modified_atstringTimestamp dell'ultima modifica (ISO 8601)

6. Ottenere una singola risorsa

Endpoint

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

Esempio

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

Risposta di successo (200)

Restituisce un singolo oggetto risorsa (stessa struttura degli elementi in Elencare le risorse).


7. Aggiornare una risorsa

Aggiorna title, snippet o thumbnail di una risorsa. Vengono aggiornati solo i campi forniti; i campi omessi mantengono i valori correnti.

Endpoint

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

Corpo della richiesta

Tutti i campi sono facoltativi.

ParametroTipoObbligatorioDescrizione
titlestringNoNuovo titolo della risorsa (massimo 500 caratteri)
snippetstringNoNuovo riepilogo della risorsa (massimo 2000 caratteri)
thumbnailstringNoNuovo URL della miniatura (massimo 2000 caratteri)

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto risorsa aggiornato (stessa struttura degli elementi in Elencare le risorse).


8. Aggiornare il contenuto di una risorsa

Aggiorna il contenuto Markdown di una risorsa ai_doc. Supportato solo per le risorse con resource_type == ai_doc. Il campo snippet viene aggiornato automaticamente con i primi 2000 byte del nuovo contenuto.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
contentstringSìNuovo contenuto Markdown della risorsa

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto risorsa aggiornato (stessa struttura degli elementi in Elencare le risorse).


9. Creare una risorsa documento

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
titlestringNoTitolo del documento (predefinito: "New Document")
contentstringSìContenuto del documento

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto risorsa creato.


10. Caricare un file come documento

Carica un file e convertilo in una risorsa documento (tipo ai_doc).

Endpoint

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

Content-Type

multipart/form-data

Parti della richiesta

ParametroTipoObbligatorioDescrizione
filefileSìIl file da caricare
titlestringNoTitolo del documento

Esempio

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'

Risposta di successo (200)

Restituisce l'oggetto risorsa creato.


11. Caricare un file come risorsa

Carica un file e conservane il formato originale.

Endpoint

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

Content-Type

multipart/form-data

Parti della richiesta

ParametroTipoObbligatorioDescrizione
filefileSìIl file da caricare

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto risorsa creato.


12. Aggiungere risorse URL

Aggiungi uno o più URL come risorse a un LiveDoc.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
urlsarraySìElenco di elementi URL da aggiungere (da 1 a 10). Ogni elemento può essere una stringa semplice o un oggetto con url e title facoltativo.

Formati degli elementi URL

Ogni voce in urls può essere:

  • Una stringa semplice: "https://example.com/article"
  • Un oggetto: {"url": "https://example.com/article", "title": "Custom Title"}
CampoTipoObbligatorioDescrizione
urlstringSìL'URL da aggiungere (da 5 a 2000 caratteri)
titlestringNoTitolo personalizzato per la risorsa (massimo 1000 caratteri). Se omesso, il titolo viene generato automaticamente dalla pagina.

Esempio

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

Risposta di successo (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"
    }
  ]
}

Campi del risultato URL

CampoTipoDescrizione
urlstringL'URL elaborato
statusstringStato del risultato: success, failed o existed
fail_reasonstringMotivo dell'errore (null se riuscito)
resource_idstringID della risorsa creata

13. Eliminare una risorsa

Endpoint

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

Esempio

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

Risposta di successo (200)

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

14. Recupero (ricerca semantica)

Esegui il recupero semantico sulle risorse di un LiveDoc.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
querystringSìContenuto della query per la ricerca semantica
resource_idsstring[]NoID specifici delle risorse in cui cercare (da 1 a 50). Se omesso, le risorse pertinenti vengono instradate automaticamente in base alla query

Esempio

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

Risposta di successo (200)

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

Campi del risultato di recupero

CampoTipoDescrizione
idstringID della risorsa
titlestringTitolo della risorsa
contentstringContenuto corrispondente
scorenumberPunteggio di pertinenza
metadataobjectMetadati aggiuntivi

15. Instradare le risorse

Instrada le risorse pertinenti di un LiveDoc in base a una query. Restituisce un elenco di ID di risorse che possono essere passati all'endpoint di recupero.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
querystringSìContenuto della query per l'instradamento
max_resourcesintegerNoNumero massimo di ID di risorse da restituire

Esempio

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

Risposta di successo (200)

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

16. Scaricare il file sorgente di una risorsa

Ottieni il file sorgente di una risorsa. Restituisce un redirect 302 all'URL di download prefirmato.

Supportato solo per le risorse che hanno un file sorgente associato (ad es. documenti caricati).

Endpoint

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

Parametri di query

ParametroTipoObbligatorioDescrizione
expires_inintegerNoScadenza dell'URL in secondi (predefinito: 3600)

Esempio

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

Risposta

Restituisce 302 Found con un header Location che punta all'URL di download S3 prefirmato. I client HTTP con supporto ai redirect (ad es. curl -L) seguono il redirect e scaricano il file direttamente.


17. Ottenere il contenuto di una risorsa

Recupera il contenuto testuale estratto di una risorsa. Supportato per la maggior parte dei tipi di risorsa (document, web, video, ai_doc, ai_ppt, text, voice, mindmap e altri). Restituisce 400 per tipi non supportati come image.

Endpoint

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

Esempio

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

Risposta di successo (200)

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

Campi della risposta

CampoTipoDescrizione
titlestringTitolo della risorsa
typestringTipo di risorsa
contentstringContenuto testuale estratto

18. Recupero di una pagina PPT

Esegui un recupero approfondito del contenuto di una pagina specifica di una risorsa PPT. La pagina della diapositiva viene analizzata e vengono restituiti blocchi di contenuto classificati. Il formato della risposta è identico a quello dell'endpoint Recupero.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
resource_idstringSìID della risorsa PPT
page_numberintegerSìNumero di pagina da recuperare (parte da 1)
querystringSìContenuto della query che descrive cosa cercare
max_chunkintegerNoNumero massimo di blocchi da restituire (predefinito: 3)

Esempio

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

Risposta di successo (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
      }
    }
  ]
}

Campi della risposta

Come nei campi del risultato di recupero.


Codici di errore

CodiceStato HTTPDescrizione
UNAUTHORIZED401La chiave API non è valida o è revocata
LIVEDOC_CREATE_FAILED502Creazione del LiveDoc non riuscita
LIVEDOC_UPDATE_FAILED502Aggiornamento del LiveDoc non riuscito
LIVEDOC_DELETE_FAILED502Eliminazione del LiveDoc non riuscita
LIVEDOC_NOT_FOUND404LiveDoc non trovato
LIVEDOC_LIST_FAILED502Elenco dei LiveDoc non riuscito
LIVEDOC_RESOURCE_CREATE_FAILED502Creazione della risorsa non riuscita
LIVEDOC_RESOURCE_UPLOAD_FAILED502Caricamento della risorsa non riuscito
LIVEDOC_RESOURCE_DELETE_FAILED502Eliminazione della risorsa non riuscita
LIVEDOC_RESOURCE_NOT_FOUND404Risorsa non trovata
LIVEDOC_RESOURCE_LIST_FAILED502Elenco delle risorse non riuscito
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Recupero delle risorse non riuscito
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Aggiunta delle risorse URL non riuscita

19. Ottenere il README

Ottieni il contenuto del README di un LiveDoc. Restituisce una stringa vuota se non è stato impostato alcun README.

Endpoint

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

Esempio

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

Risposta di successo (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."
  }
}

Campi della risposta

CampoTipoDescrizione
summarystring | nullDescrizione del progetto in una riga. Massimo 2000 caratteri.
contentstringContenuto del README (Markdown). Stringa vuota se non impostato.

20. Creare o aggiornare il README

Crea o aggiorna il README di un LiveDoc (semantica upsert).

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
summarystringNoDescrizione del progetto in una riga (massimo 2000 caratteri)
contentstringNoContenuto del README (Markdown)

Nota: è necessario fornire almeno uno tra summary e content.

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto README aggiornato (stessa struttura di Ottenere il README).


21. Accodare al README

Accoda contenuto alla fine di un README esistente. Se non esiste alcun README, ne viene creato uno nuovo con il contenuto fornito.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
contentstringSìContenuto da accodare (Markdown)

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto README completo dopo l'accodamento (stessa struttura di Ottenere il README).


22. Eliminare il README

Elimina il README di un LiveDoc.

Endpoint

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

Esempio

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

Risposta di successo (200)

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

23. Elencare le attività

Ottieni un elenco paginato delle attività di un LiveDoc. I risultati sono ordinati per sort crescente, status crescente e created_at decrescente.

Endpoint

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

Parametri di query

ParametroTipoObbligatorioDescrizione
statusintegerNoFiltra per stato: 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]NoFiltra per etichette (le attività devono contenere tutte le etichette specificate)
pageintegerNoNumero di pagina (parte da 1)
sizeintegerNoDimensione della pagina

Esempio

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

Risposta di successo (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"
      }
    ]
  }
}

Campi della risposta dell'attività

CampoTipoDescrizione
idstringID dell'attività (UUID)
titlestringTitolo dell'attività
descriptionstringDescrizione dell'attività
statusintegerStato dell'attività: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerOrdine di ordinamento (non negativo)
labelsstring[]Elenco delle etichette
operated_bystringFirma dell'operatore, ad es. claude-code, openclaw
created_atstringTimestamp di creazione (ISO 8601)
modified_atstringTimestamp dell'ultima modifica (ISO 8601)

24. Creare un'attività

Crea una nuova attività in un LiveDoc.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
titlestringSìTitolo dell'attività
descriptionstringNoDescrizione dell'attività
statusintegerSìStato dell'attività: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerSìOrdine di ordinamento (intero non negativo)
labelsstring[]NoElenco delle etichette (massimo 10, ciascuna massimo 50 caratteri)
operated_bystringNoFirma dell'operatore, ad es. claude-code, openclaw (massimo 100 caratteri)

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto attività creato (stessa struttura degli elementi in Elencare le attività).


25. Aggiornare un'attività

Aggiorna parzialmente un'attività. Vengono aggiornati solo i campi forniti; i campi omessi mantengono i valori correnti.

Endpoint

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

Corpo della richiesta

Tutti i campi sono facoltativi.

ParametroTipoObbligatorioDescrizione
titlestringNoNuovo titolo dell'attività
descriptionstringNoNuova descrizione dell'attività
statusintegerNoNuovo stato: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerNoNuovo ordine di ordinamento (non negativo)
labelsstring[]NoNuovo elenco di etichette (massimo 10, ciascuna massimo 50 caratteri)
operated_bystringNoFirma dell'operatore, ad es. claude-code, openclaw (massimo 100 caratteri)

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto attività aggiornato (stessa struttura degli elementi in Elencare le attività).


26. Eliminare un'attività

Elimina logicamente un'attività.

Endpoint

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

Esempio

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

Risposta di successo (200)

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

27. Elencare i record delle attività

Ottieni un elenco paginato dei record di un'attività (commenti e cronologia delle modifiche), ordinati per created_at crescente.

Endpoint

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

Parametri di query

ParametroTipoObbligatorioDescrizione
record_typestringNoFiltra per tipo di record: comment, edit, status_change
pageintegerNoNumero di pagina (parte da 1)
sizeintegerNoDimensione della pagina

Esempio

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

Risposta di successo (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"
      }
    ]
  }
}

Campi della risposta del record dell'attività

CampoTipoDescrizione
idstringID del record
record_typestringTipo di record: comment / edit / status_change
contentstringTesto del commento (solo per il tipo comment)
metaobjectDettagli della modifica (per i tipi edit e status_change)
task_idstringID dell'attività principale
operated_bystringFirma dell'operatore, ad es. claude-code, openclaw
created_atstringTimestamp di creazione (ISO 8601)
modified_atstringTimestamp dell'ultima modifica (ISO 8601)

28. Aggiungere un commento a un'attività

Aggiungi un commento a un'attività.

Endpoint

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

Corpo della richiesta

ParametroTipoObbligatorioDescrizione
contentstringSìContenuto del commento
operated_bystringNoFirma dell'operatore, ad es. claude-code, openclaw (massimo 100 caratteri)

Esempio

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

Risposta di successo (200)

Restituisce l'oggetto record creato (stessa struttura degli elementi in Elencare i record delle attività).


Codici di errore (aggiornati)

CodiceStato HTTPDescrizione
UNAUTHORIZED401La chiave API non è valida o è revocata
LIVEDOC_CREATE_FAILED502Creazione del LiveDoc non riuscita
LIVEDOC_UPDATE_FAILED502Aggiornamento del LiveDoc non riuscito
LIVEDOC_DELETE_FAILED502Eliminazione del LiveDoc non riuscita
LIVEDOC_NOT_FOUND404LiveDoc non trovato
LIVEDOC_LIST_FAILED502Elenco dei LiveDoc non riuscito
LIVEDOC_RESOURCE_CREATE_FAILED502Creazione della risorsa non riuscita
LIVEDOC_RESOURCE_UPLOAD_FAILED502Caricamento della risorsa non riuscito
LIVEDOC_RESOURCE_DELETE_FAILED502Eliminazione della risorsa non riuscita
LIVEDOC_RESOURCE_NOT_FOUND404Risorsa non trovata
LIVEDOC_RESOURCE_LIST_FAILED502Elenco delle risorse non riuscito
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Recupero delle risorse non riuscito
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Aggiunta delle risorse URL non riuscita
LIVEDOC_README_GET_FAILED502Lettura del README non riuscita
LIVEDOC_README_UPDATE_FAILED502Creazione o aggiornamento del README non riuscito
LIVEDOC_README_DELETE_FAILED502Eliminazione del README non riuscita
LIVEDOC_README_NOT_FOUND404README non trovato
LIVEDOC_TASK_LIST_FAILED502Elenco delle attività non riuscito
LIVEDOC_TASK_CREATE_FAILED502Creazione dell'attività non riuscita
LIVEDOC_TASK_UPDATE_FAILED502Aggiornamento dell'attività non riuscito
LIVEDOC_TASK_DELETE_FAILED502Eliminazione dell'attività non riuscita
LIVEDOC_TASK_NOT_FOUND404Attività non trovata
LIVEDOC_TASK_RECORD_LIST_FAILED502Elenco dei record delle attività non riuscito
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Creazione del commento dell'attività non riuscita