API استضافة الصور: ارفع الصور بطلب POST واحد

API استضافة الصور من MyIMGs.org يرفع الصورة ويعيد رابطًا مباشرًا في طلب واحد. أرسل ملفًا أو صورة بصيغة base64 مع مفتاح API واحصل على رد JSON جاهز للتطبيقات والمواقع والمنتديات. كل صورة تقدم عبر CDN وباتصال HTTPS. الوصول إلى API مشمول في كل باقات Pro، بدءًا من $3.29 شهريًا.

كيف تحصل على مفتاح API لاستضافة الصور

  1. أنشئ حسابًا مجانيًا على MyIMGs.org وأكد بريدك الإلكتروني.
  2. اختر باقة من صفحة باقات Pro والأسعار. الوصول إلى API جزء من كل باقات Pro.
  3. افتح صفحة حسابك واختر إنشاء مفتاح API.
  4. انسخ المفتاح. يظهر مرة واحدة فقط. إذا فقدته، أنشئ مفتاحًا جديدًا وسيتوقف المفتاح القديم عن العمل.

رفع صورة باستخدام 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.

حقول الرد

الحقلالوصف
successtrue عند حفظ الصورة.
data.idالمعرف القصير للصورة.
data.nameاسم الملف المحفوظ، بدون الامتداد.
data.extensionjpg أو png أو gif أو webp، حسب المحتوى الفعلي للملف.
data.sizeالحجم المحفوظ بالبايت.
data.optimizedtrue عند تحويل الصورة إلى 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 خدمة مجانية لاستضافة الصور. ارفع صورة من الصفحة الرئيسية بدون حساب.