Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Cipta pangkalan pengetahuan, urus sumber dan jalankan pengambilan semantik serta penghalaan.

POST/v2/livedocs

Pengesahan

Bearer API key

Jenis kandungan

application/json or multipart/form-data

Nota had kadar

Had khusus endpoint mungkin terpakai.

LiveDoc API menyediakan operasi CRUD penuh untuk LiveDoc dan sumbernya, termasuk penciptaan dokumen, muat naik fail, import URL, dan pengambilan semantik.

Pengesahan

Semua permintaan memerlukan Kunci API dalam pengepala Authorization:

Authorization: Bearer YOUR_API_KEY

Guna dengan Ejen AI

Pasang pakej lengkap felo-ai untuk memberikan Ejen sokongan LiveDoc dan semua Felo Skill lain yang tersedia. Pemasang menemui secara dinamik setiap direktori pakej yang mengandungi SKILL.md, termasuk penambahan pakej pada masa hadapan. Pasang semua Skill yang ditemui dalam direktori asli Ejen: ~/.codex/skills Codex, ~/.claude/skills Claude Code, ~/.agents/skills OpenClaw, atau ~/.hermes/skills Hermes Agent. Panduan persediaan Ejen AI manual merangkumi langkah kunci API dan pengesahan yang berbeza bagi setiap platform.


1. Cipta LiveDoc

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
namestringYaNama LiveDoc
descriptionstringTidakPenerangan LiveDoc
iconstringTidakIkon LiveDoc

Contoh

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

Respons Berjaya (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"
  }
}

Medan Respons

MedanJenisPenerangan
short_idstringID LiveDoc
namestringNama LiveDoc
descriptionstringPenerangan LiveDoc
iconstringIkon LiveDoc
created_atstringCap masa penciptaan (ISO 8601)
modified_atstringCap masa pengubahsuaian terakhir (ISO 8601)
is_sharedbooleanSama ada LiveDoc ini dikongsi dengan pengguna semasa (bukan dimiliki oleh mereka)

2. Senaraikan LiveDoc

Endpoint

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

Parameter Pertanyaan

ParameterJenisWajibPenerangan
keywordstringTidakTapis mengikut kata kunci
pageintegerTidakNombor halaman (berasaskan 1)
sizeintegerTidakSaiz halaman

Contoh

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

Respons Berjaya (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..."
        }
      }
    ]
  }
}

Medan Respons

Setiap item dalam items mengandungi medan yang sama seperti respons Cipta LiveDoc, tambahan pula:

MedanJenisPenerangan
readmeobject | nullMaklumat README. null jika tiada README.
readme.summarystring | nullPenerangan projek satu baris
readme.contentstring | nullKandungan README (Markdown)

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
namestringTidakNama LiveDoc baharu
descriptionstringTidakPenerangan LiveDoc baharu

Contoh

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

Respons Berjaya (200)

Mengembalikan objek LiveDoc yang dikemas kini (struktur sama seperti Cipta).


4. Padam LiveDoc

Endpoint

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

Contoh

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

Respons Berjaya (200)

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

5. Senaraikan Sumber

Endpoint

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

Parameter Pertanyaan

ParameterJenisWajibPenerangan
resource_typesstring[]TidakTapis mengikut jenis sumber
pageintegerTidakNombor halaman (berasaskan 1)
sizeintegerTidakSaiz halaman

Contoh

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

Respons Berjaya (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"
      }
    ]
  }
}

Medan Respons Sumber

MedanJenisPenerangan
idstringID sumber
titlestringTajuk sumber
linkstringPautan/URL sumber
snippetstringRingkasan sumber
thumbnailstringURL imej kecil
resource_typestringJenis sumber (contohnya web, ai_doc, file)
resource_keystringKunci kaitan sumber
statusstringStatus sumber
sourcestringPunca sumber
created_atstringCap masa penciptaan (ISO 8601)
modified_atstringCap masa pengubahsuaian terakhir (ISO 8601)

6. Dapatkan Sumber Tunggal

Endpoint

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

Contoh

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

Respons Berjaya (200)

Mengembalikan objek sumber tunggal (struktur sama seperti item dalam Senaraikan Sumber).


7. Kemas Kini Sumber

Kemas kini title, snippet, atau thumbnail sumber. Hanya medan yang diberikan dikemas kini; medan yang ditinggalkan mengekalkan nilai semasa.

Endpoint

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

Isi Badan Permintaan

Semua medan adalah pilihan.

ParameterJenisWajibPenerangan
titlestringTidakTajuk sumber baharu (maksimum 500 aksara)
snippetstringTidakRingkasan sumber baharu (maksimum 2000 aksara)
thumbnailstringTidakURL imej kecil baharu (maksimum 2000 aksara)

Contoh

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

Respons Berjaya (200)

Mengembalikan objek sumber yang dikemas kini (struktur sama seperti item dalam Senaraikan Sumber).


8. Kemas Kini Kandungan Sumber

Kemas kini kandungan Markdown bagi sumber ai_doc. Hanya disokong untuk sumber dengan resource_type == ai_doc. Medan snippet dikemas kini secara automatik daripada 2000 bait pertama kandungan baharu.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
contentstringYaKandungan Markdown baharu untuk sumber

Contoh

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

Respons Berjaya (200)

Mengembalikan objek sumber yang dikemas kini (struktur sama seperti item dalam Senaraikan Sumber).


9. Cipta Sumber Dokumen

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
titlestringTidakTajuk dokumen (lalai kepada "New Document")
contentstringYaKandungan dokumen

Contoh

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

Respons Berjaya (200)

Mengembalikan objek sumber yang dicipta.


10. Muat Naik Fail sebagai Dokumen

Muat naik fail dan tukarkannya kepada sumber dokumen (jenis ai_doc).

Endpoint

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

Content-Type

multipart/form-data

Bahagian Permintaan

ParameterJenisWajibPenerangan
filefileYaFail untuk dimuat naik
titlestringTidakTajuk dokumen

Contoh

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'

Respons Berjaya (200)

Mengembalikan objek sumber yang dicipta.


11. Muat Naik Sumber Fail

Muat naik fail dan kekalkan format asalnya.

Endpoint

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

Content-Type

multipart/form-data

Bahagian Permintaan

ParameterJenisWajibPenerangan
filefileYaFail untuk dimuat naik

Contoh

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

Respons Berjaya (200)

Mengembalikan objek sumber yang dicipta.


12. Tambah Sumber URL

Tambahkan satu atau lebih URL sebagai sumber kepada LiveDoc.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
urlsarrayYaSenarai item URL untuk ditambah (1-10). Setiap item boleh berupa rentetan biasa atau objek dengan url dan title pilihan.

Format Item URL

Setiap entri dalam urls boleh berupa sama ada:

  • Rentetan biasa: "https://example.com/article"
  • Objek: {"url": "https://example.com/article", "title": "Custom Title"}
MedanJenisWajibPenerangan
urlstringYaURL untuk ditambah (5-2000 aksara)
titlestringTidakTajuk tersuai untuk sumber (maksimum 1000 aksara). Jika ditinggalkan, tajuk dijana secara automatik daripada halaman.

Contoh

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

Respons Berjaya (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"
    }
  ]
}

Medan Hasil URL

MedanJenisPenerangan
urlstringURL yang diproses
statusstringStatus hasil: success, failed, atau existed
fail_reasonstringSebab kegagalan (null jika berjaya)
resource_idstringID sumber yang dicipta

13. Padam Sumber

Endpoint

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

Contoh

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

Respons Berjaya (200)

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

14. Dapatkan Semula (Carian Semantik)

Lakukan pengambilan semantik terhadap sumber dalam LiveDoc.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
querystringYaKandungan pertanyaan untuk carian semantik
resource_idsstring[]TidakID sumber tertentu untuk dicari (1-50). Jika ditinggalkan, sumber berkaitan dihalakan secara automatik mengikut pertanyaan

Contoh

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

Respons Berjaya (200)

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

Medan Hasil Dapatkan Semula

MedanJenisPenerangan
idstringID sumber
titlestringTajuk sumber
contentstringKandungan yang sepadan
scorenumberSkor kaitan
metadataobjectMetadata tambahan

15. Halakan Sumber

Halakan sumber berkaitan daripada LiveDoc berdasarkan pertanyaan. Mengembalikan senarai ID sumber yang boleh dihantar kepada endpoint dapatkan semula.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
querystringYaKandungan pertanyaan untuk penghalaan
max_resourcesintegerTidakBilangan maksimum ID sumber untuk dikembalikan

Contoh

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

Respons Berjaya (200)

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

16. Muat Turun Fail Asal Sumber

Dapatkan fail asal sesuatu sumber. Mengembalikan 302 ubah hala ke URL muat turun pratandatangan.

Hanya disokong untuk sumber yang mempunyai fail asal berkaitan (contohnya dokumen yang dimuat naik).

Endpoint

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

Parameter Pertanyaan

ParameterJenisWajibPenerangan
expires_inintegerTidakTamat tempoh URL dalam saat (lalai: 3600)

Contoh

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

Respons

Mengembalikan 302 Found dengan pengepala Location yang menunjuk ke URL muat turun S3 pratandatangan. Klien HTTP dengan sokongan ubah hala (contohnya curl -L) akan mengikuti ubah hala dan memuat turun fail secara terus.


17. Dapatkan Kandungan Sumber

Ambil kandungan teks yang diekstrak bagi sesuatu sumber. Disokong untuk kebanyakan jenis sumber (dokumen, web, video, ai_doc, ai_ppt, teks, suara, peta minda, dsb.). Mengembalikan 400 untuk jenis tidak disokong seperti image.

Endpoint

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

Contoh

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

Respons Berjaya (200)

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

Medan Respons

MedanJenisPenerangan
titlestringTajuk sumber
typestringJenis sumber
contentstringKandungan teks yang diekstrak

18. Dapatkan Semula Halaman PPT

Lakukan pengambilan kandungan mendalam pada halaman tertentu bagi sumber PPT. Mengikis halaman slaid dan mengembalikan ketulan kandungan berkedudukan. Format respons adalah sama dengan endpoint Dapatkan Semula.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
resource_idstringYaID sumber PPT
page_numberintegerYaNombor halaman untuk diambil semula (bermula dari 1)
querystringYaKandungan pertanyaan yang menerangkan apa yang dicari
max_chunkintegerTidakBilangan maksimum ketulan untuk dikembalikan (lalai: 3)

Contoh

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

Respons Berjaya (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
      }
    }
  ]
}

Medan Respons

Sama seperti Medan Hasil Dapatkan Semula.


Kod Ralat

KodStatus HTTPPenerangan
UNAUTHORIZED401Kunci API tidak sah atau telah dibatalkan
LIVEDOC_CREATE_FAILED502Gagal mencipta LiveDoc
LIVEDOC_UPDATE_FAILED502Gagal mengemas kini LiveDoc
LIVEDOC_DELETE_FAILED502Gagal memadam LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc tidak ditemui
LIVEDOC_LIST_FAILED502Gagal menyenaraikan LiveDoc
LIVEDOC_RESOURCE_CREATE_FAILED502Gagal mencipta sumber
LIVEDOC_RESOURCE_UPLOAD_FAILED502Gagal memuat naik sumber
LIVEDOC_RESOURCE_DELETE_FAILED502Gagal memadam sumber
LIVEDOC_RESOURCE_NOT_FOUND404Sumber tidak ditemui
LIVEDOC_RESOURCE_LIST_FAILED502Gagal menyenaraikan sumber
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Gagal mendapatkan semula sumber
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Gagal menambah sumber URL

19. Dapatkan README

Dapatkan kandungan README sesuatu LiveDoc. Mengembalikan rentetan kosong jika tiada README ditetapkan.

Endpoint

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

Contoh

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

Respons Berjaya (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."
  }
}

Medan Respons

MedanJenisPenerangan
summarystring | nullPenerangan projek satu baris. Maksimum 2000 aksara.
contentstringKandungan README (Markdown). Rentetan kosong jika tidak ditetapkan.

20. Cipta atau Kemas Kini README

Cipta atau kemas kini README sesuatu LiveDoc (semantik upsert).

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
summarystringTidakPenerangan projek satu baris (maksimum 2000 aksara)
contentstringTidakKandungan README (Markdown)

Nota: Sekurang-kurangnya satu daripada summary atau content mesti diberikan.

Contoh

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

Respons Berjaya (200)

Mengembalikan objek README yang dikemas kini (struktur sama seperti Dapatkan README).


21. Lampirkan pada README

Lampirkan kandungan pada hujung README sedia ada. Jika tiada README wujud, cipta yang baharu dengan kandungan yang diberikan.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
contentstringYaKandungan untuk dilampirkan (Markdown)

Contoh

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

Respons Berjaya (200)

Mengembalikan objek README lengkap selepas dilampirkan (struktur sama seperti Dapatkan README).


22. Padam README

Padam README sesuatu LiveDoc.

Endpoint

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

Contoh

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

Respons Berjaya (200)

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

23. Senaraikan Tugasan

Dapatkan senarai tugasan berhalaman dalam LiveDoc. Hasil disusun mengikut sort menaik, status menaik, created_at menurun.

Endpoint

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

Parameter Pertanyaan

ParameterJenisWajibPenerangan
statusintegerTidakTapis mengikut status: 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]TidakTapis mengikut label (tugasan mesti mengandungi semua label yang ditentukan)
pageintegerTidakNombor halaman (berasaskan 1)
sizeintegerTidakSaiz halaman

Contoh

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

Respons Berjaya (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"
      }
    ]
  }
}

Medan Respons Tugasan

MedanJenisPenerangan
idstringID tugasan (UUID)
titlestringTajuk tugasan
descriptionstringPenerangan tugasan
statusintegerStatus tugasan: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerSusunan (bukan negatif)
labelsstring[]Senarai label
operated_bystringTandatangan pengendali, contohnya claude-code, openclaw
created_atstringCap masa penciptaan (ISO 8601)
modified_atstringCap masa pengubahsuaian terakhir (ISO 8601)

24. Cipta Tugasan

Cipta tugasan baharu dalam LiveDoc.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
titlestringYaTajuk tugasan
descriptionstringTidakPenerangan tugasan
statusintegerYaStatus tugasan: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerYaSusunan (integer bukan negatif)
labelsstring[]TidakSenarai label (maksimum 10, setiap satu maksimum 50 aksara)
operated_bystringTidakTandatangan pengendali, contohnya claude-code, openclaw (maksimum 100 aksara)

Contoh

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

Respons Berjaya (200)

Mengembalikan objek tugasan yang dicipta (struktur sama seperti item dalam Senaraikan Tugasan).


25. Kemas Kini Tugasan

Kemas kini tugasan secara separa. Hanya medan yang diberikan dikemas kini; medan yang ditinggalkan mengekalkan nilai semasa.

Endpoint

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

Isi Badan Permintaan

Semua medan adalah pilihan.

ParameterJenisWajibPenerangan
titlestringTidakTajuk tugasan baharu
descriptionstringTidakPenerangan tugasan baharu
statusintegerTidakStatus baharu: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerTidakSusunan baharu (bukan negatif)
labelsstring[]TidakSenarai label baharu (maksimum 10, setiap satu maksimum 50 aksara)
operated_bystringTidakTandatangan pengendali, contohnya claude-code, openclaw (maksimum 100 aksara)

Contoh

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

Respons Berjaya (200)

Mengembalikan objek tugasan yang dikemas kini (struktur sama seperti item dalam Senaraikan Tugasan).


26. Padam Tugasan

Padamkan tugasan secara lembut.

Endpoint

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

Contoh

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

Respons Berjaya (200)

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

27. Senaraikan Rekod Tugasan

Dapatkan senarai rekod berhalaman bagi sesuatu tugasan (komen dan sejarah perubahan), disusun mengikut created_at menaik.

Endpoint

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

Parameter Pertanyaan

ParameterJenisWajibPenerangan
record_typestringTidakTapis mengikut jenis rekod: comment, edit, status_change
pageintegerTidakNombor halaman (berasaskan 1)
sizeintegerTidakSaiz halaman

Contoh

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

Respons Berjaya (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"
      }
    ]
  }
}

Medan Respons Rekod Tugasan

MedanJenisPenerangan
idstringID rekod
record_typestringJenis rekod: comment / edit / status_change
contentstringTeks komen (hanya untuk jenis comment)
metaobjectButiran perubahan (untuk jenis edit dan status_change)
task_idstringID tugasan induk
operated_bystringTandatangan pengendali, contohnya claude-code, openclaw
created_atstringCap masa penciptaan (ISO 8601)
modified_atstringCap masa pengubahsuaian terakhir (ISO 8601)

28. Tambah Komen Tugasan

Tambahkan komen pada tugasan.

Endpoint

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

Isi Badan Permintaan

ParameterJenisWajibPenerangan
contentstringYaKandungan komen
operated_bystringTidakTandatangan pengendali, contohnya claude-code, openclaw (maksimum 100 aksara)

Contoh

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

Respons Berjaya (200)

Mengembalikan objek rekod yang dicipta (struktur sama seperti item dalam Senaraikan Rekod Tugasan).


Kod Ralat (Dikemas Kini)

KodStatus HTTPPenerangan
UNAUTHORIZED401Kunci API tidak sah atau telah dibatalkan
LIVEDOC_CREATE_FAILED502Gagal mencipta LiveDoc
LIVEDOC_UPDATE_FAILED502Gagal mengemas kini LiveDoc
LIVEDOC_DELETE_FAILED502Gagal memadam LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc tidak ditemui
LIVEDOC_LIST_FAILED502Gagal menyenaraikan LiveDoc
LIVEDOC_RESOURCE_CREATE_FAILED502Gagal mencipta sumber
LIVEDOC_RESOURCE_UPLOAD_FAILED502Gagal memuat naik sumber
LIVEDOC_RESOURCE_DELETE_FAILED502Gagal memadam sumber
LIVEDOC_RESOURCE_NOT_FOUND404Sumber tidak ditemui
LIVEDOC_RESOURCE_LIST_FAILED502Gagal menyenaraikan sumber
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Gagal mendapatkan semula sumber
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Gagal menambah sumber URL
LIVEDOC_README_GET_FAILED502Gagal mendapatkan README
LIVEDOC_README_UPDATE_FAILED502Gagal mencipta atau mengemas kini README
LIVEDOC_README_DELETE_FAILED502Gagal memadam README
LIVEDOC_README_NOT_FOUND404README tidak ditemui
LIVEDOC_TASK_LIST_FAILED502Gagal menyenaraikan tugasan
LIVEDOC_TASK_CREATE_FAILED502Gagal mencipta tugasan
LIVEDOC_TASK_UPDATE_FAILED502Gagal mengemas kini tugasan
LIVEDOC_TASK_DELETE_FAILED502Gagal memadam tugasan
LIVEDOC_TASK_NOT_FOUND404Tugasan tidak ditemui
LIVEDOC_TASK_RECORD_LIST_FAILED502Gagal menyenaraikan rekod tugasan
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Gagal mencipta komen tugasan