Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Crie bases de conhecimento, gerencie recursos e execute recuperação semântica e roteamento.

POST/v2/livedocs

Autenticação

Bearer API key

Tipo de conteúdo

application/json or multipart/form-data

Notas de limite

Podem se aplicar limites específicos do endpoint.

A LiveDoc API oferece operações CRUD completas para LiveDocs e seus recursos, incluindo criação de documentos, envio de arquivos, importação por URL e recuperação semântica.

Autenticação

Todas as requisições exigem uma chave de API no cabeçalho Authorization:

Authorization: Bearer YOUR_API_KEY

Uso com agentes de IA

Instale o pacote completo felo-ai para dar a um agente suporte a LiveDoc e todos os demais Felo Skills disponíveis. O instalador descobre dinamicamente todos os diretórios de pacote que contêm SKILL.md, incluindo adições futuras de pacotes. Instale todos os Skills descobertos no diretório nativo do agente: ~/.codex/skills para o Codex, ~/.claude/skills para o Claude Code, ~/.agents/skills para o OpenClaw ou ~/.hermes/skills para o Hermes Agent. O guia de configuração manual de agentes de IA cobre a chave de API e as etapas de verificação específicas de cada plataforma.


1. Criar LiveDoc

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
namestringSimNome do LiveDoc
descriptionstringNãoDescrição do LiveDoc
iconstringNãoÍcone do LiveDoc

Exemplo

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

Resposta de sucesso (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"
  }
}

Campos da resposta

CampoTipoDescrição
short_idstringID do LiveDoc
namestringNome do LiveDoc
descriptionstringDescrição do LiveDoc
iconstringÍcone do LiveDoc
created_atstringTimestamp de criação (ISO 8601)
modified_atstringTimestamp da última modificação (ISO 8601)
is_sharedbooleanSe este LiveDoc é compartilhado com o usuário atual (ou seja, não pertence a ele)

2. Listar LiveDocs

Endpoint

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

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
keywordstringNãoFiltrar por palavra-chave
pageintegerNãoNúmero da página (começando em 1)
sizeintegerNãoTamanho da página

Exemplo

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

Resposta de sucesso (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..."
        }
      }
    ]
  }
}

Campos da resposta

Cada item em items contém os mesmos campos da resposta de criação do LiveDoc, além de:

CampoTipoDescrição
readmeobject | nullInformações do README. null se não houver README.
readme.summarystring | nullDescrição do projeto em uma linha
readme.contentstring | nullConteúdo do README (Markdown)

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
namestringNãoNovo nome do LiveDoc
descriptionstringNãoNova descrição do LiveDoc

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto LiveDoc atualizado (mesma estrutura da criação).


4. Excluir LiveDoc

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

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

5. Listar recursos

Endpoint

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

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
resource_typesstring[]NãoFiltrar por tipos de recurso
pageintegerNãoNúmero da página (começando em 1)
sizeintegerNãoTamanho da página

Exemplo

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

Resposta de sucesso (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"
      }
    ]
  }
}

Campos da resposta de recurso

CampoTipoDescrição
idstringID do recurso
titlestringTítulo do recurso
linkstringLink/URL do recurso
snippetstringResumo do recurso
thumbnailstringURL da miniatura
resource_typestringTipo de recurso (por exemplo, web, ai_doc, file)
resource_keystringChave de associação do recurso
statusstringStatus do recurso
sourcestringOrigem do recurso
created_atstringTimestamp de criação (ISO 8601)
modified_atstringTimestamp da última modificação (ISO 8601)

6. Obter um recurso

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

Retorna um único objeto de recurso (mesma estrutura dos itens em Listar recursos).


7. Atualizar recurso

Atualize o title, o snippet ou o thumbnail de um recurso. Apenas os campos informados são atualizados; os campos omitidos mantêm os valores atuais.

Endpoint

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

Corpo da requisição

Todos os campos são opcionais.

ParâmetroTipoObrigatórioDescrição
titlestringNãoNovo título do recurso (máximo de 500 caracteres)
snippetstringNãoNovo resumo do recurso (máximo de 2000 caracteres)
thumbnailstringNãoNova URL da miniatura (máximo de 2000 caracteres)

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de recurso atualizado (mesma estrutura dos itens em Listar recursos).


8. Atualizar o conteúdo do recurso

Atualize o conteúdo Markdown de um recurso ai_doc. Suportado apenas para recursos com resource_type == ai_doc. O campo snippet é atualizado automaticamente a partir dos primeiros 2000 bytes do novo conteúdo.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
contentstringSimNovo conteúdo Markdown do recurso

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de recurso atualizado (mesma estrutura dos itens em Listar recursos).


9. Criar recurso de documento

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
titlestringNãoTítulo do documento (o padrão é "New Document")
contentstringSimConteúdo do documento

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de recurso criado.


10. Enviar arquivo como documento

Envie um arquivo e converta-o em um recurso de documento (tipo ai_doc).

Endpoint

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

Content-Type

multipart/form-data

Partes da requisição

ParâmetroTipoObrigatórioDescrição
filefileSimO arquivo a enviar
titlestringNãoTítulo do documento

Exemplo

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'

Resposta de sucesso (200)

Retorna o objeto de recurso criado.


11. Enviar arquivo como recurso

Envie um arquivo e mantenha o formato original.

Endpoint

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

Content-Type

multipart/form-data

Partes da requisição

ParâmetroTipoObrigatórioDescrição
filefileSimO arquivo a enviar

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de recurso criado.


12. Adicionar recursos de URL

Adicione uma ou mais URLs como recursos a um LiveDoc.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
urlsarraySimLista de itens de URL a adicionar (1-10). Cada item pode ser uma string simples ou um objeto com url e title opcional.

Formatos de item de URL

Cada entrada em urls pode ser:

  • Uma string simples: "https://example.com/article"
  • Um objeto: {"url": "https://example.com/article", "title": "Custom Title"}
CampoTipoObrigatórioDescrição
urlstringSimA URL a adicionar (5 a 2000 caracteres)
titlestringNãoTítulo personalizado do recurso (máximo de 1000 caracteres). Se omitido, o título é gerado automaticamente a partir da página.

Exemplo

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

Resposta de sucesso (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"
    }
  ]
}

Campos do resultado de URL

CampoTipoDescrição
urlstringA URL processada
statusstringStatus do resultado: success, failed ou existed
fail_reasonstringMotivo da falha (null em caso de sucesso)
resource_idstringID do recurso criado

13. Excluir recurso

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

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

14. Recuperação (busca semântica)

Execute recuperação semântica nos recursos de um LiveDoc.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
querystringSimConteúdo da consulta para busca semântica
resource_idsstring[]NãoIDs específicos de recursos nos quais buscar (1-50). Se omitido, os recursos relevantes são roteados automaticamente pela consulta

Exemplo

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

Resposta de sucesso (200)

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

Campos do resultado da recuperação

CampoTipoDescrição
idstringID do recurso
titlestringTítulo do recurso
contentstringConteúdo correspondente
scorenumberPontuação de relevância
metadataobjectMetadados adicionais

15. Roteamento de recursos

Encaminhe os recursos relevantes de um LiveDoc com base em uma consulta. Retorna uma lista de IDs de recursos que podem ser passados ao endpoint de recuperação.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
querystringSimConteúdo da consulta para roteamento
max_resourcesintegerNãoNúmero máximo de IDs de recursos a retornar

Exemplo

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

Resposta de sucesso (200)

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

16. Baixar o arquivo de origem do recurso

Obtenha o arquivo de origem de um recurso. Retorna um redirecionamento 302 para a URL de download pré-assinada.

Suportado apenas para recursos que têm um arquivo de origem associado (por exemplo, documentos enviados).

Endpoint

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

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
expires_inintegerNãoExpiração da URL em segundos (padrão: 3600)

Exemplo

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

Resposta

Retorna 302 Found com um cabeçalho Location apontando para a URL de download pré-assinada do S3. Clientes HTTP com suporte a redirecionamento (por exemplo, curl -L) seguirão o redirecionamento e baixarão o arquivo diretamente.


17. Obter o conteúdo do recurso

Obtenha o conteúdo de texto extraído de um recurso. Suportado para a maioria dos tipos de recurso (document, web, video, ai_doc, ai_ppt, text, voice, mindmap etc.). Retorna 400 para tipos não suportados, como image.

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

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

Campos da resposta

CampoTipoDescrição
titlestringTítulo do recurso
typestringTipo do recurso
contentstringConteúdo de texto extraído

18. Recuperação de página de PPT

Execute recuperação profunda de conteúdo em uma página específica de um recurso PPT. Extrai a página do slide e retorna trechos de conteúdo classificados. O formato da resposta é idêntico ao do endpoint Recuperação.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
resource_idstringSimID do recurso PPT
page_numberintegerSimNúmero da página a recuperar (começa em 1)
querystringSimConteúdo da consulta descrevendo o que procurar
max_chunkintegerNãoNúmero máximo de trechos a retornar (padrão: 3)

Exemplo

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

Resposta de sucesso (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
      }
    }
  ]
}

Campos da resposta

O mesmo que Campos do resultado da recuperação.


Códigos de erro

CódigoStatus HTTPDescrição
UNAUTHORIZED401A chave de API é inválida ou foi revogada
LIVEDOC_CREATE_FAILED502Falha ao criar o LiveDoc
LIVEDOC_UPDATE_FAILED502Falha ao atualizar o LiveDoc
LIVEDOC_DELETE_FAILED502Falha ao excluir o LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc não encontrado
LIVEDOC_LIST_FAILED502Falha ao listar os LiveDocs
LIVEDOC_RESOURCE_CREATE_FAILED502Falha ao criar o recurso
LIVEDOC_RESOURCE_UPLOAD_FAILED502Falha ao enviar o recurso
LIVEDOC_RESOURCE_DELETE_FAILED502Falha ao excluir o recurso
LIVEDOC_RESOURCE_NOT_FOUND404Recurso não encontrado
LIVEDOC_RESOURCE_LIST_FAILED502Falha ao listar os recursos
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Falha ao recuperar os recursos
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Falha ao adicionar recursos de URL

19. Obter README

Obtenha o conteúdo do README de um LiveDoc. Retorna uma string vazia se nenhum README foi definido.

Endpoint

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

Exemplo

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

Resposta de sucesso (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."
  }
}

Campos da resposta

CampoTipoDescrição
summarystring | nullDescrição do projeto em uma linha. Máximo de 2000 caracteres.
contentstringConteúdo do README (Markdown). String vazia se não definido.

20. Criar ou atualizar README

Crie ou atualize o README de um LiveDoc (semântica de upsert).

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
summarystringNãoDescrição do projeto em uma linha (máximo de 2000 caracteres)
contentstringNãoConteúdo do README (Markdown)

Observação: é necessário informar pelo menos summary ou content.

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto README atualizado (mesma estrutura de Obter README).


21. Acrescentar ao README

Acrescente conteúdo ao final de um README existente. Se não existir README, cria um novo com o conteúdo fornecido.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
contentstringSimConteúdo a acrescentar (Markdown)

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto README completo após o acréscimo (mesma estrutura de Obter README).


22. Excluir README

Exclua o README de um LiveDoc.

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

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

23. Listar tarefas

Obtenha uma lista paginada de tarefas de um LiveDoc. Os resultados são ordenados por sort crescente, status crescente e created_at decrescente.

Endpoint

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

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
statusintegerNãoFiltrar por status: 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]NãoFiltrar por rótulos (as tarefas devem conter todos os rótulos especificados)
pageintegerNãoNúmero da página (começando em 1)
sizeintegerNãoTamanho da página

Exemplo

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

Resposta de sucesso (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"
      }
    ]
  }
}

Campos da resposta de tarefa

CampoTipoDescrição
idstringID da tarefa (UUID)
titlestringTítulo da tarefa
descriptionstringDescrição da tarefa
statusintegerStatus da tarefa: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerOrdem de classificação (não negativa)
labelsstring[]Lista de rótulos
operated_bystringAssinatura do operador, por exemplo claude-code, openclaw
created_atstringTimestamp de criação (ISO 8601)
modified_atstringTimestamp da última modificação (ISO 8601)

24. Criar tarefa

Crie uma nova tarefa em um LiveDoc.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
titlestringSimTítulo da tarefa
descriptionstringNãoDescrição da tarefa
statusintegerSimStatus da tarefa: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerSimOrdem de classificação (inteiro não negativo)
labelsstring[]NãoLista de rótulos (máximo de 10, cada um com no máximo 50 caracteres)
operated_bystringNãoAssinatura do operador, por exemplo claude-code, openclaw (máximo de 100 caracteres)

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de tarefa criado (mesma estrutura dos itens em Listar tarefas).


25. Atualizar tarefa

Atualize parcialmente uma tarefa. Apenas os campos informados são atualizados; os campos omitidos mantêm os valores atuais.

Endpoint

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

Corpo da requisição

Todos os campos são opcionais.

ParâmetroTipoObrigatórioDescrição
titlestringNãoNovo título da tarefa
descriptionstringNãoNova descrição da tarefa
statusintegerNãoNovo status: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerNãoNova ordem de classificação (não negativa)
labelsstring[]NãoNova lista de rótulos (máximo de 10, cada um com no máximo 50 caracteres)
operated_bystringNãoAssinatura do operador, por exemplo claude-code, openclaw (máximo de 100 caracteres)

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de tarefa atualizado (mesma estrutura dos itens em Listar tarefas).


26. Excluir tarefa

Exclui uma tarefa com exclusão lógica.

Endpoint

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

Exemplo

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

Resposta de sucesso (200)

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

27. Listar registros de tarefa

Obtenha uma lista paginada de registros de uma tarefa (comentários e histórico de alterações), ordenados por created_at crescente.

Endpoint

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

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
record_typestringNãoFiltrar por tipo de registro: comment, edit, status_change
pageintegerNãoNúmero da página (começando em 1)
sizeintegerNãoTamanho da página

Exemplo

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

Resposta de sucesso (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"
      }
    ]
  }
}

Campos da resposta de registro de tarefa

CampoTipoDescrição
idstringID do registro
record_typestringTipo de registro: comment / edit / status_change
contentstringTexto do comentário (apenas para o tipo comment)
metaobjectDetalhes da alteração (para os tipos edit e status_change)
task_idstringID da tarefa pai
operated_bystringAssinatura do operador, por exemplo claude-code, openclaw
created_atstringTimestamp de criação (ISO 8601)
modified_atstringTimestamp da última modificação (ISO 8601)

28. Adicionar comentário à tarefa

Adicione um comentário a uma tarefa.

Endpoint

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

Corpo da requisição

ParâmetroTipoObrigatórioDescrição
contentstringSimConteúdo do comentário
operated_bystringNãoAssinatura do operador, por exemplo claude-code, openclaw (máximo de 100 caracteres)

Exemplo

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

Resposta de sucesso (200)

Retorna o objeto de registro criado (mesma estrutura dos itens em Listar registros de tarefa).


Códigos de erro (atualizado)

CódigoStatus HTTPDescrição
UNAUTHORIZED401A chave de API é inválida ou foi revogada
LIVEDOC_CREATE_FAILED502Falha ao criar o LiveDoc
LIVEDOC_UPDATE_FAILED502Falha ao atualizar o LiveDoc
LIVEDOC_DELETE_FAILED502Falha ao excluir o LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc não encontrado
LIVEDOC_LIST_FAILED502Falha ao listar os LiveDocs
LIVEDOC_RESOURCE_CREATE_FAILED502Falha ao criar o recurso
LIVEDOC_RESOURCE_UPLOAD_FAILED502Falha ao enviar o recurso
LIVEDOC_RESOURCE_DELETE_FAILED502Falha ao excluir o recurso
LIVEDOC_RESOURCE_NOT_FOUND404Recurso não encontrado
LIVEDOC_RESOURCE_LIST_FAILED502Falha ao listar os recursos
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Falha ao recuperar os recursos
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Falha ao adicionar recursos de URL
LIVEDOC_README_GET_FAILED502Falha ao obter o README
LIVEDOC_README_UPDATE_FAILED502Falha ao criar ou atualizar o README
LIVEDOC_README_DELETE_FAILED502Falha ao excluir o README
LIVEDOC_README_NOT_FOUND404README não encontrado
LIVEDOC_TASK_LIST_FAILED502Falha ao listar as tarefas
LIVEDOC_TASK_CREATE_FAILED502Falha ao criar a tarefa
LIVEDOC_TASK_UPDATE_FAILED502Falha ao atualizar a tarefa
LIVEDOC_TASK_DELETE_FAILED502Falha ao excluir a tarefa
LIVEDOC_TASK_NOT_FOUND404Tarefa não encontrada
LIVEDOC_TASK_RECORD_LIST_FAILED502Falha ao listar os registros da tarefa
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Falha ao criar o comentário da tarefa