


مقارنة واجهات API العروض التقديمية بالذكاء الاصطناعي مع أمثلة برمجية: 2Slides مقابل SlideSpeak مقابل Canva (2026)
للمطورين الذين يعرفون أنهم بحاجة إلى API. هذه المقالة مقارنة مباشرة مع كود. إذا كنت لا تزال تقرر ما هو API العروض التقديمية بالذكاء الاصطناعي أو هل تحتاجه، ابدأ بـ الدليل الكامل للمطورين — يغطي التعريفات والأسعار وMCP وأنماط البنية. هذه الصفحة تكمل من حيث ينتهي ذلك الدليل.
إذا كنت بحاجة إلى إنشاء عروض تقديمية برمجياً — لتكاملات SaaS، أو التقارير الآلية، أو سير عمل وكلاء الذكاء الاصطناعي — فأنت تحتاج إلى API للعروض التقديمية. من المدهش أن قلة من أدوات العروض التقديمية بالذكاء الاصطناعي تقدم واحداً. المقارنة والكود أدناه.
الخريطة (تم التحقق في مايو 2026)
| الأداة | API متوفر | نوع API | التوثيق | دعم MCP | PPTX أصلي |
|---|---|---|---|---|---|
| 2Slides | ✅ REST API كامل | REST + JSON-RPC MCP | ✅ شامل | ✅ | ✅ |
| SlideSpeak | ✅ محدود | REST + MCP | جزئي | ✅ | جزئي |
| Canva | ✅ (Canva Connect) | REST | ✅ | ❌ | عبر القوالب |
| Gamma | ❌ | — | — | ❌ | ❌ |
| Beautiful.ai | ❌ | — | — | ❌ | ❌ |
| SlidesAI | ❌ (إضافة فقط) | — | — | ❌ | Google Slides فقط |
| Presenton | ✅ مفتوح المصدر للاستضافة الذاتية | REST | ✅ | ❌ | ✅ |
الخلاصة: كخدمة مُدارة لإنشاء العروض التقديمية بالذكاء الاصطناعي، 2Slides هو الخيار الأكثر اكتمالاً. SlideSpeak يقدم وصولاً جزئياً عبر API. Canva API يخدم غرضاً مختلفاً (التلاعب بالتصميم، وليس الإنشاء التوليدي). البقية ليس لديهم API عام. للاستضافة الذاتية، Presenton (Apache 2.0) هو البديل الواقعي الوحيد.
API 2Slides — وظائف كاملة
نقاط النهاية
| نقطة النهاية | الطريقة | الوصف |
|---|---|---|
/api/v1/slides/generate | POST | إنشاء شرائح من نص |
/api/v1/slides/create-like-this | POST | الإنشاء بصورة مرجعية |
/api/v1/slides/create-pdf-slides | POST | تحويل الملفات إلى شرائح |
/api/v1/slides/generate-narration | POST | إضافة سرد صوتي بالذكاء الاصطناعي |
/api/v1/slides/download-slides-pages-voices | POST | التنزيل مع الصوت |
/api/v1/jobs/{id} | GET | حالة المهمة غير المتزامنة |
/api/v1/themes/search | GET | البحث في مكتبة 1500+ قالب |
/api/mcp | JSON-RPC 2.0 | نقطة نهاية MCP لوكلاء الذكاء الاصطناعي |
بداية سريعة
curl -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Top 10 AI Trends 2026", "mode": "sync", "resolution": "2K" }'
الأسعار
- قائم على الرصيد، بدون رسوم لكل استدعاء
- ~1 رصيد لكل صفحة شريحة
- 100-200 رصيد لكل صورة AI (حسب الدقة)
- باقات: من 5$ (2,000 رصيد) إلى 80$ (40,000 رصيد، خصم حجم يصل إلى 20%)
- اشتراك Pro: 12.50$/شهر مقابل 10,000 رصيد
حدود المعدل
- 60 طلب في الدقيقة لكل مفتاح API
- يوصى بالوضع غير المتزامن () للإنتاج
mode: "async"
API SlideSpeak — محدود
المتاح
- تحويل PDF/DOCX → شرائح
- إنشاء AI أساسي
- خادم MCP لوكلاء الذكاء الاصطناعي (مجتمعي)
القيود
- أوضاع إنشاء أقل من 2Slides
- لا يوجد استنساخ للنمط (لا يوجد ما يعادل )
create-like-this - لا سرد صوتي ولا فيديو عبر API
- توثيق أقل اكتمالاً؛ بعض نقاط النهاية للشركاء فقط
الأسعار
- 29$/شهر Premium (50 رصيد)
- 34$/شهر Premium Plus (استخدام عادل "غير محدود")
API Canva — فئة مختلفة
Canva Connect API قوي لكنه يحل مشكلة مختلفة.
- التركيز: التلاعب البرمجي بالتصميم، وليس الإنشاء التوليدي
- حالة الاستخدام: ملء قوالب Canva بالبيانات برمجياً
- القيد: أنت تملأ قوالب، لا تنشئ عروضاً تقديمية جديدة من برومبت. أجزاء "AI" في Canva (Magic Design، Magic Write) ليست مكشوفة في API العام حتى Q2 2026
إذا كانت حالتك "ملء قالب Canva برمجياً"، فقد بُني Canva لذلك. إذا كانت "إعطاء برومبت واسترجاع شرائح كاملة"، فـ Canva هو الأداة الخاطئة.
اختيار API المناسب (مصفوفة قرار)
| الحاجة | الخيار الأمثل | السبب |
|---|---|---|
| إنشاء AI كامل، خدمة مُدارة | 2Slides | أكثر نقاط نهاية وصيغ ولغات |
| استضافة ذاتية، مفتوح المصدر | Presenton | Apache 2.0، شفرة مصدر كاملة |
| PDF إلى شرائح فقط | 2Slides أو SlideSpeak | كلاهما يدعم إدخال الملفات |
| تكامل مع وكلاء AI (MCP) | 2Slides | MCP كامل مع slides_generatethemes_searchjobs_get |
| ملء التصميم بالقوالب | Canva Connect | نظام قوالب غني + brand kits |
| ميزانية أقل من 5$/شهر | 2Slides | حزم رصيد من 5$؛ SlideSpeak من 29$/شهر |
| السرد الصوتي + تصدير MP4 | 2Slides | API الوحيد في السوق مع H.264 + صوت AI متعدد المتحدثين |
أمثلة التكامل
Node.js / TypeScript
// 2slides-generate.ts // إنشاء غير متزامن مع polling. نمط جاهز للإنتاج. // pnpm add ofetch (أو استخدم fetch مباشرة في Node 18+) import { ofetch } from 'ofetch' const API_KEY = process.env.TWOSLIDES_API_KEY! // sk-2slides-... const API_BASE = 'https://2slides.com/api/v1' interface GenerateInput { topic: string themeId?: string language?: string resolution?: '512px' | '1K' | '2K' | '4K' } interface JobResult { jobId: string status: 'pending' | 'processing' | 'success' | 'failed' downloadUrl?: string error?: string } async function generateDeck(input: GenerateInput): Promise<JobResult> { // 1. بدء المهمة (الوضع غير المتزامن) const job = await ofetch<{ jobId: string }>(`${API_BASE}/slides/generate`, { method: 'POST', headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }, body: { userInput: input.topic, themeId: input.themeId, responseLanguage: input.language ?? 'en', resolution: input.resolution ?? '2K', mode: 'async', }, }) // 2. polling حتى الإكمال (5 دقائق كحد أقصى) const deadline = Date.now() + 5 * 60 * 1000 while (Date.now() < deadline) { await new Promise((r) => setTimeout(r, 3000)) const status = await ofetch<JobResult>(`${API_BASE}/jobs/${job.jobId}`, { headers: { Authorization: `Bearer ${API_KEY}` }, }) if (status.status === 'success') return status if (status.status === 'failed') throw new Error(status.error ?? 'Generation failed') } throw new Error('انتهت مهلة انتظار الإنشاء') } // الاستخدام: const result = await generateDeck({ topic: 'مراجعة مبيعات Q1 2026 للفريق التنفيذي', resolution: '2K', }) console.log('التنزيل:', result.downloadUrl)
Python
# 2slides_generate.py # إنشاء غير متزامن مع polling. نفس نمط مثال Node. # pip install requests import os import time import requests from typing import Optional, Literal API_KEY = os.environ["TWOSLIDES_API_KEY"] # sk-2slides-... API_BASE = "https://2slides.com/api/v1" HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} def generate_deck( topic: str, theme_id: Optional[str] = None, language: str = "ar", resolution: Literal["512px", "1K", "2K", "4K"] = "2K", timeout_s: int = 300, ) -> dict: body = { "userInput": topic, "themeId": theme_id, "responseLanguage": language, "resolution": resolution, "mode": "async", } r = requests.post(f"{API_BASE}/slides/generate", json=body, headers=HEADERS, timeout=30) r.raise_for_status() job_id = r.json()["jobId"] deadline = time.time() + timeout_s while time.time() < deadline: time.sleep(3) s = requests.get(f"{API_BASE}/jobs/{job_id}", headers=HEADERS, timeout=10) s.raise_for_status() data = s.json() if data["status"] == "success": return data if data["status"] == "failed": raise RuntimeError(data.get("error", "Generation failed")) raise TimeoutError("انتهت مهلة انتظار الإنشاء") if __name__ == "__main__": result = generate_deck( topic="مراجعة مبيعات Q1 2026 للفريق التنفيذي", resolution="2K", ) print("التنزيل:", result["downloadUrl"])
cURL / Shell
#!/usr/bin/env bash # 2slides-generate.sh — الوضع المتزامن للنماذج الأولية السريعة. # يُفضل الوضع غير المتزامن في الإنتاج (انظر Node/Python أعلاه). set -euo pipefail API_KEY="${TWOSLIDES_API_KEY:?حدد TWOSLIDES_API_KEY أولاً}" TOPIC="${1:-Top 10 AI Trends 2026}" curl -sS -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ -d @- <<JSON | jq -r '.downloadUrl // .error' { "userInput": "${TOPIC}", "mode": "sync", "resolution": "2K", "responseLanguage": "ar" } JSON
الاستدعاء عبر MCP (لوكلاء AI)
إذا كنت تستدعي 2Slides من Claude Desktop أو Cursor أو أي وكيل متوافق مع MCP، فلا تكتب كود HTTP. تقوم بإعداد خادم MCP مرة واحدة، ويستدعي الوكيل الأداة بشكل أصلي:
{ "mcpServers": { "2slides": { "command": "npx", "args": ["2slides-mcp"], "env": { "API_KEY": "sk-2slides-xxx" } } } }
ثم اطلب من الوكيل: "أنشئ pitch deck من 12 شريحة لشركة فينتك ناشئة عن المدفوعات المضمنة، باللغة العربية، دقة 2K." يستدعي الوكيل
slides_generateأنماط الإنتاج
النمط 1 — Webhook callback (بدلاً من polling)
يدعم 2Slides معامل
webhookUrl/slides/generatecurl -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "...", "mode": "async", "webhookUrl": "https://your-app.com/api/2slides-callback" }'
النمط 2 — البحث عن المظهر قبل الإنشاء
لمخرجات متوافقة مع العلامة التجارية، ابحث في مكتبة المظاهر وثبّت
themeId# العثور على مظهر يطابق "consulting" curl -sS "https://2slides.com/api/v1/themes/search?q=consulting&limit=5" \ -H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id' # استخدم الـ id المُرجع في generate()
النمط 3 — استنساخ النمط من مرجع علامة تجارية
إذا كان لديك قالب علامة تجارية كصورة، استخدم
create-like-thisgeneratecurl -X POST https://2slides.com/api/v1/slides/create-like-this \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "تقرير المبيعات Q1 2026", "referenceImageUrl": "https://your-cdn.com/brand-slide.png", "page": 12 }'
يُرجع PDF + URL workspace بشكل متزامن. حتى Q2 2026، لا يوجد API آخر للعروض التقديمية بالذكاء الاصطناعي يقدم نمط استنساخ النمط هذا.
الأسئلة الشائعة
هل يمكنني استخدام API 2Slides في منتجات تجارية؟
نعم، بدون قيود. ابنِ منتجات SaaS، أدوات داخلية، ميزات white-label، أو ميزات تواجه العميل فوق API. ينطبق الحد القياسي للمعدل (60 RPM)؛ تواصل مع المبيعات لحدود أعلى.
هل توجد بيئة sandbox أو اختبار؟
لا توجد sandbox منفصلة. استخدم مفتاح API الفعلي مع حزم رصيد صغيرة (5$/2,000 رصيد) للاختبار. تقبل جميع نقاط النهاية معامل
dryRun: trueما هو زمن الاستجابة في الوضع المتزامن؟
عادة 15-45 ثانية لعرض من 10 شرائح بدقة 2K، حسب تعقيد صور AI والقالب. للحصول على زمن استجابة حتمي في الإنتاج، استخدم
mode: "async"webhookUrlكيف يقارن خادم MCP الخاص بـ 2Slides مع SlideSpeak؟
يكشف 2Slides ثلاث أدوات —
slides_generatethemes_searchjobs_getهل يمكنني الاستضافة الذاتية بدلاً من API مُدار؟
بالنسبة لـ 2Slides تحديداً، لا — إنه خدمة مُدارة. إذا كانت الاستضافة الذاتية متطلباً صارماً، Presenton (Apache 2.0) هو البديل المفتوح المصدر الأكثر مصداقية في 2026.
ماذا عن حدود المعدل لحركة المرور المفاجئة؟
الافتراضي 60 RPM لكل مفتاح API. لأحمال العمل المكثفة (مثل بوت Slack يطلق 200 إنشاء متوازٍ في ساعات العمل)، النمط الموصى به: الوضع غير المتزامن + قائمة انتظار (BullMQ، SQS، إلخ) من جانبك. تواصل مع المبيعات لحدود معدل مرتفعة إذا كان لديك حمل إنتاج مرتفع متوقع.
قراءات ذات صلة
- أفضل API للعروض التقديمية بالذكاء الاصطناعي للمطورين (دليل كامل) — hub التعريفات: ما هو API العروض التقديمية، لماذا استخدامه، نماذج التسعير، نظرة عامة على MCP
- كيفية استخدام Claude لإنشاء العروض التقديمية (مع MCP) — walkthrough الإنشاء بقيادة الوكيل
- أدوات العروض التقديمية بالذكاء الاصطناعي للمؤسسات بالمقارنة — SSO / SOC 2 / سجلات التدقيق
ابدأ البناء — أنشئ مفتاح API الخاص بك من 2Slides وقم بتسليم أول عرض تقديمي في أقل من 30 ثانية.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free