API استضافة الصور: ارفع الصور بطلب POST واحد
API استضافة الصور من MyIMGs.org يرفع الصورة ويعيد رابطًا مباشرًا في طلب واحد. أرسل ملفًا أو صورة بصيغة base64 مع مفتاح API واحصل على رد JSON جاهز للتطبيقات والمواقع والمنتديات. كل صورة تقدم عبر CDN وباتصال HTTPS. الوصول إلى API مشمول في كل باقات Pro، بدءًا من $3.29 شهريًا.
كيف تحصل على مفتاح API لاستضافة الصور
- أنشئ حسابًا مجانيًا على MyIMGs.org وأكد بريدك الإلكتروني.
- اختر باقة من صفحة باقات Pro والأسعار. الوصول إلى API جزء من كل باقات Pro.
- افتح صفحة حسابك واختر إنشاء مفتاح API.
- انسخ المفتاح. يظهر مرة واحدة فقط. إذا فقدته، أنشئ مفتاحًا جديدًا وسيتوقف المفتاح القديم عن العمل.
رفع صورة باستخدام curl (البدء السريع)
استبدل YOUR_API_KEY بمفتاحك ثم شغل:
curl -X POST https://myimgs.org/api/v1/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "image=@photo.jpg"
الرد بصيغة JSON. استخدم data.url كرابط مباشر للصورة وdata.viewer_url للصفحة التي تعرض الصورة:
{
"success": true,
"status": 201,
"data": {
"id": "AbC12xyz",
"title": "photo",
"name": "photo",
"extension": "jpg",
"size": 245891,
"optimized": false,
"url": "https://myimgs.org/storage/images/61178/photo.jpg",
"viewer_url": "https://myimgs.org/image/AbC12xyz",
"url_viewer": "https://myimgs.org/image/AbC12xyz",
"display_url": "https://myimgs.org/storage/images/61178/photo.jpg",
"width": 1600,
"height": 1067,
"time": 1762000000,
"expiration": 0,
"image": {
"filename": "photo.jpg",
"name": "photo",
"mime": "image/jpeg",
"extension": "jpg",
"url": "https://myimgs.org/storage/images/61178/photo.jpg"
}
}
}
مرجع API رفع الصور
نقطة نهاية واحدة: POST https://myimgs.org/api/v1/upload
المصادقة
أرسل مفتاحك في الترويسة Authorization: Bearer YOUR_API_KEY. وللسكربتات المكتوبة من أجل ImgBB، يعمل حقل النموذج key أيضًا. استخدم الترويسة متى أمكنك، لأن حقول النموذج قد تظهر في سجلات الخادم.
حقول الطلب
| الحقل | مطلوب | الوصف |
|---|---|---|
image | نعم | ملف الصورة (multipart form data)، أو نص بصيغة base64. يقبل أيضًا Data URI مثل data:image/png;base64,.... |
name | لا | اسم الملف للصورة المحفوظة. تبقى فقط الحروف والأرقام والشرطة والشرطة السفلية. الافتراضي هو اسم الملف المرفوع. |
optimize | لا | أرسل 1 أو true لتحويل صور JPG وPNG وWebP إلى WebP مضغوط عندما يصغر ذلك حجم الملف. لا يتم تحويل صور GIF أبدًا. يظهر الملف النهائي في الرد ضمن data.extension وdata.url. |
key | لا | مفتاح API الخاص بك، إذا لم تستخدم الترويسة Authorization. |
حقول الرد
| الحقل | الوصف |
|---|---|
success | true عند حفظ الصورة. |
data.id | المعرف القصير للصورة. |
data.name | اسم الملف المحفوظ، بدون الامتداد. |
data.extension | jpg أو png أو gif أو webp، حسب المحتوى الفعلي للملف. |
data.size | الحجم المحفوظ بالبايت. |
data.optimized | true عند تحويل الصورة إلى WebP لأنك أرسلت optimize، وإلا false. |
data.url | رابط مباشر للصورة. استخدمه في وسوم <img> وBBCode والتطبيقات. |
data.viewer_url | رابط الصفحة التي تعرض الصورة. يحمل data.url_viewer الرابط نفسه. |
data.title | مثل data.name. |
data.display_url | مثل data.url. |
data.width, data.height | أبعاد الصورة بالبكسل. |
data.time | وقت الرفع بصيغة Unix timestamp. |
data.expiration | دائمًا 0: الصور لا تنتهي صلاحيتها. |
data.image | الملف المحفوظ: filename وname وmime وextension وurl. |
status | رمز حالة HTTP، وهو 201 عند حفظ الصورة. |
أمثلة API رفع الصور بلغات JavaScript وPython وPHP
JavaScript (Node.js 18 أو أحدث)
import { readFile } from "node:fs/promises";
const form = new FormData();
form.append("image", new Blob([await readFile("photo.jpg")]), "photo.jpg");
const res = await fetch("https://myimgs.org/api/v1/upload", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY" },
body: form,
});
const json = await res.json();
console.log(json.data.url);
Python (requests)
import requests
r = requests.post(
"https://myimgs.org/api/v1/upload",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"image": open("photo.jpg", "rb")},
)
print(r.json()["data"]["url"])
PHP (cURL)
$ch = curl_init("https://myimgs.org/api/v1/upload");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY"],
CURLOPT_POSTFIELDS => ["image" => new CURLFile("photo.jpg")],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
echo $data["data"]["url"];
رفع صورة بصيغة base64
مفيد عندما تكون الصورة موجودة في الذاكرة فقط، مثل canvas أو لقطة شاشة:
curl -X POST https://myimgs.org/api/v1/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "image=$(base64 -w0 photo.jpg)" \
-F "name=photo"
الصور الكبيرة ترفع أسرع عندما تكون أصغر حجمًا. يمكنك ضغط الصور في متصفحك باستخدام أداة ضغط الصورة المجانية قبل إرسالها.
أخطاء API استضافة الصور ورموز الحالة
تعيد الأخطاء JSON مثل {"success": false, "error": "message"} مع أحد رموز الحالة التالية:
| الحالة | المعنى |
|---|---|
| 201 | تم حفظ الصورة. يحتوي الرد على الروابط. |
| 401 | مفتاح API مفقود أو غير صحيح. |
| 403 | الحساب ليس لديه باقة Pro نشطة، أو الحساب معطل. |
| 413 | حجم الصورة أكبر من 96 ميغابايت. |
| 422 | لم يتم إرسال صورة، أو نص base64 غير صالح، أو الملف ليس صورة JPG أو PNG أو GIF أو WebP. |
| 429 | أكثر من 60 طلبًا في دقيقة واحدة. انتظر ثم أعد المحاولة. |
حدود API استضافة الصور
| حجم الصورة | 96 ميغابايت للصورة |
|---|---|
| الصيغ | JPG وPNG وGIF (مع الحفاظ على الحركة) وWebP |
| حد الطلبات | 60 طلبًا في الدقيقة لكل حساب |
| مساحة التخزين | مساحة تخزين غير محدودة في باقات Pro |
| التوصيل | CDN عبر HTTPS، والروابط المباشرة تعمل في المنتديات والمواقع والتطبيقات |
| الإدخال | رفع ملف أو base64 |
بديل API ImgBB
إذا كنت ترفع الصور حاليًا عبر API ImgBB، فالانتقال يحتاج إلى تغييرين: وجه الطلب إلى https://myimgs.org/api/v1/upload واستخدم مفتاح MyIMGs.org. الحقلان key وimage يعملان بالطريقة نفسها، والرابط المباشر يعود في data.url. يستخدم الرد أيضًا أسماء ImgBB للحقول url_viewer وdisplay_url وtitle وwidth وheight وtime وexpiration وimage. لا يحتوي على thumb أو medium أو delete_url، ولا يجلب صورة من URL ولا يقبل إعداد انتهاء الصلاحية. باقات Pro تضيف صورًا حتى 96 ميغابايت، وبدون إعلانات، ومساحة تخزين غير محدودة.
أسعار API استضافة الصور
API مشمول في كل باقات Pro. اختر مدة الدفع التي تناسبك:
الباقة الشهرية
$11.49 شهريًا
الباقة السنوية
$6.49 شهريًا
الإجمالي $77.88
باقة 3 سنوات
$3.29 شهريًا
الإجمالي $118.44
عرض باقات Pro والحصول على مفتاح API
الأسئلة الشائعة عن API استضافة الصور
هل يوجد API مجاني لاستضافة الصور؟
الرفع عبر API يحتاج إلى باقة Pro تبدأ من $3.29 شهريًا. الحساب المجاني يستضيف حتى 20 صورة من الموقع ولا يحصل على مفتاح API.
ما الحد الأقصى لحجم الصورة في API؟
96 ميغابايت للصورة. الملفات الأكبر تحصل على خطأ 413.
ما صيغ الصور التي يقبلها API رفع الصور؟
JPG وPNG وGIF وWebP. تقرأ الصيغة من الملف نفسه، لذلك يتم فحص الملف ذي الامتداد الخاطئ حسب محتواه الفعلي، ويرفض أي ملف ليس صورة حقيقية. صور GIF المتحركة تبقى متحركة.
هل يمكنني رفع صورة من رابط URL؟
لا. أرسل الملف بصيغة multipart form data، أو أرسل الصورة كنص base64. جلب الروابط غير متاح عن قصد لأسباب أمنية.
هل يمكنني حذف الصور عبر API؟
ليس بعد. الرفع هو العملية الوحيدة في API حاليًا. احذف الصور من لوحة التحكم.
كيف أغير مفتاح API أو ألغيه؟
استخدم "إنشاء مفتاح جديد" في صفحة حسابك. يتوقف المفتاح القديم عن العمل فورًا، ويظهر المفتاح الجديد مرة واحدة فقط.
ما حد الطلبات في API؟
60 طلبًا في الدقيقة لكل حساب. بعد ذلك يرد API برمز الحالة 429 حتى تنتهي الدقيقة.
هل تنتهي صلاحية الصور المرفوعة عبر API؟
لا. لا يوجد إعداد لانتهاء الصلاحية. الصور المرفوعة بمفتاحك تبقى في حسابك.
هل يعمل API مع السكربتات المكتوبة من أجل ImgBB؟
نعم بالنسبة إلى عملية الرفع. أرسل الحقلين key وimage أنفسهما إلى رابط MyIMGs.org. يستخدم الرد الأسماء نفسها للحقول url وurl_viewer وdisplay_url وtitle وwidth وheight وtime وexpiration وimage. لا يحتوي على thumb أو medium أو delete_url، ولا يقبل رابط صورة أو إعداد انتهاء الصلاحية.
MyIMGs.org خدمة مجانية لاستضافة الصور. ارفع صورة من الصفحة الرئيسية بدون حساب.