Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Buat basis pengetahuan, kelola resource, dan jalankan pengambilan semantik serta perutean.

POST/v2/livedocs

Autentikasi

Bearer API key

Tipe konten

application/json or multipart/form-data

Catatan batas laju

Batas khusus endpoint dapat berlaku.

LiveDoc API menyediakan operasi CRUD lengkap untuk LiveDoc dan resource-nya, termasuk pembuatan dokumen, unggah file, impor URL, dan retrieval semantik.

Autentikasi

Semua permintaan memerlukan Kunci API di header Authorization:

Authorization: Bearer YOUR_API_KEY

Penggunaan dengan Agen AI

Pasang paket felo-ai lengkap untuk memberi Agen dukungan LiveDoc dan semua Felo Skill lain yang tersedia. Installer menemukan setiap direktori paket yang berisi SKILL.md secara dinamis, termasuk penambahan paket di masa mendatang. Pasang semua Skill yang ditemukan di direktori bawaan Agen: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills, atau Hermes Agent ~/.hermes/skills. Panduan penyiapan Agen AI manual mencakup langkah kunci API dan verifikasi yang berbeda untuk setiap platform.


1. Membuat LiveDoc

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
namestringYaNama LiveDoc
descriptionstringTidakDeskripsi 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 Berhasil (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"
  }
}

Field Respons

FieldTipeDeskripsi
short_idstringID LiveDoc
namestringNama LiveDoc
descriptionstringDeskripsi LiveDoc
iconstringIkon LiveDoc
created_atstringStempel waktu pembuatan (ISO 8601)
modified_atstringStempel waktu modifikasi terakhir (ISO 8601)
is_sharedbooleanApakah LiveDoc ini dibagikan kepada pengguna saat ini (bukan miliknya)

2. Menampilkan Daftar LiveDoc

Endpoint

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

Parameter Kueri

ParameterTipeWajibDeskripsi
keywordstringTidakFilter berdasarkan kata kunci
pageintegerTidakNomor halaman (berbasis 1)
sizeintegerTidakUkuran halaman

Contoh

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

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

Field Respons

Setiap item dalam items berisi field yang sama dengan respons pembuatan LiveDoc, ditambah:

FieldTipeDeskripsi
readmeobject | nullInformasi README. null jika README tidak ada.
readme.summarystring | nullDeskripsi proyek satu baris
readme.contentstring | nullKonten README (Markdown)

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
namestringTidakNama LiveDoc baru
descriptionstringTidakDeskripsi LiveDoc baru

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 Berhasil (200)

Mengembalikan objek LiveDoc yang diperbarui (struktur sama seperti pada pembuatan).


4. Menghapus 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 Berhasil (200)

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

5. Menampilkan Daftar Resource

Endpoint

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

Parameter Kueri

ParameterTipeWajibDeskripsi
resource_typesstring[]TidakFilter berdasarkan jenis resource
pageintegerTidakNomor halaman (berbasis 1)
sizeintegerTidakUkuran halaman

Contoh

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

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

Field Respons Resource

FieldTipeDeskripsi
idstringID resource
titlestringJudul resource
linkstringTautan/URL resource
snippetstringRingkasan resource
thumbnailstringURL thumbnail
resource_typestringJenis resource (mis. web, ai_doc, file)
resource_keystringKunci asosiasi resource
statusstringStatus resource
sourcestringSumber resource
created_atstringStempel waktu pembuatan (ISO 8601)
modified_atstringStempel waktu modifikasi terakhir (ISO 8601)

6. Mengambil Satu Resource

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 Berhasil (200)

Mengembalikan satu objek resource (struktur sama seperti item pada Menampilkan Daftar Resource).


7. Memperbarui Resource

Perbarui title, snippet, atau thumbnail pada suatu resource. Hanya field yang diberikan yang diperbarui; field yang dihilangkan mempertahankan nilai saat ini.

Endpoint

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

Isi Permintaan

Semua field bersifat opsional.

ParameterTipeWajibDeskripsi
titlestringTidakJudul resource baru (maks 500 karakter)
snippetstringTidakRingkasan resource baru (maks 2000 karakter)
thumbnailstringTidakURL thumbnail baru (maks 2000 karakter)

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 Berhasil (200)

Mengembalikan objek resource yang diperbarui (struktur sama seperti item pada Menampilkan Daftar Resource).


8. Memperbarui Konten Resource

Perbarui konten Markdown pada resource ai_doc. Hanya didukung untuk resource dengan resource_type == ai_doc. Field snippet diperbarui secara otomatis dari 2000 byte pertama konten baru.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
contentstringYaKonten Markdown baru untuk resource

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 Berhasil (200)

Mengembalikan objek resource yang diperbarui (struktur sama seperti item pada Menampilkan Daftar Resource).


9. Membuat Resource Dokumen

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
titlestringTidakJudul dokumen (bawaan: "New Document")
contentstringYaKonten 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 Berhasil (200)

Mengembalikan objek resource yang dibuat.


10. Mengunggah File sebagai Dokumen

Unggah file dan ubah menjadi resource dokumen (jenis ai_doc).

Endpoint

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

Content-Type

multipart/form-data

Bagian Permintaan

ParameterTipeWajibDeskripsi
filefileYaFile yang diunggah
titlestringTidakJudul 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 Berhasil (200)

Mengembalikan objek resource yang dibuat.


11. Mengunggah Resource File

Unggah file dan pertahankan format aslinya.

Endpoint

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

Content-Type

multipart/form-data

Bagian Permintaan

ParameterTipeWajibDeskripsi
filefileYaFile yang diunggah

Contoh

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

Respons Berhasil (200)

Mengembalikan objek resource yang dibuat.


12. Menambahkan Resource URL

Tambahkan satu atau beberapa URL sebagai resource ke LiveDoc.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
urlsarrayYaDaftar item URL yang ditambahkan (1-10). Setiap item dapat berupa string biasa atau objek dengan url dan title opsional.

Format Item URL

Setiap entri dalam urls dapat berupa:

  • String biasa: "https://example.com/article"
  • Objek: {"url": "https://example.com/article", "title": "Custom Title"}
FieldTipeWajibDeskripsi
urlstringYaURL yang ditambahkan (5-2000 karakter)
titlestringTidakJudul khusus untuk resource (maks 1000 karakter). Jika dihilangkan, judul dibuat otomatis dari 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 Berhasil (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"
    }
  ]
}

Field Hasil URL

FieldTipeDeskripsi
urlstringURL yang diproses
statusstringStatus hasil: success, failed, atau existed
fail_reasonstringAlasan kegagalan (null jika berhasil)
resource_idstringID resource yang dibuat

13. Menghapus Resource

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 Berhasil (200)

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

14. Retrieval (Pencarian Semantik)

Lakukan retrieval semantik terhadap resource dalam LiveDoc.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
querystringYaKonten kueri untuk pencarian semantik
resource_idsstring[]TidakID resource tertentu yang akan dicari (1-50). Jika dihilangkan, resource yang relevan dirutekan otomatis berdasarkan kueri

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 Berhasil (200)

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

Field Hasil Retrieval

FieldTipeDeskripsi
idstringID resource
titlestringJudul resource
contentstringKonten yang cocok
scorenumberSkor relevansi
metadataobjectMetadata tambahan

15. Merutekan Resource

Rutekan resource yang relevan dari LiveDoc berdasarkan kueri. Mengembalikan daftar ID resource yang dapat diteruskan ke endpoint retrieval.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
querystringYaKonten kueri untuk perutean
max_resourcesintegerTidakJumlah maksimum ID resource yang 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 Berhasil (200)

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

16. Mengunduh File Sumber Resource

Ambil file sumber suatu resource. Mengembalikan pengalihan 302 ke URL unduhan presigned.

Hanya didukung untuk resource yang memiliki file sumber terkait (mis. dokumen yang diunggah).

Endpoint

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

Parameter Kueri

ParameterTipeWajibDeskripsi
expires_inintegerTidakMasa berlaku URL dalam detik (bawaan: 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 header Location yang menunjuk ke URL unduhan S3 presigned. Klien HTTP yang mendukung pengalihan (mis. curl -L) akan mengikuti pengalihan dan mengunduh file secara langsung.


17. Mengambil Konten Resource

Ambil konten teks yang diekstrak dari suatu resource. Didukung untuk sebagian besar jenis resource (document, web, video, ai_doc, ai_ppt, text, voice, mindmap, dll.). Mengembalikan 400 untuk jenis yang tidak didukung 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 Berhasil (200)

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

Field Respons

FieldTipeDeskripsi
titlestringJudul resource
typestringJenis resource
contentstringKonten teks yang diekstrak

18. Retrieval Halaman PPT

Lakukan retrieval konten mendalam pada halaman tertentu dari resource PPT. Mengambil konten halaman slide dan mengembalikan chunk konten berperingkat. Format respons identik dengan endpoint Retrieval.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
resource_idstringYaID resource PPT
page_numberintegerYaNomor halaman yang diambil (mulai dari 1)
querystringYaKonten kueri yang menjelaskan apa yang dicari
max_chunkintegerTidakJumlah maksimum chunk yang dikembalikan (bawaan: 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 Berhasil (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
      }
    }
  ]
}

Field Respons

Sama dengan Field Hasil Retrieval.


Kode Error

KodeStatus HTTPDeskripsi
UNAUTHORIZED401Kunci API tidak valid atau dicabut
LIVEDOC_CREATE_FAILED502Gagal membuat LiveDoc
LIVEDOC_UPDATE_FAILED502Gagal memperbarui LiveDoc
LIVEDOC_DELETE_FAILED502Gagal menghapus LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc tidak ditemukan
LIVEDOC_LIST_FAILED502Gagal menampilkan daftar LiveDoc
LIVEDOC_RESOURCE_CREATE_FAILED502Gagal membuat resource
LIVEDOC_RESOURCE_UPLOAD_FAILED502Gagal mengunggah resource
LIVEDOC_RESOURCE_DELETE_FAILED502Gagal menghapus resource
LIVEDOC_RESOURCE_NOT_FOUND404Resource tidak ditemukan
LIVEDOC_RESOURCE_LIST_FAILED502Gagal menampilkan daftar resource
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Gagal melakukan retrieval resource
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Gagal menambahkan resource URL

19. Mengambil README

Ambil konten README dari LiveDoc. Mengembalikan string kosong jika README belum 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 Berhasil (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."
  }
}

Field Respons

FieldTipeDeskripsi
summarystring | nullDeskripsi proyek satu baris. Maks 2000 karakter.
contentstringKonten README (Markdown). String kosong jika belum ditetapkan.

20. Membuat atau Memperbarui README

Buat atau perbarui README suatu LiveDoc (semantik upsert).

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
summarystringTidakDeskripsi proyek satu baris (maks 2000 karakter)
contentstringTidakKonten README (Markdown)

Catatan: Setidaknya salah satu dari summary atau content harus 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 Berhasil (200)

Mengembalikan objek README yang diperbarui (struktur sama seperti Mengambil README).


21. Menambahkan ke README

Tambahkan konten ke akhir README yang sudah ada. Jika README belum ada, buat README baru dengan konten yang diberikan.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
contentstringYaKonten yang ditambahkan (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 Berhasil (200)

Mengembalikan objek README lengkap setelah penambahan (struktur sama seperti Mengambil README).


22. Menghapus README

Hapus README suatu 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 Berhasil (200)

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

23. Menampilkan Daftar Tugas

Dapatkan daftar tugas dengan paginasi dalam LiveDoc. Hasil diurutkan berdasarkan sort menaik, status menaik, created_at menurun.

Endpoint

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

Parameter Kueri

ParameterTipeWajibDeskripsi
statusintegerTidakFilter berdasarkan status: 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]TidakFilter berdasarkan label (tugas harus memuat semua label yang ditentukan)
pageintegerTidakNomor halaman (berbasis 1)
sizeintegerTidakUkuran halaman

Contoh

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

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

Field Respons Tugas

FieldTipeDeskripsi
idstringID tugas (UUID)
titlestringJudul tugas
descriptionstringDeskripsi tugas
statusintegerStatus tugas: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerUrutan pengurutan (non-negatif)
labelsstring[]Daftar label
operated_bystringTanda tangan operator, mis. claude-code, openclaw
created_atstringStempel waktu pembuatan (ISO 8601)
modified_atstringStempel waktu modifikasi terakhir (ISO 8601)

24. Membuat Tugas

Buat tugas baru dalam LiveDoc.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
titlestringYaJudul tugas
descriptionstringTidakDeskripsi tugas
statusintegerYaStatus tugas: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerYaUrutan pengurutan (bilangan bulat non-negatif)
labelsstring[]TidakDaftar label (maks 10, masing-masing maks 50 karakter)
operated_bystringTidakTanda tangan operator, mis. claude-code, openclaw (maks 100 karakter)

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 Berhasil (200)

Mengembalikan objek tugas yang dibuat (struktur sama seperti item pada Menampilkan Daftar Tugas).


25. Memperbarui Tugas

Perbarui sebagian suatu tugas. Hanya field yang diberikan yang diperbarui; field yang dihilangkan mempertahankan nilai saat ini.

Endpoint

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

Isi Permintaan

Semua field bersifat opsional.

ParameterTipeWajibDeskripsi
titlestringTidakJudul tugas baru
descriptionstringTidakDeskripsi tugas baru
statusintegerTidakStatus baru: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerTidakUrutan pengurutan baru (non-negatif)
labelsstring[]TidakDaftar label baru (maks 10, masing-masing maks 50 karakter)
operated_bystringTidakTanda tangan operator, mis. claude-code, openclaw (maks 100 karakter)

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 Berhasil (200)

Mengembalikan objek tugas yang diperbarui (struktur sama seperti item pada Menampilkan Daftar Tugas).


26. Menghapus Tugas

Lakukan hapus lunak pada tugas.

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 Berhasil (200)

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

27. Menampilkan Daftar Catatan Tugas

Dapatkan daftar catatan dengan paginasi untuk suatu tugas (komentar dan riwayat perubahan), diurutkan berdasarkan created_at menaik.

Endpoint

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

Parameter Kueri

ParameterTipeWajibDeskripsi
record_typestringTidakFilter berdasarkan jenis catatan: comment, edit, status_change
pageintegerTidakNomor halaman (berbasis 1)
sizeintegerTidakUkuran halaman

Contoh

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

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

Field Respons Catatan Tugas

FieldTipeDeskripsi
idstringID catatan
record_typestringJenis catatan: comment / edit / status_change
contentstringTeks komentar (hanya untuk jenis comment)
metaobjectDetail perubahan (untuk jenis edit dan status_change)
task_idstringID tugas induk
operated_bystringTanda tangan operator, mis. claude-code, openclaw
created_atstringStempel waktu pembuatan (ISO 8601)
modified_atstringStempel waktu modifikasi terakhir (ISO 8601)

28. Menambahkan Komentar Tugas

Tambahkan komentar ke suatu tugas.

Endpoint

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

Isi Permintaan

ParameterTipeWajibDeskripsi
contentstringYaKonten komentar
operated_bystringTidakTanda tangan operator, mis. claude-code, openclaw (maks 100 karakter)

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 Berhasil (200)

Mengembalikan objek catatan yang dibuat (struktur sama seperti item pada Menampilkan Daftar Catatan Tugas).


Kode Error (Diperbarui)

KodeStatus HTTPDeskripsi
UNAUTHORIZED401Kunci API tidak valid atau dicabut
LIVEDOC_CREATE_FAILED502Gagal membuat LiveDoc
LIVEDOC_UPDATE_FAILED502Gagal memperbarui LiveDoc
LIVEDOC_DELETE_FAILED502Gagal menghapus LiveDoc
LIVEDOC_NOT_FOUND404LiveDoc tidak ditemukan
LIVEDOC_LIST_FAILED502Gagal menampilkan daftar LiveDoc
LIVEDOC_RESOURCE_CREATE_FAILED502Gagal membuat resource
LIVEDOC_RESOURCE_UPLOAD_FAILED502Gagal mengunggah resource
LIVEDOC_RESOURCE_DELETE_FAILED502Gagal menghapus resource
LIVEDOC_RESOURCE_NOT_FOUND404Resource tidak ditemukan
LIVEDOC_RESOURCE_LIST_FAILED502Gagal menampilkan daftar resource
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Gagal melakukan retrieval resource
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Gagal menambahkan resource URL
LIVEDOC_README_GET_FAILED502Gagal mengambil README
LIVEDOC_README_UPDATE_FAILED502Gagal membuat atau memperbarui README
LIVEDOC_README_DELETE_FAILED502Gagal menghapus README
LIVEDOC_README_NOT_FOUND404README tidak ditemukan
LIVEDOC_TASK_LIST_FAILED502Gagal menampilkan daftar tugas
LIVEDOC_TASK_CREATE_FAILED502Gagal membuat tugas
LIVEDOC_TASK_UPDATE_FAILED502Gagal memperbarui tugas
LIVEDOC_TASK_DELETE_FAILED502Gagal menghapus tugas
LIVEDOC_TASK_NOT_FOUND404Tugas tidak ditemukan
LIVEDOC_TASK_RECORD_LIST_FAILED502Gagal menampilkan daftar catatan tugas
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Gagal membuat komentar tugas