Felo API PlatformFelo API Platform

Felo APIs

PPT Task API

PPT oluşturma görevleri başlatın, temaları listeleyin ve paylaşılan görev endpoint'lerini sorgulayın.

POST/v2/ppts

Kimlik doğrulama

Bearer API key

İçerik türü

application/json

Hız sınırı notları

Endpoint bazında sınırlar geçerli olabilir.

PPT Görev API'si, eşzamansız PPT oluşturma yetenekleri sunar. Bir görev oluşturabilir ve ardından task_id ile görev durumunu sorgulayabilirsiniz. Kullanılabilir PPT temalarına göz atabilir ve görev oluştururken bunları uygulayabilirsiniz.

Bu eşzamansız bir API'dir. Ortak gönderme, sorgulama ve alma deseni için Eşzamansız Görevler bölümüne bakın.

Kimlik Doğrulama

Tüm istekler, Authorization başlığında bir API anahtarı gerektirir:

Authorization: Bearer YOUR_API_KEY

AI Ajanlarıyla Kullanım

Bir Ajan üzerinden slayt oluşturmak için sabit bir Skill alt kümesi yerine eksiksiz felo-ai paketini kurun. Kurulum programı, SKILL.md içeren her paket dizinini (PPT Skill'i ve gelecekteki eklemeler dahil) dinamik olarak keşfeder. Keşfedilen tüm Skill'leri Ajanınızın yerel dizinine kurun: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills veya Hermes Agent ~/.hermes/skills. Platforma özgü API anahtarı yapılandırması ve doğrulaması için manuel AI Ajanı kurulum kılavuzunu izleyin.

1. PPT Temalarını Listeleme

Kullanılabilir PPT temalarını sayfalama, anahtar sözcük araması, dil ve tür filtrelemesiyle sorgulayın.

Endpoint

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

Sorgu Parametreleri

ParametreTürGerekliAçıklama
langstringHayırYerelleştirilmiş içerik için dil kodu (ör. en, zh-Hans). Varsayılan: en
typestringHayırTema türüne göre filtreleyin (ör. default, custom)
keywordstringHayırArama anahtar sözcüğü; tema başlıklarıyla eşleşir
pageintegerHayırSayfa numarası, 1'den başlar. Varsayılan: 1
sizeintegerHayırSayfa boyutu, en fazla 100. Varsayılan: 20

Örnek

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'

Başarılı Yanıt (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"
      }
    ]
  }
}

Tema Yanıt Alanları

AlanTürAçıklama
totalintegerFiltreyle eşleşen toplam tema sayısı
pageintegerGeçerli sayfa numarası
sizeintegerSayfa boyutu
itemsarrayTema nesnelerinin listesi
items[].idstringTema kimliği; PPT oluştururken bunu ai_theme_id olarak kullanın
items[].titlestringTema başlığı (yerelleştirilmiş)
items[].subtitlestringTema alt başlığı (yerelleştirilmiş)
items[].descriptionstringTema açıklaması (yerelleştirilmiş)

2. PPT Görevi Oluşturma

Endpoint

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

İstek Başlıkları

BaşlıkGerekliAçıklama
AuthorizationEvetBearer YOUR_API_KEY biçimindeki API anahtarınız
Content-TypeEvetapplication/json veya multipart/form-data

İstek Gövdesi

ParametreTürGerekliAçıklama
querystringEvetPPT oluşturma isteği için istem
livedoc_short_idstringHayırPPT oturumuyla ilişkilendirilecek mevcut LiveDoc kısa kimliği. Belirtilmezse otomatik olarak yeni bir LiveDoc oluşturulur.
resource_idsarray of stringsHayırPPT oluşturma için bağlam olarak kullanılacak LiveDoc kaynak kimliklerinin listesi
ppt_configobjectHayırPPT yapılandırma seçenekleri
ppt_config.ai_theme_idstringHayırPPT Temalarını Listeleme endpoint'inden alınan tema kimliği

Örnek

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

Yüklenen Dosyadan Oluşturma

Tek bir dosyayı yüklemek ve tek istekte bir PPT görevi oluşturmak için multipart/form-data kullanın. Platform, dosyayı önce bir LiveDoc kaynağı olarak yükler, ardından kaynak kimliğini PPT görevine iletir.

ParçaTürGerekliAçıklama
querystringEvetPPT oluşturma isteği için istem
filefileEvetPPT bağlamı olarak kullanılan kaynak dosya
stream_protocolstringHayırAkış protokolü; varsayılan olarak message_center_v1
livedoc_short_idstringHayırDosyayı alacak mevcut LiveDoc. Belirtilmezse yeni bir LiveDoc oluşturulur.
ppt_configJSONHayırJSON istek gövdesiyle aynı yapıya sahip PPT yapılandırması. Bu parçayı application/json olarak gönderin.
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]'

Yanıt, JSON isteğiyle aynı şemayı kullanır. Döndürülen livedoc_short_id, yüklenen kaynağı içeren LiveDoc'u tanımlar.

Başarılı Yanıt (200)

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

3. Görev Durumu Sorgulama

Endpoint

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

Örnek

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'

Başarılı Yanıt (200)

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

4. Görev Geçmiş Bilgilerini Sorgulama

Endpoint

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

Örnek

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'

RUNNING Yanıtı

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

COMPLETED Yanıtı

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

COMPLETED Yanıtı (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"
  }
}

FAILED / PENDING / EXPIRED / CANCELED Yanıtı

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

Geçmiş Yanıtı Alanları

AlanTürAçıklama
task_idstringGörev kimliği
task_statusstringGeçerli görev durumu
ppt_biz_idstringPPT iş kimliği (arka uçtaki thread_short_id alanından eşlenir)
ppt_urlstringPPT URL'si, biçim: https://felo.ai/slides/{ppt_biz_id}
error_messagestringFAILED / PENDING / EXPIRED / CANCELED durumlarında bulunur; alt sistem hata ayrıntısı sağlamadığında boş dize ""
ai_page_htmlstringGörev AI_PAGE modunda çalıştığında ve alt sistem geçmiş yanıtı bir HTML sonuç URL'si döndürdüğünde bulunur
live_doc_short_idstringLiveDoc kısa kimliği. COMPLETED için alt sistemdeki live_doc_short_id alanından gelir; nihai hata durumlarında mevcut olduğunda döndürülür
live_doc_urlstringlive_doc_short_id ile eşleşen LiveDoc URL'si

PPTX Dışa Aktarma

PPT oluşturma görevi COMPLETED durumuna ulaştıktan sonra, oluşturma yanıtındaki ppt_business_id (veya geçmiş yanıtındaki ppt_biz_id) ile eşzamansız bir dışa aktarma gönderin:

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

Aynı Bearer API anahtarıyla GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export adresini 2–5 saniyede bir sorgulayın. API anahtarının sahibi PPT'nin de sahibi olmalıdır. Her iki endpoint de data.status döndürür: NOT_STARTED, PROCESSING, COMPLETED veya FAILED. Yalnızca COMPLETED yanıtı download_url ve expires_at içerir.

İmzalı indirme URL'sinin geçerliliği düzenlenmesinden 30 dakika sonra sona erer. Yeni bir URL için GET endpoint'ini tekrar çağırın; bu işlem PPTX'i yeniden oluşturmaz. POST application/json kullanır ve {} kabul eder. Bir dışa aktarma işlenirken POST'un yinelenmesi yeni bir iş başlatmaz; tamamlandıktan sonra çağrılması PPTX'i yeniden oluşturur ve mevcut PPT dışa aktarma hizmet kredisi ücretini doğurur. Yetersiz hizmet kredisi HTTP 402 döndürür. Endpoint'e özgü hız sınırları uygulanabilir; HTTP 429 alırsanız daha sonra yeniden deneyin. Başarısız bir dışa aktarma yeniden gönderilebilir.

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

Yoklama Önerisi

Oluşturma yanıtındaki task_id değerini kullanın ve durum nihai bir duruma gelene kadar her 2-5 saniyede bir durumu sorgulayın.

Yaygın durum örnekleri:

  • RUNNING: görev hâlâ işleniyor
  • COMPLETED: görev başarıyla tamamlandı
  • FAILED / PENDING / EXPIRED / CANCELED: görev error_message ile nihai duruma ulaştı; mevcut olduğunda live_doc_url de döndürülür

Arka uç geliştikçe bilinmeyen durum değerleri görünebilir; aksi belgelenmediği sürece bunları nihai olmayan durumlar olarak değerlendirin.

Hata Kodları

KodHTTP DurumuAçıklama
UNAUTHORIZED401API anahtarı geçersiz veya iptal edilmiş
PPT_TASK_CREATE_FAILED502Görev oluşturma alt sistem çağrısı başarısız oldu
PPT_TASK_QUERY_FAILED502Görev durumu sorgulama alt sistem çağrısı başarısız oldu