Felo API PlatformFelo API Platform

Felo APIs

LiveDoc API

Twórz bazy wiedzy, zarządzaj zasobami i uruchamiaj wyszukiwanie semantyczne oraz routing.

POST/v2/livedocs

Uwierzytelnianie

Bearer API key

Typ zawartości

application/json or multipart/form-data

Uwagi o limitach

Mogą obowiązywać limity dla poszczególnych endpointów.

API LiveDoc zapewnia pełne operacje CRUD dla LiveDoców i ich zasobów, w tym tworzenie dokumentów, przesyłanie plików, import adresów URL i wyszukiwanie semantyczne.

Uwierzytelnianie

Wszystkie żądania wymagają klucza API w nagłówku Authorization:

Authorization: Bearer YOUR_API_KEY

Użycie z agentami AI

Zainstaluj kompletny pakiet felo-ai, aby dać agentowi obsługę LiveDoc i każdy inny dostępny Felo Skill. Instalator dynamicznie wykrywa każdy katalog pakietu zawierający SKILL.md, w tym przyszłe dodatki do pakietu. Zainstaluj wszystkie wykryte Skills w natywnym katalogu agenta: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills lub Hermes Agent ~/.hermes/skills. Podręcznik konfiguracji agenta AI opisuje odrębne kroki konfiguracji klucza API i weryfikacji dla każdej platformy.


1. Tworzenie LiveDoc

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
namestringTakNazwa LiveDoc
descriptionstringNieOpis LiveDoc
iconstringNieIkona LiveDoc

Przykład

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

Odpowiedź sukcesu (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"
  }
}

Pola odpowiedzi

PoleTypOpis
short_idstringIdentyfikator LiveDoc
namestringNazwa LiveDoc
descriptionstringOpis LiveDoc
iconstringIkona LiveDoc
created_atstringZnacznik czasu utworzenia (ISO 8601)
modified_atstringZnacznik czasu ostatniej modyfikacji (ISO 8601)
is_sharedbooleanCzy ten LiveDoc jest udostępniony bieżącemu użytkownikowi (nie jest jego właścicielem)

2. Wyświetlanie LiveDoców

Endpoint

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

Parametry zapytania

ParametrTypWymaganyOpis
keywordstringNieFiltruj według słowa kluczowego
pageintegerNieNumer strony (zaczynając od 1)
sizeintegerNieRozmiar strony

Przykład

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

Odpowiedź sukcesu (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..."
        }
      }
    ]
  }
}

Pola odpowiedzi

Każdy element w items zawiera te same pola co odpowiedź Create LiveDoc, plus:

PoleTypOpis
readmeobject | nullInformacje README. null, jeśli README nie istnieje.
readme.summarystring | nullJednowierszowy opis projektu
readme.contentstring | nullTreść README (Markdown)

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
namestringNieNowa nazwa LiveDoc
descriptionstringNieNowy opis LiveDoc

Przykład

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

Odpowiedź sukcesu (200)

Zwraca zaktualizowany obiekt LiveDoc (ta sama struktura co przy tworzeniu).


4. Usuwanie LiveDoc

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

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

5. Wyświetlanie zasobów

Endpoint

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

Parametry zapytania

ParametrTypWymaganyOpis
resource_typesstring[]NieFiltruj według typów zasobów
pageintegerNieNumer strony (zaczynając od 1)
sizeintegerNieRozmiar strony

Przykład

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

Odpowiedź sukcesu (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"
      }
    ]
  }
}

Pola odpowiedzi zasobu

PoleTypOpis
idstringIdentyfikator zasobu
titlestringTytuł zasobu
linkstringLink/adres URL zasobu
snippetstringPodsumowanie zasobu
thumbnailstringAdres URL miniatury
resource_typestringTyp zasobu (np. web, ai_doc, file)
resource_keystringKlucz powiązania zasobu
statusstringStan zasobu
sourcestringŹródło zasobu
created_atstringZnacznik czasu utworzenia (ISO 8601)
modified_atstringZnacznik czasu ostatniej modyfikacji (ISO 8601)

6. Pobieranie pojedynczego zasobu

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

Zwraca pojedynczy obiekt zasobu (ta sama struktura co elementy w sekcji Wyświetlanie zasobów).


7. Aktualizowanie zasobu

Zaktualizuj title, snippet lub thumbnail zasobu. Aktualizowane są tylko podane pola; pominięte pola zachowują bieżące wartości.

Endpoint

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

Treść żądania

Wszystkie pola są opcjonalne.

ParametrTypWymaganyOpis
titlestringNieNowy tytuł zasobu (maks. 500 znaków)
snippetstringNieNowe podsumowanie zasobu (maks. 2000 znaków)
thumbnailstringNieNowy adres URL miniatury (maks. 2000 znaków)

Przykład

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

Odpowiedź sukcesu (200)

Zwraca zaktualizowany obiekt zasobu (ta sama struktura co elementy w sekcji Wyświetlanie zasobów).


8. Aktualizowanie treści zasobu

Zaktualizuj treść Markdown zasobu ai_doc. Obsługiwane tylko dla zasobów z resource_type == ai_doc. Pole snippet jest automatycznie aktualizowane na podstawie pierwszych 2000 bajtów nowej treści.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
contentstringTakNowa treść Markdown zasobu

Przykład

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

Odpowiedź sukcesu (200)

Zwraca zaktualizowany obiekt zasobu (ta sama struktura co elementy w sekcji Wyświetlanie zasobów).


9. Tworzenie zasobu dokumentu

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
titlestringNieTytuł dokumentu (domyślnie „New Document”)
contentstringTakTreść dokumentu

Przykład

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

Odpowiedź sukcesu (200)

Zwraca utworzony obiekt zasobu.


10. Przesyłanie pliku jako dokumentu

Prześlij plik i przekonwertuj go na zasób dokumentu (typ ai_doc).

Endpoint

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

Content-Type

multipart/form-data

Części żądania

ParametrTypWymaganyOpis
filefileTakPlik do przesłania
titlestringNieTytuł dokumentu

Przykład

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'

Odpowiedź sukcesu (200)

Zwraca utworzony obiekt zasobu.


11. Przesyłanie pliku jako zasobu

Prześlij plik i zachowaj jego oryginalny format.

Endpoint

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

Content-Type

multipart/form-data

Części żądania

ParametrTypWymaganyOpis
filefileTakPlik do przesłania

Przykład

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

Odpowiedź sukcesu (200)

Zwraca utworzony obiekt zasobu.


12. Dodawanie zasobów URL

Dodaj jeden lub więcej adresów URL jako zasoby do LiveDoc.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
urlsarrayTakLista elementów URL do dodania (1–10). Każdy element może być zwykłym ciągiem lub obiektem z url i opcjonalnym title.

Formaty elementów URL

Każdy wpis w urls może być:

  • Zwykłym ciągiem: "https://example.com/article"
  • Obiektem: {"url": "https://example.com/article", "title": "Custom Title"}
PoleTypWymaganyOpis
urlstringTakAdres URL do dodania (5–2000 znaków)
titlestringNieNiestandardowy tytuł zasobu (maks. 1000 znaków). Jeśli go pominiesz, tytuł zostanie wygenerowany automatycznie na podstawie strony.

Przykład

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

Odpowiedź sukcesu (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"
    }
  ]
}

Pola wyniku URL

PoleTypOpis
urlstringPrzetworzony adres URL
statusstringStan wyniku: success, failed lub existed
fail_reasonstringPrzyczyna niepowodzenia (null, jeśli operacja się powiodła)
resource_idstringIdentyfikator utworzonego zasobu

13. Usuwanie zasobu

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

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

14. Pobieranie (wyszukiwanie semantyczne)

Wykonaj wyszukiwanie semantyczne w zasobach LiveDoc.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
querystringTakTreść zapytania do wyszukiwania semantycznego
resource_idsstring[]NieKonkretne identyfikatory zasobów do przeszukania (1–50). Jeśli je pominiesz, odpowiednie zasoby są automatycznie kierowane na podstawie zapytania

Przykład

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

Odpowiedź sukcesu (200)

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

Pola wyniku pobierania

PoleTypOpis
idstringIdentyfikator zasobu
titlestringTytuł zasobu
contentstringDopasowana treść
scorenumberOcena trafności
metadataobjectDodatkowe metadane

15. Kierowanie zasobów

Skieruj odpowiednie zasoby z LiveDoc na podstawie zapytania. Zwraca listę identyfikatorów zasobów, które można przekazać do endpointu pobierania.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
querystringTakTreść zapytania do kierowania
max_resourcesintegerNieMaksymalna liczba identyfikatorów zasobów do zwrócenia

Przykład

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

Odpowiedź sukcesu (200)

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

16. Pobieranie pliku źródłowego zasobu

Pobierz plik źródłowy zasobu. Zwraca przekierowanie 302 do wstępnie podpisanego adresu URL pobierania.

Obsługiwane tylko dla zasobów, które mają powiązany plik źródłowy (np. przesłane dokumenty).

Endpoint

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

Parametry zapytania

ParametrTypWymaganyOpis
expires_inintegerNieCzas ważności adresu URL w sekundach (domyślnie: 3600)

Przykład

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

Odpowiedź

Zwraca 302 Found z nagłówkiem Location wskazującym wstępnie podpisany adres URL pobierania z S3. Klienci HTTP obsługujący przekierowania (np. curl -L) podążą za przekierowaniem i pobiorą plik bezpośrednio.


17. Pobieranie treści zasobu

Pobierz wyodrębnioną treść tekstową zasobu. Obsługiwane dla większości typów zasobów (document, web, video, ai_doc, ai_ppt, text, voice, mindmap itd.). Zwraca 400 dla nieobsługiwanych typów, takich jak image.

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

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

Pola odpowiedzi

PoleTypOpis
titlestringTytuł zasobu
typestringTyp zasobu
contentstringWyodrębniona treść tekstowa

18. Pobieranie zawartości strony PPT

Wykonaj pogłębione wyszukiwanie treści na konkretnej stronie zasobu PPT. Zbiera zawartość strony slajdu i zwraca uszeregowane fragmenty treści. Format odpowiedzi jest identyczny jak w endpointcie Pobieranie.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
resource_idstringTakIdentyfikator zasobu PPT
page_numberintegerTakNumer strony do pobrania (zaczynając od 1)
querystringTakTreść zapytania opisująca, czego szukać
max_chunkintegerNieMaksymalna liczba fragmentów do zwrócenia (domyślnie: 3)

Przykład

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

Odpowiedź sukcesu (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
      }
    }
  ]
}

Pola odpowiedzi

Takie same jak Pola wyniku pobierania.


Kody błędów

KodStatus HTTPOpis
UNAUTHORIZED401Klucz API jest nieprawidłowy lub unieważniony
LIVEDOC_CREATE_FAILED502Nie udało się utworzyć LiveDoc
LIVEDOC_UPDATE_FAILED502Nie udało się zaktualizować LiveDoc
LIVEDOC_DELETE_FAILED502Nie udało się usunąć LiveDoc
LIVEDOC_NOT_FOUND404Nie znaleziono LiveDoc
LIVEDOC_LIST_FAILED502Nie udało się wyświetlić listy LiveDoców
LIVEDOC_RESOURCE_CREATE_FAILED502Nie udało się utworzyć zasobu
LIVEDOC_RESOURCE_UPLOAD_FAILED502Nie udało się przesłać zasobu
LIVEDOC_RESOURCE_DELETE_FAILED502Nie udało się usunąć zasobu
LIVEDOC_RESOURCE_NOT_FOUND404Nie znaleziono zasobu
LIVEDOC_RESOURCE_LIST_FAILED502Nie udało się wyświetlić listy zasobów
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Nie udało się pobrać zasobów
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Nie udało się dodać zasobów URL

19. Pobieranie README

Pobierz treść README LiveDoc. Zwraca pusty ciąg, jeśli README nie zostało ustawione.

Endpoint

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

Przykład

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

Odpowiedź sukcesu (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."
  }
}

Pola odpowiedzi

PoleTypOpis
summarystring | nullJednowierszowy opis projektu. Maks. 2000 znaków.
contentstringTreść README (Markdown). Pusty ciąg, jeśli nie ustawiono.

20. Tworzenie lub aktualizowanie README

Utwórz lub zaktualizuj README LiveDoc (semantyka upsert).

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
summarystringNieJednowierszowy opis projektu (maks. 2000 znaków)
contentstringNieTreść README (Markdown)

Uwaga: Należy podać co najmniej jedno z pól summary lub content.

Przykład

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

Odpowiedź sukcesu (200)

Zwraca zaktualizowany obiekt README (ta sama struktura co w sekcji Pobieranie README).


21. Dołączanie do README

Dołącz treść na końcu istniejącego README. Jeśli README nie istnieje, tworzy nowe z podaną treścią.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
contentstringTakTreść do dołączenia (Markdown)

Przykład

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

Odpowiedź sukcesu (200)

Zwraca kompletny obiekt README po dołączeniu (ta sama struktura co w sekcji Pobieranie README).


22. Usuwanie README

Usuń README LiveDoc.

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

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

23. Wyświetlanie zadań

Pobierz paginowaną listę zadań w LiveDoc. Wyniki są sortowane według sort rosnąco, status rosnąco, created_at malejąco.

Endpoint

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

Parametry zapytania

ParametrTypWymaganyOpis
statusintegerNieFiltruj według stanu: 0=TODO, 1=IN_PROGRESS, 2=DONE
labelsstring[]NieFiltruj według etykiet (zadania muszą zawierać wszystkie podane etykiety)
pageintegerNieNumer strony (zaczynając od 1)
sizeintegerNieRozmiar strony

Przykład

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

Odpowiedź sukcesu (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"
      }
    ]
  }
}

Pola odpowiedzi zadania

PoleTypOpis
idstringIdentyfikator zadania (UUID)
titlestringTytuł zadania
descriptionstringOpis zadania
statusintegerStan zadania: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerKolejność sortowania (nieujemna)
labelsstring[]Lista etykiet
operated_bystringPodpis operatora, np. claude-code, openclaw
created_atstringZnacznik czasu utworzenia (ISO 8601)
modified_atstringZnacznik czasu ostatniej modyfikacji (ISO 8601)

24. Tworzenie zadania

Utwórz nowe zadanie w LiveDoc.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
titlestringTakTytuł zadania
descriptionstringNieOpis zadania
statusintegerTakStan zadania: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerTakKolejność sortowania (nieujemna liczba całkowita)
labelsstring[]NieLista etykiet (maks. 10, każda maks. 50 znaków)
operated_bystringNiePodpis operatora, np. claude-code, openclaw (maks. 100 znaków)

Przykład

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

Odpowiedź sukcesu (200)

Zwraca utworzony obiekt zadania (ta sama struktura co elementy w sekcji Wyświetlanie zadań).


25. Aktualizowanie zadania

Częściowo zaktualizuj zadanie. Aktualizowane są tylko podane pola; pominięte pola zachowują bieżące wartości.

Endpoint

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

Treść żądania

Wszystkie pola są opcjonalne.

ParametrTypWymaganyOpis
titlestringNieNowy tytuł zadania
descriptionstringNieNowy opis zadania
statusintegerNieNowy stan: 0=TODO, 1=IN_PROGRESS, 2=DONE
sortintegerNieNowa kolejność sortowania (nieujemna)
labelsstring[]NieNowa lista etykiet (maks. 10, każda maks. 50 znaków)
operated_bystringNiePodpis operatora, np. claude-code, openclaw (maks. 100 znaków)

Przykład

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

Odpowiedź sukcesu (200)

Zwraca zaktualizowany obiekt zadania (ta sama struktura co elementy w sekcji Wyświetlanie zadań).


26. Usuwanie zadania

Miękko usuń zadanie.

Endpoint

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

Przykład

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

Odpowiedź sukcesu (200)

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

27. Wyświetlanie rekordów zadania

Pobierz paginowaną listę rekordów zadania (komentarze i historia zmian), sortowaną według created_at rosnąco.

Endpoint

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

Parametry zapytania

ParametrTypWymaganyOpis
record_typestringNieFiltruj według typu rekordu: comment, edit, status_change
pageintegerNieNumer strony (zaczynając od 1)
sizeintegerNieRozmiar strony

Przykład

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

Odpowiedź sukcesu (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"
      }
    ]
  }
}

Pola odpowiedzi rekordu zadania

PoleTypOpis
idstringIdentyfikator rekordu
record_typestringTyp rekordu: comment / edit / status_change
contentstringTreść komentarza (tylko dla typu comment)
metaobjectSzczegóły zmiany (dla typów edit i status_change)
task_idstringIdentyfikator zadania nadrzędnego
operated_bystringPodpis operatora, np. claude-code, openclaw
created_atstringZnacznik czasu utworzenia (ISO 8601)
modified_atstringZnacznik czasu ostatniej modyfikacji (ISO 8601)

28. Dodawanie komentarza do zadania

Dodaj komentarz do zadania.

Endpoint

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

Treść żądania

ParametrTypWymaganyOpis
contentstringTakTreść komentarza
operated_bystringNiePodpis operatora, np. claude-code, openclaw (maks. 100 znaków)

Przykład

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

Odpowiedź sukcesu (200)

Zwraca utworzony obiekt rekordu (ta sama struktura co elementy w sekcji Wyświetlanie rekordów zadania).


Kody błędów (zaktualizowane)

KodStatus HTTPOpis
UNAUTHORIZED401Klucz API jest nieprawidłowy lub unieważniony
LIVEDOC_CREATE_FAILED502Nie udało się utworzyć LiveDoc
LIVEDOC_UPDATE_FAILED502Nie udało się zaktualizować LiveDoc
LIVEDOC_DELETE_FAILED502Nie udało się usunąć LiveDoc
LIVEDOC_NOT_FOUND404Nie znaleziono LiveDoc
LIVEDOC_LIST_FAILED502Nie udało się wyświetlić listy LiveDoców
LIVEDOC_RESOURCE_CREATE_FAILED502Nie udało się utworzyć zasobu
LIVEDOC_RESOURCE_UPLOAD_FAILED502Nie udało się przesłać zasobu
LIVEDOC_RESOURCE_DELETE_FAILED502Nie udało się usunąć zasobu
LIVEDOC_RESOURCE_NOT_FOUND404Nie znaleziono zasobu
LIVEDOC_RESOURCE_LIST_FAILED502Nie udało się wyświetlić listy zasobów
LIVEDOC_RESOURCE_RETRIEVE_FAILED502Nie udało się pobrać zasobów
LIVEDOC_RESOURCE_ADD_URLS_FAILED502Nie udało się dodać zasobów URL
LIVEDOC_README_GET_FAILED502Nie udało się pobrać README
LIVEDOC_README_UPDATE_FAILED502Nie udało się utworzyć lub zaktualizować README
LIVEDOC_README_DELETE_FAILED502Nie udało się usunąć README
LIVEDOC_README_NOT_FOUND404Nie znaleziono README
LIVEDOC_TASK_LIST_FAILED502Nie udało się wyświetlić listy zadań
LIVEDOC_TASK_CREATE_FAILED502Nie udało się utworzyć zadania
LIVEDOC_TASK_UPDATE_FAILED502Nie udało się zaktualizować zadania
LIVEDOC_TASK_DELETE_FAILED502Nie udało się usunąć zadania
LIVEDOC_TASK_NOT_FOUND404Nie znaleziono zadania
LIVEDOC_TASK_RECORD_LIST_FAILED502Nie udało się wyświetlić listy rekordów zadania
LIVEDOC_TASK_COMMENT_CREATE_FAILED502Nie udało się utworzyć komentarza do zadania