Felo APIs
PPT Task API
PPT oluşturma görevleri başlatın, temaları listeleyin ve paylaşılan görev endpoint'lerini sorgulayın.
/v2/pptsKimlik 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_KEYAI 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-themesSorgu Parametreleri
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
lang | string | Hayır | Yerelleştirilmiş içerik için dil kodu (ör. en, zh-Hans). Varsayılan: en |
type | string | Hayır | Tema türüne göre filtreleyin (ör. default, custom) |
keyword | string | Hayır | Arama anahtar sözcüğü; tema başlıklarıyla eşleşir |
page | integer | Hayır | Sayfa numarası, 1'den başlar. Varsayılan: 1 |
size | integer | Hayır | Sayfa 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ı
| Alan | Tür | Açıklama |
|---|---|---|
total | integer | Filtreyle eşleşen toplam tema sayısı |
page | integer | Geçerli sayfa numarası |
size | integer | Sayfa boyutu |
items | array | Tema nesnelerinin listesi |
items[].id | string | Tema kimliği; PPT oluştururken bunu ai_theme_id olarak kullanın |
items[].title | string | Tema başlığı (yerelleştirilmiş) |
items[].subtitle | string | Tema alt başlığı (yerelleştirilmiş) |
items[].description | string | Tema açıklaması (yerelleştirilmiş) |
2. PPT Görevi Oluşturma
Endpoint
POST https://openapi.felo.ai/v2/pptsİstek Başlıkları
| Başlık | Gerekli | Açıklama |
|---|---|---|
Authorization | Evet | Bearer YOUR_API_KEY biçimindeki API anahtarınız |
Content-Type | Evet | application/json veya multipart/form-data |
İstek Gövdesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
query | string | Evet | PPT oluşturma isteği için istem |
livedoc_short_id | string | Hayır | PPT oturumuyla ilişkilendirilecek mevcut LiveDoc kısa kimliği. Belirtilmezse otomatik olarak yeni bir LiveDoc oluşturulur. |
resource_ids | array of strings | Hayır | PPT oluşturma için bağlam olarak kullanılacak LiveDoc kaynak kimliklerinin listesi |
ppt_config | object | Hayır | PPT yapılandırma seçenekleri |
ppt_config.ai_theme_id | string | Hayır | PPT 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ça | Tür | Gerekli | Açıklama |
|---|---|---|---|
query | string | Evet | PPT oluşturma isteği için istem |
file | file | Evet | PPT bağlamı olarak kullanılan kaynak dosya |
stream_protocol | string | Hayır | Akış protokolü; varsayılan olarak message_center_v1 |
livedoc_short_id | string | Hayır | Dosyayı alacak mevcut LiveDoc. Belirtilmezse yeni bir LiveDoc oluşturulur. |
ppt_config | JSON | Hayır | JSON 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ı
| Alan | Tür | Açıklama |
|---|---|---|
task_id | string | Görev kimliği |
task_status | string | Geçerli görev durumu |
ppt_biz_id | string | PPT iş kimliği (arka uçtaki thread_short_id alanından eşlenir) |
ppt_url | string | PPT URL'si, biçim: https://felo.ai/slides/{ppt_biz_id} |
error_message | string | FAILED / PENDING / EXPIRED / CANCELED durumlarında bulunur; alt sistem hata ayrıntısı sağlamadığında boş dize "" |
ai_page_html | string | Gö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_id | string | LiveDoc 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_url | string | live_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şleniyorCOMPLETED: görev başarıyla tamamlandıFAILED/PENDING/EXPIRED/CANCELED: göreverror_messageile nihai duruma ulaştı; mevcut olduğundalive_doc_urlde 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ı
| Kod | HTTP Durumu | Açıklama |
|---|---|---|
UNAUTHORIZED | 401 | API anahtarı geçersiz veya iptal edilmiş |
PPT_TASK_CREATE_FAILED | 502 | Görev oluşturma alt sistem çağrısı başarısız oldu |
PPT_TASK_QUERY_FAILED | 502 | Görev durumu sorgulama alt sistem çağrısı başarısız oldu |