التوثيق
يوفر Smart AIPI واجهات API متوافقة مع OpenAI وAnthropic. استخدم خدمتنا مع أي OpenAI أو Anthropic SDK أو أداة أو تطبيق موجود لديك بمجرد تغيير base URL. بدون أي تغييرات في الكود.
Base URL لـ OpenAI
https://api.smartaipi.com/v1
عنوان Anthropic الأساسي
https://api.smartaipi.com
أدوات CLI وMCP
يوفر Smart AIPI حزمتين npm لمساعدة المطورين على العمل مع حساباتهم:
تثبيت الاثنين
npm install -g smart-aipi @smart-aipi/mcp
التثبيت بشكل منفصل
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
المصادقة
كل طلبات API تتطلب API key. نفس المفتاح يعمل مع كلتا طريقتي المصادقة:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
دليل الترحيل
تستغرق الترقية أقل من دقيقة. API لدينا متوافقة بنسبة 100٪ مع endpoints الخاصة بـ OpenAI وAnthropic.
من OpenAI
احصل على API key الخاصة بـ Smart AIPI
أنشئ حسابًا وأنشئ API key من لوحة التحكم.
غيّر base URL
استبدل https://api.openai.com/v1 بـ https://api.smartaipi.com/v1
حدّث API key الخاصة بك
استخدم مفتاح Smart AIPI بدلًا من مفتاح OpenAI. هذا كل شيء!
من Anthropic
احصل على API key الخاصة بـ Smart AIPI
أنشئ حسابًا وأنشئ API key من لوحة التحكم.
غيّر base URL
استبدل https://api.anthropic.com بـ https://api.smartaipi.com
حدّث API key الخاصة بك
استخدم مفتاح Smart AIPI بدلًا من مفتاح Anthropic. أسماء نماذج Claude الحالية لديك ستعمل كما هي.
سيعمل الكود الحالي وSDKs والتطبيقات التي تستخدم Anthropic Messages API بدون أي تغييرات في الكود. أسماء نماذج Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) يتم توجيهها تلقائيًا إلى نماذج GPT-5.4 عالية الأداء. كل استجابة تتضمن x-actual-model header يعرض نموذج backend الحقيقي لمزيد من الشفافية.
إكمالات الدردشة
أنشئ chat completion للرسائل والنموذج المحددين. هذا هو endpoint الرئيسي للتفاعل مع نماذج اللغة.
معاملات جسم الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
| model | نص | نعم | معرّف النموذج المراد استخدامه (مثلًا: "gpt-6-astra", "gpt-5.6-sol") |
| messages | مصفوفة | نعم | مصفوفة من كائنات الرسائل تحتوي على role وcontent |
| temperature | رقم | لا | درجة حرارة أخذ العينات (0-2). الأعلى = عشوائية أكثر. الافتراضي: 1 |
| max_tokens | عدد صحيح | لا | الحد الأقصى لعدد tokens التي سيتم إنشاؤها في الاستجابة |
| top_p | رقم | لا | Nucleus sampling. ضع في الاعتبار tokens ذات احتمال top_p. الافتراضي: 1 |
| frequency_penalty | رقم | لا | عاقب tokens بناءً على التكرار (-2 إلى 2). الافتراضي: 0 |
| presence_penalty | رقم | لا | عاقب tokens بناءً على الوجود (-2 إلى 2). الافتراضي: 0 |
| stop | نص/مصفوفة | لا | تسلسلات الإيقاف. حتى 4 تسلسلات تتوقف عندها عملية الإنشاء. |
| stream | قيمة منطقية | لا | فعّل streaming للاستجابات عبر SSE. الافتراضي: false |
أدوار الرسائل
system- system - يحدد سلوك/شخصية المساعدuser- user - الرسائل من المستخدمassistant- assistant - الردود السابقة من المساعد
أمثلة الكود
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
البث
فعّل streaming لتلقي tokens أثناء إنشائها عبر Server-Sent Events (SSE). هذا يوفر تجربة مستخدم أفضل للاستجابات الطويلة.
اضبط "stream": true في طلبك لتفعيل streaming.
مثال على Streaming
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Write a poem"}],
stream=True
)
# Process chunks as they arrive
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
جهد Reasoning
تحكم في عمق reasoning باستخدام المعامل reasoning_effort لنماذج GPT-5.
يستخدم Smart AIPI افتراضيًا reasoning.effort = "high" لكل طلبات Responses API.
بعد اختبارات مكثفة، وجدنا أن high هو أفضل جهد reasoning للاستخدام العملي — إذ يوفر استخدام أدوات وتحليلًا عميقًا وموثوقًا دون تكلفة زمن الاستجابة الخاصة بـ xhigh. يمكنك تجاوز هذا عبر تعيين جهد reasoning صراحةً في طلبك.
يستخدم Smart AIPI افتراضيًا store = false لكل طلبات Responses API وWebSocket.
تتطلب API المصدر store: false لـ GPT-5.4 والنماذج الأحدث. إذا قمت بتعيين store: true في طلباتك، ستتلقى خطأ "Store must be set to false". أزله أو اضبطه على false.
النماذج المدعومة
Responses API
gpt-5.4 وgpt-5.3 وgpt-5.1 وgpt-5 وكل متغيرات Codex
Chat Completions فقط
gpt-5.4-nano — دعم reasoning متاح فقط على /v1/chat/completions .
مستويات جهد Reasoning
none- بدون reasoning. يتخطى التفكير بالكامل.low- reasoning بسيط. رائع للمهام السهلة.medium- توازن بين السرعة والعمق.high- تحليل عميق للمشكلات المعقدة. (الإعداد الافتراضي في Smart AIPI)xhigh- مرتفع جدًا. أقصى عمق reasoning لأصعب المشكلات.
الوضع السريع (معالجة ذات أولوية)
استخدم service_tier: "priority" للمعالجة ذات الأولوية بزمن استجابة أقل. هذا ما يستخدمه أمر /fast في Codex CLI. لا يغيّر هذا عمق reasoning — ستحصل على نفس الجودة لكن أسرع.
التسعير: تتم محاسبة المعالجة ذات الأولوية بسعر 1.5x من السعر القياسي. على سبيل المثال، تكلف GPT-5.4 output عادةً $3.75/1M tokens — ومع الأولوية تصبح $5.625/1M tokens.
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
واجهة Chat Completions API
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
reasoning_effort="high" # or "xhigh" for maximum depth
)
واجهة Responses API
# Reasoning is set via the "reasoning" object
response = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": "Refactor this function..."}],
reasoning={"effort": "high"} # defaults to "high" on Smart AIPI
)
إنشاء الصور
أنشئ صورًا من prompts نصية باستخدام endpoint إنشاء الصور لدينا.
/v1/images/variations ) غير مدعومة بعد. تعديلات الصور متاحة عبر /v1/images/edits.
معاملات جسم الطلب
| المعامل | النوع | الوصف |
|---|---|---|
| prompt | نص | وصف نصي للصورة المطلوب إنشاؤها (مطلوب) |
| model | نص | "gpt-image-2.5-flare" (frontier)، أو "gpt-image-2.5-sunburst"، أو "gpt-image-2". الافتراضي: "gpt-image-2.5-flare" |
| n | عدد صحيح | عدد الصور المطلوب إنشاؤها (1-10). الافتراضي: 1 |
| size | نص | "1024x1024"، أو "1024x1792"، أو "1792x1024". الافتراضي: "1024x1024" |
| quality | نص | "standard" أو "hd". الافتراضي: "standard" |
النماذج المتاحة
gpt-image-2.5-flare- نموذج رائد، أعلى جودة (افتراضي)gpt-image-2.5-sunburst- تحرير دقيق وأعمال إبداعية متميزة (إنشاء أبطأ)gpt-image-latest- اسم بديل لـ gpt-image-2.5-flaregpt-image-2- النموذج الرائد من الجيل السابقgpt-image-1.5- نموذج رائد أقدم (يدعم الخلفيات الشفافة)gpt-image-1- إنشاء صور بجودة كاملةgpt-image-1-mini- صور أسرع وأصغر
مثال
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A futuristic city at sunset, cyberpunk style",
size="1024x1024",
n=1
)
# Response contains base64-encoded image
image_b64 = response.data[0].b64_json
# Save to file
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
تعديلات الصور
عدّل الصور الموجودة باستخدام prompt نصي. يقبل كلًا من JSON (سلسلة base64) وmultipart/form-data (رفع ملف)، لذا تعمل OpenAI SDKs مباشرة.
معاملات جسم الطلب
| المعامل | النوع | الوصف |
|---|---|---|
| prompt | نص | وصف نصي للتعديل المطلوب (مطلوب) |
| image | نص | صورة مشفرة بصيغة Base64 لتعديلها (مطلوب) |
| model | نص | "gpt-image-2.5-flare" (افتراضي)، "gpt-image-2.5-sunburst"، أو "gpt-image-2" |
| n | عدد صحيح | عدد الصور المعدلة المطلوب إنشاؤها (1-10). الافتراضي: 1 |
| size | نص | "1024x1024"، أو "1024x1792"، أو "1792x1024". الافتراضي: "1024x1024" |
| quality | نص | "low" أو "medium" أو "high" أو "auto". الافتراضي: "medium" |
image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.
مثال
import base64
response = client.images.edit(
model="gpt-image-2.5-flare",
image=open("input.png", "rb"),
prompt="Change the background to a sunset beach",
size="1024x1024",
n=1
)
# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
f.write(base64.b64decode(edited_b64))
Realtime API مع WebSocket
اتصالات WebSocket هي API مدعومة على نطاق واسع لنقل البيانات في الزمن الحقيقي، وخيار ممتاز للاتصال بـ Smart AIPI Realtime API في تطبيقات الخادم إلى الخادم.
في تكامل من خادم إلى خادم، يتصل نظام backend الخاص بك عبر WebSocket مباشرةً بـ Realtime API. استخدم مفتاح API قياسيًا للمصادقة على الاتصال، لأن token متاح فقط على backend الآمن لديك.
الاتصال عبر WebSocket
فيما يلي عدة أمثلة على الاتصال عبر WebSocket. بالإضافة إلى استخدام WebSocket URL، ستحتاج إلى تمرير ترويسة مصادقة باستخدام API key الخاصة بك.
import WebSocket from "ws";
const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
headers: {
Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
},
});
ws.on("open", function open() {
console.log("Connected to server.");
// Send a response.create event
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-6-astra",
store: false,
input: [{ role: "user", content: "Hello!" }],
stream: true,
},
}));
});
ws.on("message", function incoming(message) {
const event = JSON.parse(message.toString());
console.log(event.type, event);
});
إرسال واستقبال الأحداث
تتم إدارة الجلسات باستخدام أحداث JSON مرسلة من العميل والخادم عبر اتصال WebSocket. لفّ طلبك داخل response.create envelope:
| الحدث | الاتجاه | الوصف |
|---|---|---|
| response.create | العميل | أرسل طلبًا (يلف النموذج والمدخلات والمعاملات الخاصة بك) |
| response.created | الخادم | تم قبول الجلسة وبدأت المعالجة |
| response.output_text.delta | الخادم | جزء نصي متدفق |
| response.completed | الخادم | حدث نهائي يتضمن الاستجابة الكاملة والاستخدام |
| response.failed | الخادم | حدث نهائي يشير إلى وجود خطأ |
"store": false في response envelope. يستمر الاتصال عبر عدة turns — أرسل إطارات response.create إضافية دون إعادة الاتصال.
عرض النماذج
استرجع قائمة بجميع النماذج المتاحة. استخدم هذا endpoint لاكتشاف النماذج المتاحة لحسابك بشكل ديناميكي.
تنسيق الاستجابة
{
"object": "list",
"data": [
{
"id": "gpt-6-astra",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
{
"id": "gpt-5.3-codex",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
// ... more models
]
}
مثال
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# List all available models
models = client.models.list()
for model in models.data:
print(model.id)
النماذج المتاحة
سلسلة GPT
- gpt-6-astra الأحدث
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
- gpt-5.5
- gpt-5.4-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano completions فقط
سلسلة Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Messages API
توافق كامل مع Anthropic Messages API. استخدم أي Anthropic SDK أو Claude Code أو تطبيق يتحدث بروتوكول Anthropic — فقط غيّر base URL.
الميزات المدعومة
- ✓ Streaming (بروتوكول Anthropic SSE الكامل)
- ✓ استخدام الأدوات / function calling
- ✓ رسائل System (بتنسيق string وarray)
- ✓ مدخلات الصور (base64 وURL)
- ✓ عدّ Token (
/v1/messages/count_tokens) - ✓ تفكير / reasoning موسع
أمثلة الكود
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.smartaipi.com",
api_key="your-api-key"
)
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)
مطابقة النماذج
يتم قبول أسماء نماذج Claude وتوجيهها تلقائيًا إلى GPT-5.4 مع جهد reasoning متدرج. كل استجابة تتضمن x-actual-model header يعرض نموذج backend الحقيقي.
| نموذج Claude | الواجهة الخلفية | الاستدلال | الأفضل لـ |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | مرتفع | reasoning معقد، وهندسة معمارية |
| claude-sonnet-4-5-20250929 | gpt-5.4 | متوسط | برمجة يومية، جودة متوازنة |
| claude-haiku-4-5-20251001 | gpt-5.4 | منخفض | استجابات سريعة، مهام بسيطة |
Claude Code
استخدم Claude Code مع Smart AIPI كخلفية. دعم كامل لاستخدام الأدوات وstreaming والقدرات الوكيلة.
الإعداد التلقائي
npx smart-aipi claude
هذا يهيّئ ~/.claude/settings.json و ~/.claude.json تلقائيًا. إذا كان Claude Code معدًا بالفعل باستخدام حساب Anthropic، فسيعرض لك الإعداد اليدوي بدلًا من الكتابة فوقه.
الإعداد اليدوي
أضف إلى ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
"ANTHROPIC_API_KEY": "sk-your-key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
},
"model": "opus"
}
ثم أضف "hasCompletedOnboarding": true إلى ~/.claude.json لتخطي معالج الإعداد.
بعد تعديل الإعدادات، أعد تشغيل Claude Code لتطبيق التغييرات. إذا كان Claude Code متصلًا بالفعل بحساب Anthropic حقيقي، فإن تعيين env vars هذه سيتجاوز ذلك الاتصال — استخدم مستوى المشروع .claude/settings.json للاحتفاظ بكليهما.
ماذا يفعل كل إعداد
"model": "opus"— النموذج الرئيسي. يستخدم claude-opus-4-6 (reasoning مرتفع) لجميع المهام الأساسية.ANTHROPIC_DEFAULT_HAIKU_MODEL— نموذج الخلفية. يستخدم claude-haiku-4-5 (reasoning منخفض) للمهام الخلفية السريعة مثل فهرسة الملفات.- بدّل بين النماذج أثناء الجلسة باستخدام
/model sonnet,/model opus, أو/model haiku.
| الاسم البديل | نموذج Claude | الواجهة الخلفية | الاستدلال |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | مرتفع |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | متوسط |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | منخفض |
OpenCode
استخدم Smart AIPI كخلفية OpenCode الخاصة بك عبر SDK المتوافق مع OpenAI.
إعداد التهيئة
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"smart-aipi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Smart AIPI",
"options": {
"baseURL": "https://api.smartaipi.com/v1",
"apiKey": "YOUR_API_KEY"
},
"models": {
"gpt-6-astra": {
"name": "GPT-6 Astra",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.3-codex": {
"name": "GPT-5.3 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.2-codex": {
"name": "GPT-5.2 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
}
}
}
},
"model": "smart-aipi/gpt-6-astra"
}
Codex CLI
استخدم Smart AIPI مع أداة Codex CLI من OpenAI. يجب تهيئة ثلاثة ملفات.
الإعداد التلقائي
npx smart-aipi codex
هذا يهيّئ الملفات الثلاثة أدناه تلقائيًا. بعد التشغيل، أضف model_reasoning_effort إلى الإعدادات الخاصة بك (راجع الخطوة 2).
الإعداد اليدوي
هيّئ هذه الملفات الثلاثة:
1. API Key — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. النموذج وReasoning — ~/.codex/config.toml
احرص دائمًا على تضمين model_reasoning_effort - مطلوب للنماذج المخصصة.
بدونه، سيستخدم Codex افتراضيًا عدم وجود reasoning ولن يعمل بشكل صحيح. استخدم "high" لأفضل النتائج.
model = "gpt-6-astra"
model_reasoning_effort = "high"
مستويات reasoning الصالحة: low, medium, high (موصى به)، xhigh.
3. متغيرات البيئة — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
بعد تعديل shell profile، أعد تشغيل الطرفية أو شغّل source ~/.zshrc لتطبيق التغييرات.
ثم استخدم Codex بشكل طبيعي:
codex "fix this bug"
دليل سرعة Codex WebSocket
وضع WebSocket يكون عادة أسرع لتدفقات البرمجة الوكيلة التي تتضمن الكثير من استدعاءات الأدوات. بدلًا من إعادة الاتصال مرارًا عبر HTTP وإعادة إرسال request envelopes كاملة، يحتفظ Codex باتصال حي واحد ويرسل turns تدريجية، مما يقلل overhead الخاص بالمتابعة.
تفعيل WebSockets في Codex
استخدم علامة ميزة WebSocket v2 في ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
المكافئ في CLI:
codex --enable responses_websockets_v2
قد تستخدم الإصدارات الأقدم العلامة القديمة:
[features]
responses_websockets = true
سلوك معروف في Homebrew
في بعض الإصدارات الموزعة عبر Homebrew، قد تتعطل WebSocket turns أثناء المهام الطويلة ثم تعود بصمت إلى HTTP. لاحظنا ذلك خصوصًا في حلقات استدعاء الأدوات المعقدة. إعادة البناء من الكود مفتوح المصدر باستخدام الإصلاحات أدناه حسّنت الاستقرار والسرعة معًا.
بعد الدمج: أصلح خطأ WebSocket مفتوح المصدر
بعد دمج الفرع الخاص بك، استخدم قائمة التحقق هذه للتأكد من أن الإصلاح موجود في الملف التنفيذي المحلي لديك:
# 1) Pull merged main
git checkout main
git pull --ff-only
# 2) Confirm websocket flags exist
codex features list | rg responses_websockets
# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta
# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2
إذا احتجت إلى التصحيح يدويًا، فتحقق من وجود هذه الإصلاحات على مستوى الكود:
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);
# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }
Cursor وCline
استخدم Smart AIPI مع Cursor IDE أو إضافة Cline لـ VS Code.
Cursor
- افتح إعدادات Cursor
- اذهب إلى تبويب
Modelsتبويب - انقر على
+ Add Model - اضبط Base URL:
https://api.smartaipi.com/v1 - أدخل API key الخاصة بك
- Model:
gpt-6-astra
Cline (VS Code)
- افتح إعدادات Cline في VS Code
- اختر
OpenAI Compatible - Base URL:
https://api.smartaipi.com/v1 - أدخل API key الخاصة بك
- Model:
gpt-6-astra
دردشة
استخدم Smart AIPI Chat على chat.smartaipi.com. لسير عمل النصوص والصور والفيديو والكود والبحث والصوت.
الميزات
- ✓ دردشة — محادثات نصية عامة الغرض باستخدام نماذج Smart AIPI.
- ✓ صور — إنشاء الصور وتعديلها من prompts.
- ✓ فيديو — إنشاء فيديوهات من مدخلات نصية أو صور.
- ✓ الكود — مساعدة وتحرير الكود في المتصفح.
- ✓ بحث — استخدم البحث على الويب للحصول على إجابات موثوقة.
- ✓ صوت — تحدث مع النموذج باستخدام الإدخال الصوتي والاستجابات الصوتية.
البدء
- 1. افتح chat.smartaipi.com
- 2. سجّل الدخول أو أنشئ حسابًا.
- 3. ابدأ الدردشة بالنص أو الصور أو الفيديو أو الكود أو البحث أو الصوت.
الفوترة: يتم احتساب الاستخدام على اعتمادات Smart AIPI الخاصة بك.
مختبر API
اختبر API مباشرة من متصفحك: