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 MB.
422לא נשלחה תמונה, טקסט ה-base64 לא תקין, או שהקובץ אינו תמונת JPG, PNG, GIF או WebP.
429יותר מ-60 בקשות בדקה אחת. המתינו ונסו שוב.

מגבלות ה-API לאחסון תמונות

גודל תמונה96 MB לתמונה
פורמטים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 MB, ללא פרסומות ו-אחסון ללא הגבלה.

מחיר ה-API לאחסון תמונות

ה-API כלול בכל חבילת Pro. בחרו את תקופת החיוב שמתאימה לכם:

תוכנית חודשית

$11.49 לחודש

תוכנית שנתית

$6.49 לחודש

חיוב של $77.88

תוכנית לשלוש שנים

$3.29 לחודש

חיוב של $118.44

לחבילות Pro וקבלת מפתח API

שאלות נפוצות על ה-API לאחסון תמונות

יש API חינמי לאחסון תמונות?

לא. ההעלאה דרך ה-API דורשת חבילת Pro, שמתחילה ב-$3.29 לחודש. חשבון חינמי מאחסן עד 20 תמונות מהאתר ואין בו מפתח API.

מה הגודל המקסימלי של תמונה ב-API?

96 MB לתמונה. קבצים גדולים יותר מחזירים שגיאה 413.

אילו פורמטים של תמונות ה-API להעלאת תמונות תומך?

JPG, PNG, GIF ו-WebP. הפורמט נקרא מהקובץ עצמו, ולכן קובץ עם סיומת שגויה נבדק לפי התוכן האמיתי שלו, וכל מה שאינו תמונה אמיתית נדחה. קובצי GIF מונפשים נשארים מונפשים.

אפשר להעלות תמונה מכתובת URL?

לא. שלחו את הקובץ כ-multipart form data, או שלחו את התמונה כמחרוזת base64. משיכת כתובות URL הושארה בחוץ במכוון, מטעמי אבטחה.

אפשר למחוק תמונות דרך ה-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, והיא לא מקבלת כתובת URL של תמונה או הגדרת תפוגה.

MyIMGs.org הוא שירות אחסון תמונות חינמי. העלו תמונה בעמוד הבית בלי חשבון.