Felo APIs
PPT Task API
PPT بنانے کے کام شروع کریں، تھیمز کی فہرست دیکھیں، اور مشترکہ کام endpoints معلوم کریں۔
/v2/pptsتصدیق
Bearer API key
مواد کی قسم
application/json
ریٹ نوٹس
endpoint کے مخصوص حدود لاگو ہو سکتے ہیں۔
PPT Task API غیر ہم وقت PPT جنریشن کی صلاحیتیں فراہم کرتا ہے۔ آپ ٹاسک بنا سکتے ہیں اور پھر task_id سے ٹاسک کی حالت پول کر سکتے ہیں۔ آپ دستیاب PPT تھیمز بھی براؤز کر سکتے ہیں اور ٹاسک بناتے وقت اُنہیں لاگو کر سکتے ہیں۔
یہ ایک async API ہے۔ مشترکہ جمع کریں، پول کریں اور حاصل کریں طرز کے لیے async ٹاسکس دیکھیں۔
تصدیق
تمام درخواستوں کے لیے Authorization ہیڈر میں API کلید درکار ہے:
Authorization: Bearer YOUR_API_KEYAI ایجنٹس کے ساتھ استعمال
ایجنٹ سے سلائیڈز بنانے کے لیے Skills کے کسی مقررہ ذیلی سیٹ کے بجائے مکمل felo-ai پیکج انسٹال کریں۔ اِس کا انسٹالر SKILL.md رکھنے والی ہر پیکج ڈائریکٹری کو متحرک طور پر دریافت کرتا ہے، بشمول PPT Skill اور مستقبل کے اضافے۔ دریافت شدہ تمام Skills کو اپنے ایجنٹ کی مقامی ڈائریکٹری میں انسٹال کریں: Codex ~/.codex/skills، Claude Code ~/.claude/skills، OpenClaw ~/.agents/skills یا Hermes Agent ~/.hermes/skills۔ پلیٹ فارم کے مخصوص API کلید کنفیگریشن اور تصدیق کے لیے AI ایجنٹ کی دستی سیٹ اپ گائیڈ کی پیروی کریں۔
1. List PPT Themes (تھیمز کی فہرست)
دستیاب PPT تھیمز کو pagination، کلیدی لفظ کی تلاش، زبان اور قسم کی فلٹرنگ کے ساتھ استفسار کریں۔
endpoint
GET https://openapi.felo.ai/v2/ppt-themesQuery Parameters
| پیرامیٹر | قسم | لازمی | تفصیل |
|---|---|---|---|
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 | ہاں | آپ کی API کلید Bearer YOUR_API_KEY کی شکل میں |
Content-Type | ہاں | application/json یا multipart/form-data |
درخواست باڈی
| پیرامیٹر | قسم | لازمی | تفصیل |
|---|---|---|---|
query | string | ہاں | PPT جنریشن کی درخواست کا پرامپٹ |
livedoc_short_id | string | نہیں | PPT سیشن سے منسلک کرنے کے لیے موجودہ LiveDoc شارٹ ID۔ اگر نہ دیا جائے تو خودکار طور پر نیا LiveDoc بنتا ہے۔ |
resource_ids | strings کا ایرے | نہیں | PPT جنریشن کے لیے سیاق و سباق کے طور پر استعمال ہونے والے LiveDoc ریسورس IDs کی فہرست |
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 ریسورس کے طور پر اپ لوڈ کرتا ہے، پھر اُس کا ریسورس ID PPT ٹاسک کو دیتا ہے۔
| حصہ | قسم | لازمی | تفصیل |
|---|---|---|---|
query | string | ہاں | PPT جنریشن کی درخواست کا پرامپٹ |
file | file | ہاں | PPT سیاق و سباق کے طور پر استعمال ہونے والی ماخذ فائل |
stream_protocol | string | نہیں | اسٹریمنگ پروٹوکول؛ ڈیفالٹ message_center_v1 |
livedoc_short_id | string | نہیں | فائل وصول کرنے کے لیے موجودہ LiveDoc۔ نہ دینے پر نیا LiveDoc بنتا ہے۔ |
ppt_config | JSON | نہیں | PPT کنفیگریشن، JSON درخواست باڈی کی اُسی ساخت کے ساتھ۔ یہ حصہ 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]'جواب وہی schema استعمال کرتا ہے جو JSON درخواست استعمال کرتی ہے۔ واپس شدہ 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 بزنس ID (بیک اینڈ thread_short_id سے میپ شدہ) |
ppt_url | string | PPT URL، فارمیٹ: https://felo.ai/slides/{ppt_biz_id} |
error_message | string | FAILED / PENDING / EXPIRED / CANCELED کے لیے موجود؛ جب ڈاؤن اسٹریم ایرر تفصیلات فراہم نہ کرے تو خالی سٹرنگ "" |
ai_page_html | string | اُس وقت موجود جب ٹاسک AI_PAGE موڈ میں چلے اور ڈاؤن اسٹریم تاریخی جواب HTML نتیجے کا URL واپس کرے |
live_doc_short_id | string | LiveDoc شارٹ ID۔ COMPLETED کے لیے یہ ڈاؤن اسٹریم live_doc_short_id سے آتا ہے؛ آخری ناکامی کی حالتوں کے لیے دستیاب ہونے پر واپس آتا ہے |
live_doc_url | string | live_doc_short_id کے مطابق LiveDoc URL |
PPTX ایکسپورٹ کریں
PPT جنریشن ٹاسک COMPLETED تک پہنچنے کے بعد بنانے کے جواب سے ppt_business_id (یا تاریخی جواب سے ppt_biz_id) استعمال کرتے ہوئے async ایکسپورٹ جمع کرائیں:
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 '{}'GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export کو اُسی Bearer API کلید کے ساتھ ہر 2–5 سیکنڈ میں پول کریں۔ API کلید کا مالک PPT کا مالک ہونا چاہیے۔ دونوں endpoints data.status واپس کرتے ہیں: NOT_STARTED، PROCESSING، COMPLETED یا FAILED۔ صرف COMPLETED میں download_url اور expires_at شامل ہوتے ہیں۔
دستخط شدہ ڈاؤن لوڈ URL جاری ہونے کے 30 منٹ بعد میعاد ختم ہو جاتا ہے۔ تازہ URL کے لیے GET endpoint دوبارہ کال کریں؛ اِس سے PPTX دوبارہ نہیں بنتا۔ POST application/json استعمال کرتا ہے اور {} قبول کرتا ہے۔ ایکسپورٹ پروسیس ہوتے وقت POST دہرانے سے دوسرا جاب شروع نہیں ہوتا؛ مکمل ہونے کے بعد کال کرنے سے PPTX دوبارہ بنتا ہے اور موجودہ PPT ایکسپورٹ کریڈٹ چارج لگتا ہے۔ ناکافی کریڈٹ پر HTTP 402 ملتا ہے۔ endpoint کے مخصوص ریٹ کی حدود لاگو ہو سکتی ہیں؛ HTTP 429 پر بعد میں دوبارہ کوشش کریں۔ ناکام ایکسپورٹ دوبارہ جمع کرائی جا سکتی ہے۔
{
"status": "ok",
"message": null,
"data": {
"status": "COMPLETED",
"download_url": "https://example.com/presentation.pptx?signature=...",
"expires_at": "2026-09-29T10:30:00Z"
}
}پولنگ کی تجویز
بنانے کے جواب سے task_id استعمال کریں اور حالت کے آخری مرحلے تک پہنچنے تک ہر 2-5 سیکنڈ میں حالت پول کریں۔
عام حالتوں کی مثالیں:
RUNNING: ٹاسک ابھی پروسیس ہو رہا ہےCOMPLETED: ٹاسک کامیابی سے مکمل ہو گیاFAILED/PENDING/EXPIRED/CANCELED: ٹاسکerror_messageکے ساتھ آخری حالت تک پہنچ گیا؛ دستیاب ہونے پرlive_doc_urlبھی واپس آتا ہے
بیک اینڈ کی ترقی کے ساتھ نامعلوم اسٹیٹس ویلیوز ظاہر ہو سکتی ہیں؛ جب تک دستاویزات کچھ اور نہ کہیں، اُنہیں غیر آخری سمجھیں۔
ایرر کوڈز
| کوڈ | HTTP اسٹیٹس | تفصیل |
|---|---|---|
UNAUTHORIZED | 401 | API کلید غلط یا منسوخ ہے |
PPT_TASK_CREATE_FAILED | 502 | ٹاسک بنانے کی ڈاؤن اسٹریم کال ناکام |
PPT_TASK_QUERY_FAILED | 502 | ٹاسک حالت کے استفسار کی ڈاؤن اسٹریم کال ناکام |