Felo APIs
PPT Task API
PPT जनरेशन टास्क बनाएं, थीम की सूची देखें और साझा टास्क endpoints पोल करें।
/v2/pptsप्रमाणीकरण
Bearer API key
कंटेंट टाइप
application/json
दर संबंधी नोट
endpoint-विशिष्ट सीमाएं लागू हो सकती हैं।
PPT Task API असिंक्रोनस PPT जनरेशन क्षमताएं देती है। आप कार्य बना सकते हैं और फिर task_id से कार्य की स्थिति पोल कर सकते हैं। आप उपलब्ध PPT थीम भी ब्राउज़ कर सकते हैं और कार्य बनाते समय उन्हें लागू कर सकते हैं।
यह असिंक्रोनस API है। साझा सबमिट, पोल और परिणाम प्राप्त करने के पैटर्न के लिए Async Tasks देखें।
प्रमाणीकरण
सभी अनुरोधों के लिए Authorization हेडर में API Key ज़रूरी है:
Authorization: Bearer YOUR_API_KEYAI Agent के साथ उपयोग करें
Agent से स्लाइड बनाने के लिए Skills के स्थिर उपसमुच्चय के बजाय पूरा felo-ai पैकेज इंस्टॉल करें। इसका इंस्टॉलर SKILL.md वाली हर पैकेज डायरेक्टरी को गतिशील रूप से खोजता है, जिसमें PPT Skill और भविष्य में जुड़ने वाली चीज़ें शामिल हैं। सभी खोजी गई Skills को अपने Agent की मूल डायरेक्टरी में इंस्टॉल करें: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills या Hermes Agent ~/.hermes/skills। प्लेटफ़ॉर्म-विशिष्ट API key कॉन्फ़िगरेशन और सत्यापन के लिए मैन्युअल AI Agent सेटअप गाइड का पालन करें।
1. List PPT Themes (थीम सूचीबद्ध करें)
पेजिनेशन, कीवर्ड खोज, भाषा और प्रकार फ़िल्टर के साथ उपलब्ध PPT थीम क्वेरी करें।
Endpoint
GET https://openapi.felo.ai/v2/ppt-themesQuery पैरामीटर
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
lang | string | नहीं | स्थानीयकृत सामग्री के लिए भाषा कोड (जैसे en, zh-Hans)। डिफ़ॉल्ट: en |
type | string | नहीं | थीम प्रकार से फ़िल्टर करें (जैसे default, custom) |
keyword | string | नहीं | खोज कीवर्ड, थीम शीर्षकों से मेल खाता है |
page | integer | नहीं | पेज संख्या, 1 से शुरू। डिफ़ॉल्ट: 1 |
size | integer | नहीं | पेज आकार, अधिकतम 100। डिफ़ॉल्ट: 20 |
उदाहरण
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'सफल प्रतिक्रिया (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"
}
]
}
}थीम प्रतिक्रिया फ़ील्ड
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
total | integer | फ़िल्टर से मेल खाने वाली थीम की कुल संख्या |
page | integer | वर्तमान पेज संख्या |
size | integer | पेज आकार |
items | array | थीम ऑब्जेक्ट की सूची |
items[].id | string | थीम ID, PPT बनाते समय इसे ai_theme_id के रूप में उपयोग करें |
items[].title | string | थीम शीर्षक (स्थानीयकृत) |
items[].subtitle | string | थीम उपशीर्षक (स्थानीयकृत) |
items[].description | string | थीम विवरण (स्थानीयकृत) |
2. PPT कार्य बनाएं
Endpoint
POST https://openapi.felo.ai/v2/pptsअनुरोध हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
Authorization | हां | Bearer YOUR_API_KEY फ़ॉर्मेट में आपकी API Key |
Content-Type | हां | application/json या multipart/form-data |
अनुरोध बॉडी
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
query | string | हां | PPT जनरेशन के लिए प्रॉम्प्ट |
livedoc_short_id | string | नहीं | PPT सेशन से जोड़ने के लिए मौजूदा LiveDoc short ID। छोड़ने पर नया LiveDoc स्वचालित रूप से बनता है। |
resource_ids | array of strings | नहीं | PPT जनरेशन के कॉन्टेक्स्ट के रूप में उपयोग करने के लिए LiveDoc resource ID की सूची |
ppt_config | object | नहीं | PPT कॉन्फ़िगरेशन विकल्प |
ppt_config.ai_theme_id | string | नहीं | List PPT Themes endpoint से थीम ID |
उदाहरण
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"
}
}'अपलोड की गई फ़ाइल से बनाएं
एक फ़ाइल अपलोड करने और एक ही अनुरोध में PPT कार्य बनाने के लिए multipart/form-data उपयोग करें। प्लेटफ़ॉर्म पहले फ़ाइल को LiveDoc संसाधन के रूप में अपलोड करता है, फिर उसका resource ID PPT कार्य को पास करता है।
| भाग | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
query | string | हां | PPT जनरेशन के लिए प्रॉम्प्ट |
file | file | हां | PPT कॉन्टेक्स्ट के रूप में उपयोग होने वाली स्रोत फ़ाइल |
stream_protocol | string | नहीं | स्ट्रीमिंग प्रोटोकॉल; डिफ़ॉल्ट message_center_v1 |
livedoc_short_id | string | नहीं | फ़ाइल प्राप्त करने के लिए मौजूदा LiveDoc। छोड़ने पर नया LiveDoc बनता है। |
ppt_config | JSON | नहीं | JSON अनुरोध बॉडी जैसी ही संरचना वाला PPT कॉन्फ़िगरेशन। इस भाग को 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]'प्रतिक्रिया JSON अनुरोध जैसा ही schema उपयोग करती है। लौटाया गया livedoc_short_id उस LiveDoc की पहचान करता है जिसमें अपलोड किया गया संसाधन है।
सफल प्रतिक्रिया (200)
{
"status": "ok",
"message": null,
"data": {
"livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
"ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
"task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
}
}3. कार्य की स्थिति देखें
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/statusउदाहरण
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'सफल प्रतिक्रिया (200)
{
"status": "ok",
"message": null,
"data": {
"status": "RUNNING"
}
}4. कार्य की ऐतिहासिक जानकारी देखें
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/historicalउदाहरण
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 प्रतिक्रिया
{
"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 प्रतिक्रिया
{
"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 प्रतिक्रिया (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 प्रतिक्रिया
{
"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"
}
}ऐतिहासिक प्रतिक्रिया फ़ील्ड
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
task_id | string | कार्य ID |
task_status | string | वर्तमान कार्य स्थिति |
ppt_biz_id | string | PPT business ID (backend thread_short_id से मैप किया गया) |
ppt_url | string | PPT URL, फ़ॉर्मेट: https://felo.ai/slides/{ppt_biz_id} |
error_message | string | FAILED / PENDING / EXPIRED / CANCELED पर मौजूद; जब downstream त्रुटि विवरण न दे तो खाली स्ट्रिंग "" |
ai_page_html | string | तब मौजूद जब कार्य AI_PAGE मोड में चलता है और downstream ऐतिहासिक परिणाम HTML URL लौटाता है |
live_doc_short_id | string | LiveDoc short ID। COMPLETED के लिए यह downstream live_doc_short_id से आता है; टर्मिनल विफलता स्थितियों के लिए उपलब्ध होने पर लौटाया जाता है |
live_doc_url | string | live_doc_short_id के अनुरूप LiveDoc URL |
PPTX export करें
PPT जनरेशन कार्य COMPLETED पर पहुंचने के बाद, create प्रतिक्रिया के ppt_business_id (या historical प्रतिक्रिया के ppt_biz_id) का उपयोग करके असिंक्रोनस export सबमिट करें:
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 '{}'हर 2–5 सेकंड में उसी Bearer API Key के साथ GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export पोल करें। API Key का स्वामी PPT का स्वामी होना चाहिए। दोनों endpoint data.status लौटाते हैं: NOT_STARTED, PROCESSING, COMPLETED या FAILED। केवल COMPLETED में download_url और expires_at शामिल होते हैं।
साइन किया गया डाउनलोड URL जारी होने के 30 मिनट बाद समाप्त हो जाता है। नए URL के लिए GET endpoint दोबारा कॉल करें; इससे PPTX दोबारा नहीं बनता। POST application/json का उपयोग करता है और {} स्वीकार करता है। export प्रोसेस होते समय POST दोहराने से दूसरा जॉब शुरू नहीं होता; पूरा होने के बाद कॉल करने पर PPTX दोबारा बनता है और मौजूदा PPT export क्रेडिट शुल्क लगता है। अपर्याप्त क्रेडिट पर HTTP 402 मिलता है। endpoint-विशिष्ट दर सीमाएं लागू हो सकती हैं; HTTP 429 पर बाद में दोबारा प्रयास करें। विफल export दोबारा सबमिट किया जा सकता है।
{
"status": "ok",
"message": null,
"data": {
"status": "COMPLETED",
"download_url": "https://example.com/presentation.pptx?signature=...",
"expires_at": "2026-09-29T10:30:00Z"
}
}पोलिंग की सिफ़ारिश
create प्रतिक्रिया का task_id उपयोग करें और स्थिति टर्मिनल अवस्था में आने तक हर 2-5 सेकंड में पोल करें।
सामान्य स्थिति उदाहरण:
RUNNING: कार्य अभी प्रोसेस हो रहा हैCOMPLETED: कार्य सफलतापूर्वक पूरा हुआFAILED/PENDING/EXPIRED/CANCELED: कार्यerror_messageके साथ टर्मिनल स्थिति में पहुंचा; उपलब्ध होने परlive_doc_urlभी लौटाया जाता है
backend के विकसित होने के साथ अज्ञात स्थिति मान दिख सकते हैं; जब तक अन्यथा दस्तावेज़ित न हो, उन्हें गैर-टर्मिनल मानें।
त्रुटि कोड
| कोड | HTTP स्टेटस | विवरण |
|---|---|---|
UNAUTHORIZED | 401 | API Key अमान्य या रद्द है |
PPT_TASK_CREATE_FAILED | 502 | कार्य बनाने की downstream कॉल विफल |
PPT_TASK_QUERY_FAILED | 502 | कार्य स्थिति देखने की downstream कॉल विफल |