Felo API PlatformFelo API Platform

Felo APIs

PPT Task API

Zadávejte úlohy generování PPT, procházejte motivy a dotazujte se na sdílené endpointy úloh.

POST/v2/ppts

Ověřování

Bearer API key

Typ obsahu

application/json

Poznámky k limitům

Mohou platit limity pro jednotlivé endpointy.

PPT Task API poskytuje možnosti asynchronního generování PPT. Můžete vytvořit úlohu a potom dotazovat stav úlohy podle task_id. Můžete také procházet dostupná témata PPT a použít je při vytváření úloh.

Toto je asynchronní API. Společný vzor odeslání, dotazování a načtení najdete v části Asynchronní úlohy.

Ověřování

Všechny požadavky vyžadují API klíč v hlavičce Authorization:

Authorization: Bearer YOUR_API_KEY

Použití s AI agenty

Chcete-li vytvářet snímky z agenta, nainstalujte kompletní balíček felo-ai, nikoli pevnou podmnožinu Skills. Jeho instalátor dynamicky objevuje každý adresář balíčku obsahující SKILL.md, včetně Skillu PPT a budoucích přírůstků. Nainstalujte všechny objevené Skills do nativního adresáře pro svého agenta: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills nebo Hermes Agent ~/.hermes/skills. Konfiguraci API klíče specifickou pro platformu a ověření najdete v příručce k ručnímu nastavení AI agenta.

1. Seznam témat PPT

Dotazujte dostupná témata PPT se stránkováním, vyhledáváním podle klíčových slov a filtrováním podle jazyka a typu.

Endpoint

GET https://openapi.felo.ai/v2/ppt-themes

Parametry dotazu

ParametrTypPovinnéPopis
langstringNeKód jazyka pro lokalizovaný obsah (např. en, zh-Hans). Výchozí: en
typestringNeFiltrovat podle typu tématu (např. default, custom)
keywordstringNeKlíčové slovo pro vyhledávání, odpovídá názvům témat
pageintegerNeČíslo stránky, počínaje 1. Výchozí: 1
sizeintegerNeVelikost stránky, max. 100. Výchozí: 20

Příklad

curl -X GET 'https://openapi.felo.ai/v2/ppt-themes?lang=en&page=1&size=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Úspěšná odpověď (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 8,
    "page": 1,
    "size": 10,
    "items": [
      {
        "id": "43122897-0d3c-4c9e-ae19-20527ad36c04",
        "title": "Inspiration Themes",
        "subtitle": "AI-tailored visual solutions",
        "description": "Style and layout, both crafted by AI from your content in real time"
      }
    ]
  }
}

Pole odpovědi s tématy

PoleTypPopis
totalintegerCelkový počet témat odpovídajících filtru
pageintegerAktuální číslo stránky
sizeintegerVelikost stránky
itemsarraySeznam objektů témat
items[].idstringID tématu, použijte ho jako ai_theme_id při vytváření PPT
items[].titlestringNázev tématu (lokalizovaný)
items[].subtitlestringPodtitul tématu (lokalizovaný)
items[].descriptionstringPopis tématu (lokalizovaný)

2. Vytvoření úlohy PPT

Endpoint

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

Hlavičky požadavku

HlavičkaPovinnéPopis
AuthorizationAnoVáš API klíč ve formátu Bearer YOUR_API_KEY
Content-TypeAnoapplication/json nebo multipart/form-data

Tělo požadavku

ParametrTypPovinnéPopis
querystringAnoPrompt pro generování PPT
livedoc_short_idstringNeKrátké ID existujícího LiveDocu, které se má přidružit k relaci PPT. Pokud je vynecháno, automaticky se vytvoří nový LiveDoc.
resource_idspole řetězcůNeSeznam ID zdrojů LiveDocu, která se mají použít jako kontext pro generování PPT
ppt_configobjectNeMožnosti konfigurace PPT
ppt_config.ai_theme_idstringNeID tématu z endpointu Seznam témat PPT

Příklad

curl -X POST 'https://openapi.felo.ai/v2/ppts' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Felo, 2 pages",
    "ppt_config": {
      "ai_theme_id": "02968979-a69f-42c4-b136-de02c40ab2d7"
    }
  }'

Vytvoření z nahraného souboru

Pomocí multipart/form-data nahrajte jeden soubor a vytvořte úlohu PPT v jednom požadavku. Platforma nejprve nahraje soubor jako zdroj LiveDocu a potom předá jeho ID zdroje úloze PPT.

ČástTypPovinnéPopis
querystringAnoPrompt pro generování PPT
filefileAnoZdrojový soubor použitý jako kontext pro PPT
stream_protocolstringNeProtokol streamování; výchozí je message_center_v1
livedoc_short_idstringNeExistující LiveDoc, do kterého se má soubor uložit. Pokud je vynechán, vytvoří se nový LiveDoc.
ppt_configJSONNeKonfigurace PPT se stejnou strukturou jako tělo požadavku JSON. Tuto část odešlete jako application/json.
curl -X POST 'https://openapi.felo.ai/v2/ppts' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F 'query=Create a 10-page presentation based on this report' \
  -F 'ppt_config={"ai_theme_id":"02968979-a69f-42c4-b136-de02c40ab2d7"};type=application/json' \
  -F '[email protected]'

Odpověď používá stejné schéma jako požadavek JSON. Vrácené livedoc_short_id identifikuje LiveDoc obsahující nahraný zdroj.

Úspěšná odpověď (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
    "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
    "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
  }
}

3. Dotaz na stav úlohy

Endpoint

GET https://openapi.felo.ai/v2/tasks/{task_id}/status

Příklad

curl -X GET 'https://openapi.felo.ai/v2/tasks/019cad6d-e874-55ef-d577-686344b5a7e9/status' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Úspěšná odpověď (200)

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

4. Dotaz na historické informace o úloze

Endpoint

GET https://openapi.felo.ai/v2/tasks/{task_id}/historical

Příklad

curl -X GET 'https://openapi.felo.ai/v2/tasks/019cb17e-9e23-3d40-4447-48a651249460/historical' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Odpověď RUNNING

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "RUNNING",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Odpověď COMPLETED

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "COMPLETED",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_short_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Odpověď COMPLETED (AI_PAGE)

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019d7a4d-6ab5-a96d-0f98-43ca434ab621",
    "task_status": "COMPLETED",
    "ppt_biz_id": "9qiLTmT77fA3aVurrMHvRJ",
    "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ",
    "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ"
  }
}

Odpověď FAILED / PENDING / EXPIRED / CANCELED

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "FAILED",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
    "error_message": "PPT generation failed",
    "live_doc_short_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Pole historické odpovědi

PoleTypPopis
task_idstringID úlohy
task_statusstringAktuální stav úlohy
ppt_biz_idstringObchodní ID PPT (mapované z backendového thread_short_id)
ppt_urlstringURL PPT, formát: https://felo.ai/slides/{ppt_biz_id}
error_messagestringUvedeno u FAILED / PENDING / EXPIRED / CANCELED; prázdný řetězec "", pokud navazující služba neposkytne podrobnosti o chybě
ai_page_htmlstringUvedeno, když úloha běží v režimu AI_PAGE a navazující historická odpověď vrací URL výsledku HTML
live_doc_short_idstringKrátké ID LiveDocu. U COMPLETED pochází z navazujícího live_doc_short_id; u koncových stavů selhání se vrací, pokud je k dispozici
live_doc_urlstringURL LiveDocu odpovídající live_doc_short_id

Export PPTX

Poté, co úloha generování PPT dosáhne stavu COMPLETED, odešlete asynchronní export pomocí ppt_business_id z odpovědi na vytvoření (nebo ppt_biz_id z historické odpovědi):

curl -X POST 'https://openapi.felo.ai/v2/ppts/YOUR_PPT_BUSINESS_ID/export' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'

Dotazujte GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export se stejným API klíčem Bearer každé 2–5 sekundy. Vlastník API klíče musí vlastnit PPT. Oba endpointy vracejí data.status: NOT_STARTED, PROCESSING, COMPLETED nebo FAILED. Pouze COMPLETED obsahuje download_url a expires_at.

Podepsaná URL pro stažení vyprší 30 minut po vydání. Chcete-li získat čerstvou URL, zavolejte znovu endpoint GET; tím se PPTX znovu nevygeneruje. POST používá application/json a přijímá {}. Opakování POST během zpracování exportu nespustí další úlohu; volání po dokončení znovu vygeneruje PPTX a účtuje stávající poplatek za export PPT v kreditech. Nedostatek kreditů vrací HTTP 402. Mohou platit limity rychlosti specifické pro endpoint; při HTTP 429 to zkuste později. Neúspěšný export lze odeslat znovu.

{
  "status": "ok",
  "message": null,
  "data": {
    "status": "COMPLETED",
    "download_url": "https://example.com/presentation.pptx?signature=...",
    "expires_at": "2026-09-29T10:30:00Z"
  }
}

Doporučení pro dotazování

Použijte task_id z odpovědi na vytvoření a dotazujte stav každé 2-5 sekundy, dokud se stav nestane koncovým.

Běžné příklady stavů:

  • RUNNING: úloha se stále zpracovává
  • COMPLETED: úloha byla úspěšně dokončena
  • FAILED / PENDING / EXPIRED / CANCELED: úloha dosáhla koncového stavu s error_message; live_doc_url se také vrací, pokud je k dispozici

S vývojem backendu se mohou objevit neznámé hodnoty stavů; považujte je za nekoncové, pokud není uvedeno jinak.

Kódy chyb

KódStav HTTPPopis
UNAUTHORIZED401API klíč je neplatný nebo zrušený
PPT_TASK_CREATE_FAILED502Volání navazující služby pro vytvoření úlohy selhalo
PPT_TASK_QUERY_FAILED502Volání navazující služby pro dotaz na stav úlohy selhalo