Link to this sectionمرجع REST API#
توفر Ultralytics Platform واجهة REST API شاملة للوصول البرمجي إلى مجموعات البيانات والنماذج والتدريب وعمليات النشر.

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsاستكشف مرجع API التفاعلي الكامل في مستندات Ultralytics Platform API.
Link to this sectionنظرة عامة على API#
تم تنظيم API حول موارد المنصة الأساسية:
graph LR
A[API Key] --> B[Datasets]
A --> C[Projects]
A --> D[Models]
A --> E[Deployments]
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]
B -->|auto-annotate| B| المورد | الوصف | العمليات الرئيسية |
|---|---|---|
| Datasets | مجموعات الصور المصنفة | CRUD، صور، تسميات، تصدير، إصدارات، استنساخ |
| Projects | مساحات عمل التدريب | CRUD، استنساخ، أيقونة |
| Models | نقاط التحقق المدربة | CRUD، تنبؤ، تنزيل، استنساخ، تصدير |
| Deployments | نقاط نهاية الاستدلال المخصصة | CRUD، تشغيل/إيقاف، مقاييس، سجلات، حالة |
| Exports | وظائف تحويل التنسيق | إنشاء، حالة، تنزيل |
| Training | وظائف تدريب Cloud GPU | بدء، حالة، إلغاء |
| Billing | الأرصدة والاشتراكات | الرصيد، شحن الرصيد، طرق الدفع |
| Teams | التعاون في مساحة العمل | الأعضاء، الدعوات، الأدوار |
Link to this sectionالمصادقة#
تستخدم واجهات برمجة تطبيقات الموارد مثل مجموعات البيانات والمشاريع والنماذج والتدريب والتصدير والتنبؤات مصادقة مفتاح API. تدعم نقاط النهاية العامة (عرض مجموعات البيانات والمشاريع والنماذج العامة) وصول القراءة المجهول بدون مفتاح. تتطلب المسارات الموجهة للحساب - بما في ذلك النشاط والإعدادات والفرق والفواتير وتدفقات GDPR - حاليًا جلسة متصفح مصادق عليها وليست متاحة عبر مفتاح API.
Link to this sectionالحصول على مفتاح API#
- انتقل إلى
Settings>API Keys - انقر على
Create Key - انسخ المفتاح الذي تم إنشاؤه
راجع API Keys للحصول على تعليمات مفصلة.
Link to this sectionرأس التفويض#
قم بتضمين مفتاح API الخاص بك في جميع الطلبات:
Authorization: Bearer YOUR_API_KEYتستخدم مفاتيح API تنسيق ul_ متبوعًا بـ 40 حرفًا ست عشريًا. حافظ على سرية مفتاحك -- لا تقم أبدًا بإيداعه في التحكم في الإصدار أو مشاركته علنًا.
Link to this sectionمثال#
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsLink to this sectionعنوان URL الأساسي#
تستخدم جميع نقاط نهاية API:
https://platform.ultralytics.com/api
Link to this sectionحدود المعدل#
يفرض API حدود معدل لكل مفتاح API (نافذة منزلقة، مدعومة بـ Upstash Redis) للحماية من إساءة الاستخدام مع الحفاظ على الاستخدام المشروع دون قيود. يتم حماية حركة المرور المجهولة بالإضافة إلى ذلك من خلال ضوابط إساءة الاستخدام على مستوى منصة Vercel.
عند تقييد السرعة، يعيد API رمز 429 مع بيانات تعريف إعادة المحاولة:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZLink to this sectionحدود كل مفتاح API#
يتم تطبيق حدود المعدل تلقائيًا بناءً على نقطة النهاية التي يتم استدعاؤها. تحتوي العمليات المكلفة على حدود أكثر صرامة لمنع إساءة الاستخدام، بينما تشترك عمليات CRUD القياسية في حد افتراضي سخي:
| نقطة النهاية | الحد | ينطبق على |
|---|---|---|
| Default | 100 طلب/دقيقة | جميع نقاط النهاية غير المدرجة أدناه (قائمة، الحصول، إنشاء، تحديث، حذف) |
| Training | 10 طلبات/دقيقة | بدء وظائف التدريب السحابية (POST /api/training/start) |
| Upload | 10 طلبات/دقيقة | تحميل الملفات، عناوين URL الموقعة، واستيعاب مجموعة البيانات |
| Predict | 20 طلب/دقيقة | استدلال النموذج المشترك (POST /api/models/{id}/predict) |
| التصدير | 20 طلب/دقيقة | تصديرات تنسيق النموذج (POST /api/exports)، تصديرات NDJSON لمجموعة البيانات، وإنشاء الإصدار |
| Download | 30 طلب/دقيقة | تنزيلات ملف أوزان النموذج (GET /api/models/{id}/files) |
| Dedicated | Unlimited | Dedicated endpoints — خدمتك الخاصة، لا توجد حدود API |
كل فئة لديها عداد مستقل لكل مفتاح API. على سبيل المثال، إجراء 20 طلب تنبؤ لا يؤثر على مخصصاتك الافتراضية البالغة 100 طلب/دقيقة.
Link to this sectionنقاط النهاية المخصصة (غير محدودة)#
Dedicated endpoints لا تخضع لحدود معدل مفتاح API. عند نشر نموذج في نقطة نهاية مخصصة، تذهب الطلبات إلى عنوان URL لنقطة النهاية تلك (على سبيل المثال، https://predict-abc123.run.app/predict) مباشرة إلى خدمتك المخصصة دون أي تحديد للمعدل من المنصة. أنت تدفع مقابل الحوسبة، لذا تحصل على إنتاجية من تكوين خدمتك المخصصة بدلاً من حدود API المشتركة.
عند تلقي رمز حالة 429، انتظر حتى Retry-After (أو حتى X-RateLimit-Reset) قبل إعادة المحاولة. راجع الأسئلة الشائعة حول حدود المعدل للحصول على تطبيق التراجع الأسي.
Link to this sectionتنسيق الاستجابة#
Link to this sectionاستجابات النجاح#
تعيد الاستجابات JSON مع حقول خاصة بالمورد:
{
"datasets": [...],
"total": 100
}Link to this sectionاستجابات الخطأ#
{
"error": "Dataset not found"
}| حالة HTTP | المعنى |
|---|---|
200 | نجاح |
201 | تم الإنشاء |
400 | طلب غير صالح |
401 | المصادقة مطلوبة |
403 | أذونات غير كافية |
404 | المورد غير موجود |
409 | تعارض (مكرر) |
429 | تم تجاوز حد المعدل |
500 | خطأ في الخادم |
Link to this sectionAPI مجموعات البيانات#
إنشاء وتصفح وإدارة مجموعات بيانات الصور المصنفة لتدريب نماذج YOLO. راجع وثائق مجموعات البيانات.
Link to this sectionسرد مجموعات البيانات#
GET /api/datasetsمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
username | string | التصفية حسب اسم المستخدم |
slug | string | جلب مجموعة بيانات واحدة حسب الرمز المختصر (slug) |
limit | int | العناصر في كل صفحة (الافتراضي: 1000، الحد الأقصى: 1000) |
owner | string | اسم مستخدم مالك مساحة العمل |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"الاستجابة:
{
"datasets": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"classNames": ["person", "car"],
"visibility": "private",
"username": "johndoe",
"starCount": 3,
"isStarred": false,
"sampleImages": [
{
"url": "https://storage.example.com/...",
"width": 1920,
"height": 1080,
"labels": [{ "classId": 0, "bbox": [0.5, 0.4, 0.3, 0.6] }]
}
],
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-16T08:30:00Z"
}
],
"total": 1,
"region": "us"
}Link to this sectionالحصول على مجموعة بيانات#
GET /api/datasets/{datasetId}إرجاع تفاصيل مجموعة البيانات الكاملة بما في ذلك البيانات الوصفية، وأسماء الفئات، وأعداد التقسيمات.
Link to this sectionإنشاء مجموعة بيانات#
POST /api/datasetsالجسم (Body):
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}قيم task الصالحة: detect، segment، semantic، classify، pose، obb.
Link to this sectionتحديث مجموعة بيانات#
PATCH /api/datasets/{datasetId}الجسم (تحديث جزئي):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}Link to this sectionأيقونة مجموعة البيانات#
تحميل أيقونة مجموعة البيانات (نموذج متعدد الأجزاء مع ملف صورة):
POST /api/datasets/{datasetId}/iconإزالة أيقونة مجموعة البيانات:
DELETE /api/datasets/{datasetId}/iconكلاهما يتطلب جلسة متصفح نشطة على المنصة — غير متاح عبر مفتاح API.
Link to this sectionحذف مجموعة بيانات#
DELETE /api/datasets/{datasetId}حذف ناعم لمجموعة البيانات (تُنقل إلى سلة المهملات، ويمكن استردادها خلال 30 يومًا).
Link to this sectionاستنساخ مجموعة البيانات#
POST /api/datasets/{datasetId}/cloneينشئ نسخة من مجموعة البيانات مع جميع الصور والتسميات. لا يمكن استنساخ سوى مجموعات البيانات العامة أو المملوكة أو القابلة للتعديل في مساحة العمل. يتطلب جلسة متصفح نشطة للمنصة — غير متاح عبر مفتاح API.
الجسم (جميع الحقول اختيارية):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}Link to this sectionتصدير مجموعة البيانات#
GET /api/datasets/{datasetId}/exportإرجاع استجابة JSON مع رابط تنزيل موقع لأحدث تصدير لمجموعة البيانات.
معلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
v | integer | رقم الإصدار (يبدأ من 1). إذا تم حذفه، يتم إرجاع أحدث تصدير (غير مخزن مؤقتًا). |
الاستجابة:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}Link to this sectionإنشاء إصدار مجموعة بيانات#
POST /api/datasets/{datasetId}/exportإنشاء لقطة إصدار مرقمة جديدة لمجموعة البيانات. للمالك فقط. يسجل الإصدار عدد الصور الحالي، وعدد الفئات، وعدد التعليقات التوضيحية، وتوزيع التقسيم، ثم يقوم بإنشاء وتخزين تصدير NDJSON غير قابل للتغيير.
جسم الطلب:
{
"description": "Added 500 training images"
}جميع الحقول اختيارية. حقل description هو تسمية يوفرها المستخدم للإصدار.
الاستجابة:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}Link to this sectionتحديث وصف الإصدار#
PATCH /api/datasets/{datasetId}/exportتحديث وصف إصدار موجود. للمالك فقط.
جسم الطلب:
{
"version": 2,
"description": "Fixed mislabeled classes"
}الاستجابة:
{
"ok": true
}Link to this sectionالحصول على إحصائيات الفئة#
GET /api/datasets/{datasetId}/class-statsإرجاع توزيع الفئات، وخريطة الحرارة للموقع، وإحصائيات الأبعاد. يتم تخزين النتائج مؤقتًا لمدة تصل إلى 5 دقائق.
الاستجابة:
{
"classes": [{ "classId": 0, "count": 1500, "imageCount": 450 }],
"imageStats": {
"widthHistogram": [{ "bin": 640, "count": 120 }],
"heightHistogram": [{ "bin": 480, "count": 95 }],
"pointsHistogram": [{ "bin": 4, "count": 200 }]
},
"locationHeatmap": {
"bins": [
[5, 10],
[8, 3]
],
"maxCount": 50
},
"dimensionHeatmap": {
"bins": [
[2, 5],
[3, 1]
],
"maxCount": 12,
"minWidth": 10,
"maxWidth": 1920,
"minHeight": 10,
"maxHeight": 1080
},
"classNames": ["person", "car", "dog"],
"cached": true,
"sampled": false,
"sampleSize": 1000
}Link to this sectionإدارة الفئات#
دمج الفئات (إعادة تعيين التعليقات التوضيحية من الفئات المصدر إلى فئة مستهدفة، ثم إزالة المصادر):
POST /api/datasets/{datasetId}/classes/mergeحذف الفئات:
POST /api/datasets/{datasetId}/classes/deleteLink to this sectionإعادة توزيع التقسيمات#
POST /api/datasets/{datasetId}/splits/redistributeإعادة تعيين الصور عبر تقسيمات التدريب/التحقق/الاختبار (train/val/test). تتطلب جميعها جلسة متصفح نشطة للمنصة — غير متاح عبر مفتاح API.
Link to this sectionتضمينات (Embeddings) مجموعة البيانات#
GET /api/datasets/{datasetId}/embeddings
POST /api/datasets/{datasetId}/embeddings
DELETE /api/datasets/{datasetId}/embeddingsيقوم GET بإرجاع ملخص تحليل UMAP الحالي وحالة الوظيفة النشطة؛ ويقوم POST بوضع وظيفة تحليل التضمينات في قائمة الانتظار؛ ويقوم DELETE بإلغاء الوظيفة النشطة.
Link to this sectionتجميع الصور#
GET /api/datasets/{datasetId}/images/clusteringإرجاع تخطيط UMAP ثنائي الأبعاد والبيانات الوصفية لكل صورة لعرض التشتت المجمع (مقسم إلى صفحات ومحدد المعدل).
Link to this sectionالحصول على النماذج المدربة على مجموعة البيانات#
GET /api/datasets/{datasetId}/modelsإرجاع النماذج التي تم تدريبها باستخدام مجموعة البيانات هذه.
الاستجابة:
{
"models": [
{
"_id": "model_abc123",
"name": "experiment-1",
"slug": "experiment-1",
"status": "completed",
"task": "detect",
"epochs": 100,
"bestEpoch": 87,
"projectId": "project_xyz",
"projectSlug": "my-project",
"projectIconColor": "#3b82f6",
"projectIconLetter": "M",
"username": "johndoe",
"startedAt": "2024-01-14T22:00:00Z",
"completedAt": "2024-01-15T10:00:00Z",
"createdAt": "2024-01-14T21:55:00Z",
"metrics": {
"mAP50": 0.85,
"mAP50-95": 0.72,
"precision": 0.88,
"recall": 0.81
}
}
],
"count": 1
}Link to this sectionالتصنيف التلقائي لمجموعة البيانات#
POST /api/datasets/{datasetId}/predictتشغيل استدلال YOLO على صور مجموعة البيانات لإنشاء التعليقات التوضيحية تلقائيًا. يستخدم نموذجًا محددًا للتنبؤ بالملصقات للصور غير المعلقة.
الجسم (Body):
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
imageHash | string | نعم | تجزئة (Hash) الصورة المراد إضافة تعليق توضيحي لها |
modelId | string | لا | النموذج المستخدم للاستدلال، كـ ul:// URI (على سبيل المثال ul://username/project/model). إذا تم حذفه، يتم استخدام النموذج الافتراضي الخاص بمهمة مجموعة البيانات. |
confidence | float | لا | عتبة الثقة (الافتراضي: 0.25) |
iou | float | لا | عتبة IoU (الافتراضي: 0.7) |
Link to this sectionاستيعاب مجموعة البيانات#
POST /api/datasets/ingestإنشاء وظيفة استيعاب لمجموعة البيانات لمعالجة ملفات ZIP أو TAR المرفوعة، بما في ذلك .tar.gz و .tgz، التي تحتوي على صور وملصقات.
يأخذ نص الطلب واحداً فقط من sessionId (جلسة تحميل لأرشيف مرفوع) أو sourceUrl (رابط ZIP أو TAR أو TAR.GZ أو TGZ أو NDJSON عن بُعد)، بالإضافة إلى targetSplit اختياري (train أو val أو test) لتجاوز هيكل تقسيم الأرشيف.
graph LR
A[Upload Archive] --> B[POST /api/datasets/ingest]
B --> C[Process Archive]
C --> D[Extract images]
C --> E[Parse labels]
C --> F[Generate thumbnails]
D & E & F --> G[Dataset ready]Link to this sectionصور مجموعة البيانات#
Link to this sectionسرد الصور#
GET /api/datasets/{datasetId}/imagesمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
split | string | التصفية حسب التقسيم: train، val، test |
offset | int | إزاحة الترقيم (الافتراضي: 0) |
limit | int | العناصر في كل صفحة (الافتراضي: 50، الحد الأقصى: 5000) |
sort | string | ترتيب الفرز: newest، oldest، name-asc، name-desc، height-asc، height-desc، width-asc، width-desc، size-asc، size-desc، labels-asc، labels-desc (بعضها معطل لمجموعات بيانات الصور التي تزيد عن 100 ألف) |
hasLabel | string | التصفية حسب حالة الملصق (true أو false) |
hasError | string | التصفية حسب حالة الخطأ (true أو false) |
search | string | البحث حسب اسم الملف أو تجزئة الصورة |
classIds | string | معرفات الفئات مفصولة بفواصل؛ يقوم بإرجاع الصور التي تحتوي على أي من الفئات المحددة |
includeThumbnails | string | تضمين روابط الصور المصغرة الموقعة (الافتراضي: true) |
includeImageUrls | string | تضمين روابط الصور الكاملة الموقعة (الافتراضي: false) |
Link to this sectionالحصول على روابط الصور الموقعة#
POST /api/datasets/{datasetId}/images/urlsالحصول على روابط موقعة لمجموعة من تجزئات الصور (للعرض في المتصفح).
Link to this sectionحذف صورة#
DELETE /api/datasets/{datasetId}/images/{hash}Link to this sectionالحصول على ملصقات الصور#
GET /api/datasets/{datasetId}/images/{hash}/labelsإرجاع التعليقات التوضيحية وأسماء الفئات لصورة معينة.
Link to this sectionتحديث ملصقات الصور#
PUT /api/datasets/{datasetId}/images/{hash}/labelsالجسم (Body):
{
"labels": [
{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] },
{ "classId": 1, "segments": [0.1, 0.2, 0.3, 0.2, 0.2, 0.4] }
]
}تستخدم إحداثيات الملصقات قيم YOLO المطبعة بين 0 و 1. تستخدم صناديق الإحاطة (Bounding boxes) [x_center, y_center, width, height]. تستخدم ملصقات التقسيم segments، وهي قائمة مسطحة من رؤوس المضلعات [x1, y1, x2, y2, ...].
Link to this sectionعمليات الصور الجماعية#
نقل الصور بين التقسيمات (train/val/test) داخل مجموعة البيانات:
PATCH /api/datasets/{datasetId}/images/bulkحذف الصور بشكل جماعي:
DELETE /api/datasets/{datasetId}/images/bulkLink to this sectionAPI المشاريع#
نظم نماذجك في مشاريع. ينتمي كل نموذج إلى مشروع واحد. راجع وثائق المشاريع.
Link to this sectionسرد المشاريع#
GET /api/projectsمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
username | string | التصفية حسب اسم المستخدم |
limit | int | العناصر في كل صفحة |
owner | string | اسم مستخدم مالك مساحة العمل |
Link to this sectionالحصول على مشروع#
GET /api/projects/{projectId}Link to this sectionإنشاء مشروع#
POST /api/projectscurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "my-project", "slug": "my-project", "description": "Detection experiments"}' \
https://platform.ultralytics.com/api/projectsLink to this sectionتحديث مشروع#
PATCH /api/projects/{projectId}Link to this sectionحذف مشروع#
DELETE /api/projects/{projectId}حذف ناعم للمشروع (تم نقله إلى سلة المهملات).
Link to this sectionاستنساخ مشروع#
POST /api/projects/{projectId}/cloneاستنساخ مشروع عام (مع جميع نماذجه) إلى مساحة عملك. يتطلب جلسة متصفح منصة نشطة - غير متاح عبر مفتاح API.
Link to this sectionأيقونة المشروع#
رفع أيقونة مشروع (نموذج متعدد الأجزاء مع ملف صورة):
POST /api/projects/{projectId}/iconإزالة أيقونة المشروع:
DELETE /api/projects/{projectId}/iconكلاهما يتطلب جلسة متصفح نشطة على المنصة — غير متاح عبر مفتاح API.
Link to this sectionAPI النماذج#
إدارة نماذج YOLO المدربة — عرض المقاييس، وتنزيل الأوزان، وتشغيل الاستدلال، والتصدير إلى تنسيقات أخرى. انظر توثيق النماذج.
Link to this sectionسرد النماذج#
GET /api/modelsمعلمات الاستعلام:
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
projectId | string | نعم | معرف المشروع (مطلوب) |
fields | string | لا | مجموعة الحقول: summary، charts |
ids | string | لا | معرفات النماذج مفصولة بفواصل |
limit | int | لا | الحد الأقصى للنتائج (الافتراضي 20، الحد الأقصى 100) |
Link to this sectionسرد النماذج المكتملة#
GET /api/models/completedإرجاع النماذج التي أنهت التدريب (للاستخدام في محددات النماذج والنشر).
Link to this sectionالحصول على نموذج#
GET /api/models/{modelId}Link to this sectionإنشاء نموذج#
POST /api/modelsجسم JSON:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
projectId | string | نعم | معرف المشروع المستهدف |
slug | string | لا | رابط URL (أحرف أبجدية رقمية صغيرة/واصلات) |
name | string | لا | اسم العرض (بحد أقصى 100 حرف) |
description | string | لا | وصف النموذج (بحد أقصى 1000 حرف) |
task | string | لا | نوع المهمة (detect، segment، semantic، pose، obb، classify) |
تتم معالجة رفع ملفات .pt الخاصة بالنموذج بشكل منفصل. استخدم واجهة المنصة لسحب وإفلات ملفات النموذج في مشروع.
Link to this sectionتحديث نموذج#
PATCH /api/models/{modelId}Link to this sectionحذف نموذج#
DELETE /api/models/{modelId}Link to this sectionتنزيل ملفات النموذج#
GET /api/models/{modelId}/filesإرجاع روابط تنزيل موقعة لملفات النموذج.
Link to this sectionاستنساخ نموذج#
POST /api/models/{modelId}/cloneاستنساخ نموذج عام إلى أحد مشاريعك. يتطلب جلسة متصفح نشطة على المنصة — غير متاح عبر مفتاح API.
الجسم (Body):
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
targetProjectSlug | string | نعم | رابط المشروع الوجهة |
modelName | string | لا | اسم النموذج المستنسخ |
description | string | لا | وصف النموذج |
owner | string | لا | اسم مستخدم الفريق (لاستنساخ مساحة العمل) |
Link to this sectionتتبع التنزيل#
POST /api/models/{modelId}/track-downloadتتبع تحليلات تنزيل النموذج.
Link to this sectionتشغيل الاستنتاج#
POST /api/models/{modelId}/predictنموذج Multipart:
| الحقل | النوع | الوصف |
|---|---|---|
file | ملف | ملف صورة أو فيديو (على سبيل المثال JPG أو PNG أو WebP أو BMP أو TIFF؛ MP4 أو MOV أو AVI) |
conf | float | عتبة الثقة (الافتراضي: 0.25) |
iou | float | عتبة IoU (الافتراضي: 0.7) |
imgsz | int | حجم الصورة بالبكسل (الافتراضي: 640) |
source | string | رابط صورة أو صورة مشفرة بنظام base64 (بديل لـ file) |
الحد الأقصى لحجم التحميل هو 100 ميجابايت.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predictالاستجابة:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}Link to this sectionالحصول على رمز الاستدلال (Predict Token)#
POST /api/models/{modelId}/predict/tokenيتم استخدام هذا المسار بواسطة علامة التبويب Predict داخل التطبيق لإصدار رموز استدلال قصيرة العمر لاتصالات المتصفح المباشرة بـ predict-service (زمن انتقال أقل، بدون وكيل API). يتطلب جلسة متصفح نشطة على المنصة وهو غير متاح عبر مفتاح API. للاستدلال البرمجي، اتصل بـ POST /api/models/{modelId}/predict باستخدام مفتاح API الخاص بك.
Link to this sectionتسخين النموذج (Warmup)#
POST /api/models/{modelId}/predict/warmupيتم استخدام مسار التسخين بواسطة علامة التبويب Predict لتحميل أوزان النموذج مسبقاً على خدمة الاستدلال قبل أول استدلال يقوم به المستخدم. يتطلب جلسة متصفح نشطة على المنصة وهو غير متاح عبر مفتاح API.
Link to this sectionAPI التدريب#
بدء تدريب YOLO على GPUs سحابية (24 نوعاً من GPU من RTX 2000 Ada إلى B300) ومراقبة التقدم في الوقت الفعلي. انظر توثيق التدريب السحابي.
graph LR
A[POST /training/start] --> B[Job Created]
B --> C{Training}
C -->|progress| D[GET /models/id/training]
C -->|cancel| E[DELETE /models/id/training]
C -->|complete| F[Model Ready]
F --> G[Deploy or Export]Link to this sectionبدء التدريب#
POST /api/training/startcurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/startأنواع GPU المتاحة تشمل rtx-4090، a100-80gb-pcie، a100-80gb-sxm، h100-sxm، rtx-pro-6000، b300، وغيرها. انظر التدريب السحابي للحصول على القائمة الكاملة مع الأسعار.
Link to this sectionالحصول على توفر GPU#
GET /api/training/gpu-availabilityإرجاع حالة مخزون GPU الحالية (High أو Medium أو Low أو null) مصنفة حسب معرف نوع GPU. عام، لا يتطلب مصادقة؛ مؤقت لمدة 5 دقائق.
Link to this sectionالحصول على حالة التدريب#
GET /api/models/{modelId}/trainingإرجاع حالة مهمة التدريب الحالية، والمقاييس، والتقدم لنموذج. المشاريع العامة يمكن الوصول إليها بشكل مجهول؛ المشاريع الخاصة تتطلب جلسة متصفح نشطة على المنصة (هذا المسار لا يقبل مصادقة مفتاح API).
Link to this sectionإلغاء التدريب#
DELETE /api/models/{modelId}/trainingإنهاء مثيل الحوسبة قيد التشغيل ووسم المهمة كملغاة. يتطلب جلسة متصفح نشطة على المنصة — غير متاح عبر مفتاح API.
Link to this sectionAPI النشر#
نشر النماذج على نقاط نهاية استدلال مخصصة مع فحص الصحة والمراقبة. عمليات النشر الجديدة تستخدم التوسع إلى الصفر (scale-to-zero) بشكل افتراضي، ويقبل الـ API كائن resources اختياري. انظر توثيق نقاط النهاية.
فقط GET /api/deployments، POST /api/deployments، GET /api/deployments/{deploymentId}، و DELETE /api/deployments/{deploymentId} تدعم مصادقة مفتاح API. المسارات الفرعية predict و health و logs و metrics و start و stop تتطلب جلسة متصفح نشطة على المنصة — فهي وكلاء تسهيل لواجهة المستخدم داخل التطبيق. للاستدلال البرمجي، اتصل برابط URL الخاص بنقطة نهاية النشر (مثلاً: https://predict-abc123.run.app/predict) مباشرة باستخدام مفتاح API الخاص بك. نقاط النهاية المخصصة لا تخضع لحدود المعدل.
graph LR
A[Create] --> B[Deploying]
B --> C[Ready]
C -->|stop| D[Stopped]
D -->|start| C
C -->|delete| E[Deleted]
D -->|delete| E
C -->|predict| F[Inference Results]Link to this sectionسرد عمليات النشر#
GET /api/deploymentsمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
modelId | string | التصفية حسب النموذج |
status | string | التصفية حسب الحالة |
limit | int | الحد الأقصى للنتائج (الافتراضي: 20، الحد الأقصى: 100) |
owner | string | اسم مستخدم مالك مساحة العمل |
Link to this sectionإنشاء نشر#
POST /api/deploymentsالجسم (Body):
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
modelId | string | نعم | معرف النموذج للنشر |
name | string | نعم | اسم النشر |
region | string | نعم | منطقة النشر |
resources | كائن | لا | تكوين الموارد (cpu، memoryGi، minInstances، maxInstances) |
إنشاء نقطة نهاية استدلال مخصصة في المنطقة المحددة. نقطة النهاية متاحة عالمياً عبر رابط URL فريد.
يقوم مربع حوار النشر حالياً بتقديم قيم افتراضية ثابتة هي cpu=1 و memoryGi=2 و minInstances=0 و maxInstances=1. يقبل مسار الـ API كائن resources، لكن حدود الخطة تحد من minInstances عند 0 و maxInstances عند 1.
اختر منطقة قريبة من مستخدميك للحصول على أقل زمن انتقال. تعرض واجهة المنصة تقديرات زمن الانتقال لجميع المناطق الـ 43 المتاحة.
Link to this sectionالحصول على نشر#
GET /api/deployments/{deploymentId}Link to this sectionحذف نشر#
DELETE /api/deployments/{deploymentId}Link to this sectionبدء نشر#
POST /api/deployments/{deploymentId}/startاستئناف عملية نشر متوقفة.
Link to this sectionإيقاف نشر#
POST /api/deployments/{deploymentId}/stopإيقاف مؤقت لعملية نشر قيد التشغيل (يوقف الفوترة).
Link to this sectionفحص الصحة#
GET /api/deployments/{deploymentId}/healthإرجاع حالة صحة نقطة نهاية النشر.
Link to this sectionتشغيل الاستدلال على النشر#
POST /api/deployments/{deploymentId}/predictإرسال صورة مباشرة إلى نقطة نهاية النشر للاستدلال. يعادل وظيفياً استدلال النموذج، ولكن يتم توجيهه عبر نقطة النهاية المخصصة لزمن انتقال أقل.
نموذج Multipart:
| الحقل | النوع | الوصف |
|---|---|---|
file | ملف | ملف صورة (JPEG، PNG، WebP) |
conf | float | عتبة الثقة (الافتراضي: 0.25) |
iou | float | عتبة IoU (الافتراضي: 0.7) |
imgsz | int | حجم الصورة بالبكسل (الافتراضي: 640) |
Link to this sectionالحصول على المقاييس#
GET /api/deployments/{deploymentId}/metricsإرجاع مقاييس عدد الطلبات، وزمن الانتقال، ومعدل الخطأ مع بيانات الرسوم البيانية المصغرة (sparkline).
معلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
range | string | النطاق الزمني: 1h، 6h، 24h (افتراضي)، 7d، 30d |
sparkline | string | اضبطه على true للحصول على بيانات sparkline محسنة لعرض لوحة التحكم |
Link to this sectionالحصول على السجلات#
GET /api/deployments/{deploymentId}/logsمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
severity | string | مرشح مفصول بفواصل: DEBUG، INFO، WARNING، ERROR، CRITICAL |
limit | int | عدد الإدخالات (افتراضي: 50، حد أقصى: 200) |
pageToken | string | رمز الترقيم من الاستجابة السابقة |
Link to this sectionAPI المراقبة#
GET /api/monitoring هو مسار خاص بواجهة المستخدم فقط ويتطلب جلسة متصفح نشطة على المنصة. لا يقبل هذا المسار المصادقة عبر مفتاح API. يمكنك الاستعلام عن مقاييس النشر الفردية عبر المسارات المخصصة لكل عملية نشر (والتي تقتصر أيضاً على جلسة المتصفح) أو استخدام صادرات مراقبة السحابة على خدمة Cloud Run المنشورة للوصول البرمجي.
Link to this sectionالمقاييس المجمعة#
GET /api/monitoringإرجاع المقاييس المجمعة عبر جميع عمليات نشر المستخدم: إجمالي الطلبات، عمليات النشر النشطة، معدل الخطأ، ومتوسط زمن الاستجابة.
Link to this sectionAPI التصدير#
تحويل النماذج إلى تنسيقات محسنة مثل ONNX وTensorRT وCoreML وTFLite من أجل النشر على الحافة. راجع وثائق النشر.
Link to this sectionسرد عمليات التصدير#
GET /api/exportsمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
modelId | string | معرف النموذج (مطلوب) |
status | string | التصفية حسب الحالة |
limit | int | الحد الأقصى للنتائج (الافتراضي: 20، الحد الأقصى: 100) |
Link to this sectionإنشاء تصدير#
POST /api/exportsالجسم (Body):
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
modelId | string | نعم | معرف النموذج المصدر |
format | string | نعم | تنسيق التصدير (انظر الجدول أدناه) |
gpuType | string | شرطي | مطلوب عندما يكون format هو engine (TensorRT) |
args | كائن | لا | وسائط التصدير (imgsz، half، dynamic، إلخ) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exportsالتنسيقات المدعومة:
| التنسيق | القيمة | حالة الاستخدام |
|---|---|---|
| ONNX | onnx | الاستدلال عبر المنصات |
| TorchScript | torchscript | نشر PyTorch |
| OpenVINO | openvino | أجهزة Intel |
| TensorRT | engine | تحسين NVIDIA GPU |
| CoreML | coreml | أجهزة Apple |
| TFLite | tflite | الجوال والأنظمة المدمجة |
| TF SavedModel | saved_model | TensorFlow Serving |
| TF GraphDef | pb | رسم بياني مجمد لـ TensorFlow |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | شبكة عصبية للجوال |
| Edge TPU | edgetpu | أجهزة Google Coral |
| TF.js | tfjs | الاستدلال عبر المتصفح |
| MNN | mnn | الاستدلال عبر الجوال لـ Alibaba |
| RKNN | rknn | Rockchip NPU |
| Qualcomm | qnn | Qualcomm Snapdragon NPU |
| IMX | imx | مستشعر Sony IMX500 |
| Axelera | axelera | مسرعات Axelera AI |
| ExecuTorch | executorch | Meta ExecuTorch runtime |
| DeepX | deepx | مسرعات DeepX NPU |
Link to this sectionالحصول على حالة التصدير#
GET /api/exports/{exportId}Link to this sectionإلغاء التصدير#
DELETE /api/exports/{exportId}Link to this sectionتتبع تنزيل التصدير#
POST /api/exports/{exportId}/track-downloadLink to this sectionAPI النشاط#
عرض موجز للإجراءات الأخيرة على حسابك — عمليات التدريب، عمليات الرفع، والمزيد. راجع وثائق النشاط.
يتم تشغيل مسارات النشاط بواسطة طلبات مصادق عليها عبر المتصفح من واجهة المنصة. وهي ليست مكشوفة كـ API عام، ولا تقبل المصادقة عبر مفتاح API، كما أن أشكال المسارات أدناه موثقة للمرجعية فقط. استخدم موجز النشاط في واجهة المنصة لعرض الأحداث أو تحديدها أو أرشفتها.
Link to this sectionسرد النشاط#
GET /api/activityمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
limit | int | حجم الصفحة (الافتراضي: 20، الحد الأقصى: 100) |
page | int | رقم الصفحة (الافتراضي: 1) |
archived | boolean | true لعلامة تبويب الأرشفة، false لـ Inbox |
search | string | بحث غير حساس لحالة الأحرف في حقول الحدث |
Link to this sectionتحديد الأحداث كمقروءة#
POST /api/activity/mark-seenالجسم (Body):
{
"all": true
}أو قم بتمرير معرفات محددة:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}Link to this sectionأرشفة الأحداث#
POST /api/activity/archiveالجسم (Body):
{
"all": true,
"archive": true
}أو قم بتمرير معرفات محددة:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}Link to this sectionAPI سلة المهملات#
عرض واستعادة العناصر المحذوفة. يتم حذف العناصر نهائياً بعد 30 يوماً. راجع وثائق سلة المهملات.
Link to this sectionسرد سلة المهملات#
GET /api/trashمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
type | string | عامل التصفية: all، project، dataset، model |
page | int | رقم الصفحة (الافتراضي: 1) |
limit | int | العناصر في كل صفحة (الافتراضي: 50، الحد الأقصى: 200) |
owner | string | اسم مستخدم مالك مساحة العمل |
Link to this sectionاستعادة العنصر#
POST /api/trashالجسم (Body):
{
"id": "item_abc123",
"type": "dataset"
}Link to this sectionحذف العنصر نهائياً#
DELETE /api/trashالجسم (Body):
{
"id": "item_abc123",
"type": "dataset"
}لا يمكن التراجع عن الحذف النهائي. سيتم إزالة المورد وجميع البيانات المرتبطة به.
Link to this sectionإفراغ سلة المهملات#
DELETE /api/trash/emptyحذف جميع العناصر في سلة المهملات نهائياً.
يتطلب DELETE /api/trash/empty جلسة متصفح مصادق عليها ولا يتوفر عبر مفتاح API. استخدم زر إفراغ سلة المهملات في واجهة المستخدم بدلاً من ذلك.
Link to this sectionAPI الفوترة#
تحقق من رصيد نقاطك، واشترِ نقاطاً، واعرض سجل المعاملات، وقم بتهيئة إعادة التعبئة التلقائية. راجع وثائق الفوترة.
تستخدم مبالغ الفوترة السنتات (creditsCents) حيث 100 = $1.00.
Link to this sectionالحصول على الرصيد#
GET /api/billing/balanceمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
owner | string | اسم مستخدم مالك مساحة العمل |
الاستجابة:
{
"creditsCents": 2500,
"plan": "free"
}Link to this sectionالحصول على ملخص الاستخدام#
GET /api/billing/usage-summaryإرجاع تفاصيل الخطة والحدود ومقاييس الاستخدام.
Link to this sectionالحصول على المعاملات#
GET /api/billing/transactionsإرجاع سجل المعاملات (الأحدث أولاً).
معلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
owner | string | اسم مستخدم مالك مساحة العمل |
Link to this sectionإنشاء جلسة دفع#
POST /api/billing/checkout-sessionالجسم (Body):
{
"amount": 25,
"owner": "team-username"
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
amount | number | نعم | المبلغ بالدولار (5-1000 دولار) |
owner | string | لا | اسم مستخدم الفريق لإعادة تعبئة مساحة العمل (يتطلب دور المسؤول) |
إنشاء جلسة دفع لشراء النقاط.
Link to this sectionإنشاء دفع اشتراك#
POST /api/billing/subscription-checkoutإنشاء جلسة دفع لترقية اشتراك Pro.
الجسم (Body):
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
planId | string | نعم | الخطة المراد الاشتراك فيها (pro) |
billingCycle | string | لا | دورة الفوترة: monthly (افتراضي) أو yearly |
owner | string | لا | اسم مستخدم الفريق لترقيات مساحة العمل (يتطلب دور المسؤول) |
Link to this sectionإلغاء أو استئناف الاشتراك#
DELETE /api/billing/subscription-checkoutإلغاء اشتراك Pro في نهاية الفترة افتراضياً. أرسل {"resume": true} لاستئناف عملية إلغاء مجدولة بالفعل قبل انتهاء فترة الفوترة.
الجسم (Body):
{
"resume": true
}Link to this sectionإعادة التعبئة التلقائية#
إضافة الرصيد تلقائياً عندما ينخفض الرصيد عن حد معين.
Link to this sectionالحصول على إعدادات التعبئة التلقائية للرصيد#
GET /api/billing/auto-topupمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
owner | string | اسم مستخدم مالك مساحة العمل |
Link to this sectionتحديث إعدادات التعبئة التلقائية للرصيد#
PATCH /api/billing/auto-topupالجسم (Body):
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}Link to this sectionطرق الدفع#
Link to this sectionسرد طرق الدفع#
GET /api/billing/payment-methodsLink to this sectionإنشاء نية الإعداد#
POST /api/billing/payment-methods/setupإرجاع سر العميل لإضافة طريقة دفع جديدة.
Link to this sectionتعيين طريقة الدفع الافتراضية#
POST /api/billing/payment-methods/defaultالجسم (Body):
{
"paymentMethodId": "pm_123"
}Link to this sectionتحديث معلومات الفواتير#
PATCH /api/billing/payment-methodsالجسم (Body):
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}Link to this sectionحذف طريقة الدفع#
DELETE /api/billing/payment-methods/{id}Link to this sectionواجهة برمجة تطبيقات التخزين#
تحقق من تفاصيل استخدام التخزين حسب الفئة (مجموعات البيانات، النماذج، الصادرات) واطلع على أكبر عناصرك.
تتطلب مسارات التخزين جلسة متصفح منصة نشطة ولا يمكن الوصول إليها عبر مفتاح API. استخدم صفحة الإعدادات > الملف الشخصي في واجهة المستخدم للحصول على تحليلات تفاعلية.
Link to this sectionالحصول على معلومات التخزين#
GET /api/storageمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
details | boolean | اضبطه على true لتضمين topItems (أكبر مجموعات البيانات، والنماذج، والتصديرات). |
الاستجابة:
{
"tier": "free",
"usage": {
"storage": {
"current": 1073741824,
"limit": 107374182400,
"percent": 1.0
}
},
"region": "us",
"username": "johndoe",
"updatedAt": "2024-01-15T10:00:00Z",
"breakdown": {
"byCategory": {
"datasets": { "bytes": 536870912, "count": 2 },
"models": { "bytes": 268435456, "count": 4 },
"exports": { "bytes": 268435456, "count": 3 }
},
"topItems": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"sizeBytes": 536870912,
"type": "dataset"
},
{
"_id": "model_def456",
"name": "experiment-1",
"slug": "experiment-1",
"sizeBytes": 134217728,
"type": "model",
"parentName": "My Project",
"parentSlug": "my-project"
}
]
}
}Link to this sectionواجهة برمجة تطبيقات الرفع#
رفع الملفات مباشرة إلى التخزين السحابي باستخدام عناوين URL موقعة لعمليات نقل سريعة وموثوقة. يستخدم تدفقاً من خطوتين: الحصول على عنوان URL موقع، ثم رفع الملف. راجع وثائق البيانات.
Link to this sectionالحصول على عنوان URL موقع للرفع#
POST /api/upload/signed-urlطلب عنوان URL موقع لرفع ملف مباشرة إلى التخزين السحابي. يتجاوز عنوان URL الموقع خادم API لعمليات نقل الملفات الكبيرة.
الجسم (Body):
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}| الحقل | النوع | الوصف |
|---|---|---|
assetType | string | نوع الأصول: models, datasets, images, videos |
assetId | string | معرف الأصل المستهدف |
filename | string | اسم الملف الأصلي |
contentType | string | نوع MIME |
totalBytes | int | حجم الملف بالبايت |
الاستجابة:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"gcsPath": "gs://bucket/users/user123/images/abc123/my-image.jpg",
"downloadUrl": "https://cdn.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}Link to this sectionإكمال الرفع#
POST /api/upload/completeإخطار المنصة بأن رفع الملف قد اكتمل لتبدأ في معالجته.
الجسم (Body):
{
"sessionId": "session_abc123",
"checksum": "<optional sha-256 hex>"
}Link to this sectionواجهة برمجة تطبيقات عمليات التكامل (Integrations API)#
استيراد مجموعات البيانات من خدمات طرف ثالث. راجع وثائق عمليات التكامل.
Link to this sectionمعاينة استيراد Roboflow#
POST /api/integrations/roboflow/previewتحويل مفتاح Roboflow API إلى خطة استيراد مجمعة: معلومات مساحة العمل، والمشاريع التي سيتم استيرادها حديثاً، وعدد الإصدارات التي تم استيرادها بالفعل (تم تخطيها)، وأنواع المشاريع غير المدعومة. يتم تمرير مفتاح Roboflow API في النص ولا يتم حفظه.
Link to this sectionاستيراد من Roboflow#
POST /api/integrations/roboflow/importوضع وظائف استيعاب مجموعة البيانات في قائمة الانتظار لاستيراد مشاريع Roboflow المحددة إلى مساحة العمل الخاصة بك. يتطلب مساحة تخزين كافية، ويجب أن تتناسب كل مجموعة بيانات مع حد الحجم لكل استيراد في خطتك.
Link to this sectionواجهة برمجة تطبيقات مفاتيح API#
إدارة مفاتيح API الخاصة بك للوصول البرمجي. راجع وثائق مفاتيح API.
Link to this sectionسرد مفاتيح API#
GET /api/api-keysLink to this sectionإنشاء مفتاح API#
POST /api/api-keysالجسم (Body):
{
"name": "training-server"
}Link to this sectionحذف مفتاح API#
DELETE /api/api-keysمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
keyId | string | معرف مفتاح API المراد إلغاؤه |
مثال:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"Link to this sectionواجهة برمجة تطبيقات الفرق والأعضاء#
إنشاء مساحات عمل الفريق، ودعوة الأعضاء، وإدارة الأدوار للتعاون. راجع وثائق الفرق.
Link to this sectionسرد الفرق#
GET /api/teamsLink to this sectionإنشاء فريق#
POST /api/teams/createالجسم (Body):
{
"username": "my-team",
"fullName": "My Team"
}Link to this sectionسرد الأعضاء#
GET /api/membersإرجاع أعضاء مساحة العمل الحالية.
Link to this sectionدعوة عضو#
POST /api/membersالجسم (Body):
{
"email": "user@example.com",
"role": "editor"
}| الدور | الأذونات |
|---|---|
viewer | وصول للقراءة فقط إلى موارد مساحة العمل |
editor | إنشاء، تحرير، وحذف الموارد |
admin | إدارة الأعضاء، الفواتير، وجميع الموارد (لا يمكن تعيينه إلا من قبل مالك الفريق) |
مالك الفريق owner هو المنشئ ولا يمكن دعوته. يتم نقل الملكية بشكل منفصل عبر POST /api/members/transfer-ownership. راجع الفرق للحصول على تفاصيل كاملة عن الأدوار.
Link to this sectionتحديث دور العضو#
PATCH /api/members/{userId}Link to this sectionإزالة عضو#
DELETE /api/members/{userId}Link to this sectionنقل الملكية#
POST /api/members/transfer-ownershipLink to this sectionالدعوات#
Link to this sectionقبول الدعوة#
POST /api/invites/acceptLink to this sectionالحصول على معلومات الدعوة#
GET /api/invites/infoمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
token | string | رمز الدعوة |
Link to this sectionإلغاء الدعوة#
DELETE /api/invites/{inviteId}Link to this sectionإعادة إرسال الدعوة#
POST /api/invites/{inviteId}/resendLink to this sectionواجهة برمجة تطبيقات الاستكشاف#
البحث وتصفح مجموعات البيانات والمشاريع العامة التي يشاركها المجتمع. راجع وثائق الاستكشاف.
Link to this sectionالبحث في المحتوى العام#
GET /api/explore/searchمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
q | string | استعلام البحث |
type | string | نوع المورد: all (افتراضي)، projects، datasets |
sort | string | ترتيب الفرز: newest (افتراضي)، stars، oldest، name-asc، name-desc، count-desc، count-asc |
offset | int | إزاحة الترقيم (افتراضي: 0). تعيد النتائج 20 عنصراً في كل صفحة. |
task | string | اختياري: أنواع مهام YOLO مفصولة بفواصل لتصفية مجموعات البيانات (detect أو segment أو semantic أو classify أو pose أو obb) |
Link to this sectionبيانات الشريط الجانبي#
GET /api/explore/sidebarإرجاع محتوى منسق للشريط الجانبي للاستكشاف.
Link to this sectionواجهات برمجة تطبيقات المستخدم والإعدادات#
إدارة ملفك الشخصي، مفاتيح API، استخدام التخزين، وإعدادات خصوصية البيانات. راجع وثائق الإعدادات.
Link to this sectionالحصول على مستخدم بواسطة اسم المستخدم#
GET /api/usersمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
username | string | اسم المستخدم للبحث عنه |
Link to this sectionمتابعة أو إلغاء متابعة مستخدم#
PATCH /api/usersالجسم (Body):
{
"username": "target-user",
"followed": true
}Link to this sectionالتحقق من توفر اسم المستخدم#
GET /api/username/checkمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
username | string | اسم المستخدم للتحقق منه |
suggest | منطقي (bool) | اختياري: true لتضمين اقتراح إذا كان الاسم محجوزاً |
Link to this sectionالإعدادات#
GET /api/settings
POST /api/settingsالحصول على إعدادات ملف تعريف المستخدم أو تحديثها (اسم العرض، السيرة الذاتية، روابط التواصل الاجتماعي، إلخ).
Link to this sectionأيقونة الملف الشخصي#
POST /api/settings/icon
DELETE /api/settings/iconرفع أو إزالة صورة الملف الشخصي.
Link to this sectionالتهيئة#
POST /api/onboardingإكمال عملية التهيئة (تعيين منطقة البيانات، اسم المستخدم).
Link to this sectionواجهة برمجة تطبيقات GDPR#
طلب تصدير لجميع بياناتك أو حذف حسابك نهائياً. راجع وثائق الإعدادات.
Link to this sectionالحصول على حالة وظيفة GDPR#
GET /api/gdprمعلمات الاستعلام:
| المعامل | النوع | الوصف |
|---|---|---|
jobId | string | معرف وظيفة GDPR للتحقق منها |
إرجاع حالة الوظيفة. بالنسبة لوظائف التصدير المكتملة، تتضمن الاستجابة downloadUrl.
Link to this sectionبدء تدفق التصدير أو الحذف#
POST /api/gdprالجسم (Body):
{
"action": "export"
}{
"action": "delete",
"confirmationWord": "DELETE"
}اختياري لمساحات عمل الفريق:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}حذف الحساب نهائي ولا يمكن التراجع عنه. سيتم حذف جميع البيانات، النماذج، وعمليات النشر.
Link to this sectionرموز الخطأ#
| الكود | حالة HTTP | الوصف |
|---|---|---|
UNAUTHORIZED | 401 | مفتاح API غير صالح أو مفقود |
FORBIDDEN | 403 | أذونات غير كافية |
NOT_FOUND | 404 | المورد غير موجود |
VALIDATION_ERROR | 400 | بيانات طلب غير صالحة |
RATE_LIMITED | 429 | عدد كبير جداً من الطلبات |
INTERNAL_ERROR | 500 | خطأ في الخادم |
Link to this sectionالتكامل مع Python#
للتكامل بشكل أسهل، استخدم حزمة Ultralytics Python التي تتعامل مع المصادقة، والتحميلات، وبث المقاييس في الوقت الفعلي تلقائياً.
Link to this sectionالتثبيت والإعداد#
pip install ultralyticsالتحقق من التثبيت:
yolo checkيتطلب التكامل مع المنصة ultralytics>=8.4.60. الإصدارات الأقل لن تعمل مع المنصة.
Link to this sectionالمصادقة#
yolo settings api_key=YOUR_API_KEYLink to this sectionاستخدام مجموعات بيانات المنصة#
الإشارة إلى مجموعات البيانات باستخدام معرفات الموارد الموحدة (URIs) ul://:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/your-dataset",
epochs=100,
imgsz=640,
)تنسيق URI:
| النمط | الوصف |
|---|---|
ul://username/datasets/slug | مجموعة البيانات |
ul://username/project-name | مشروع |
ul://username/project/model-name | نموذج محدد |
ul://ultralytics/yolo26/yolo26n | نموذج رسمي |
Link to this sectionالنشر إلى المنصة#
إرسال النتائج إلى مشروع على المنصة:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Results automatically sync to Platform
model.train(
data="coco8.yaml",
epochs=100,
project="your-username/my-project",
name="experiment-1",
)ما الذي تتم مزامنته:
- مقاييس التدريب (في الوقت الفعلي)
- أوزان النموذج النهائية
- مخططات التحقق
- مخرجات وحدة التحكم
- مقاييس النظام
Link to this sectionأمثلة API#
تحميل نموذج من المنصة:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")تشغيل الاستدلال:
results = model("image.jpg")
# Access results
for r in results:
boxes = r.boxes # Detection boxes
masks = r.masks # Segmentation masks
keypoints = r.keypoints # Pose keypoints
probs = r.probs # Classification probabilitiesتصدير النموذج:
# Export to ONNX
model.export(format="onnx", imgsz=640, half=True)
# Export to TensorRT
model.export(format="engine", imgsz=640, half=True)
# Export to CoreML
model.export(format="coreml", imgsz=640)التحقق:
metrics = model.val(data="ul://username/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")Link to this sectionخطافات الويب (Webhooks)#
تستخدم المنصة خطافات ويب داخلية لبث مقاييس التدريب في الوقت الفعلي من حزمة ultralytics Python SDK (التي تعمل على وحدات معالجة الرسومات السحابية أو الأجهزة البعيدة/المحلية) إلى المنصة — مثل الخسارة لكل دورة (epoch)، وmAP، وإحصائيات النظام، وحالة الإكمال. تتم مصادقة خطافات الويب هذه عبر webhookSecret الخاص بـ HMAC والذي يتم توفيره لكل مهمة تدريب، وهي غير مخصصة للاستهلاك من قبل تطبيقات المستخدم.
جميع الخطط: يعمل تقدم التدريب عبر ultralytics SDK (مقاييس في الوقت الفعلي، إشعارات الإكمال) تلقائياً في كل خطة — ما عليك سوى ضبط project=username/my-project name=my-run عند التدريب وستقوم الحزمة ببث الأحداث إلى المنصة. لا يلزم تسجيل خطاف ويب من جانب المستخدم.
اشتراكات خطاف الويب الموجهة للمستخدم (عمليات استدعاء POST إلى عنوان URL تتحكم فيه) موجودة على خارطة طريق Enterprise وغير متاحة حالياً. في غضون ذلك، استخدم GET /api/models/{modelId}/training لاستطلاع الحالة أو استخدم موجز النشاط في واجهة المستخدم.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني استخدام الترقيم للصفحات (pagination) للنتائج الكبيرة؟#
تستخدم معظم نقاط النهاية معامل limit للتحكم في عدد النتائج التي يتم إرجاعها لكل طلب:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"تدعم نقاط نهاية النشاط (Activity) والمهملات (Trash) أيضاً معامل page للترقيم المستند إلى الصفحات:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"تستخدم نقطة نهاية البحث (Explore Search) معامل offset بدلاً من page، مع حجم صفحة ثابت قدره 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"Link to this sectionهل يمكنني استخدام API بدون SDK؟#
نعم، جميع الوظائف متاحة عبر REST. تُعد حزمة Python SDK غلافاً مريحاً يضيف ميزات مثل بث المقاييس في الوقت الفعلي والتحميل التلقائي للنماذج. يمكنك أيضاً استكشاف جميع نقاط النهاية بشكل تفاعلي على platform.ultralytics.com/api/docs.
Link to this sectionهل توجد مكتبات عميل لـ API؟#
حالياً، استخدم حزمة Ultralytics Python أو قم بإجراء طلبات HTTP مباشرة. من المخطط توفير مكتبات عميل رسمية للغات أخرى.
Link to this sectionكيف أتعامل مع حدود المعدل (rate limits)؟#
استخدم ترويسة Retry-After من استجابة 429 لانتظار القدر المناسب من الوقت:
import time
import requests
def api_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code != 429:
return response
wait = int(response.headers.get("Retry-After", 2**attempt))
time.sleep(wait)
raise Exception("Rate limit exceeded")Link to this sectionكيف أجد معرف النموذج أو مجموعة البيانات الخاص بي؟#
يتم إرجاع معرفات الموارد عند إنشاء الموارد عبر API. يمكنك أيضاً العثور عليها في URL الخاص بالمنصة:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project modelاستخدم نقاط نهاية القائمة للبحث بالاسم أو التصفية حسب المشروع.