इमेज होस्टिंग API: एक POST रिक्वेस्ट से इमेज अपलोड करें
MyIMGs.org की इमेज होस्टिंग API एक ही रिक्वेस्ट में इमेज अपलोड करती है और डायरेक्ट लिंक लौटाती है। अपनी API की के साथ फाइल या base64 इमेज भेजें और ऐप, वेबसाइट और फोरम के लिए तैयार JSON पाएं। हर इमेज HTTPS पर CDN से दी जाती है। API एक्सेस हर Pro प्लान में शामिल है, $3.29 प्रति माह से।
इमेज होस्टिंग API Key कैसे पाएं
- MyIMGs.org का फ्री अकाउंट बनाएं और अपना ईमेल वेरिफाई करें।
- Pro प्लान और कीमतें पेज पर प्लान चुनें। API एक्सेस हर Pro प्लान का हिस्सा है।
- अपना अकाउंट पेज खोलें और Create API key चुनें।
- Key कॉपी करें। यह सिर्फ एक बार दिखती है। खो जाए तो नई Key बनाएं, पुरानी Key काम करना बंद कर देगी।
curl से इमेज अपलोड करें (क्विक स्टार्ट)
YOUR_API_KEY की जगह अपनी 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
ऑथेंटिकेशन
अपनी Key Authorization: Bearer YOUR_API_KEY हेडर में भेजें। ImgBB के लिए लिखी स्क्रिप्ट के लिए key फॉर्म फील्ड भी चलती है। जब हो सके हेडर इस्तेमाल करें, क्योंकि फॉर्म फील्ड सर्वर लॉग में पहुंच सकती हैं।
रिक्वेस्ट फील्ड
| फील्ड | जरूरी | विवरण |
|---|---|---|
image | हां | इमेज फाइल (multipart फॉर्म डेटा) या base64 स्ट्रिंग। data:image/png;base64,... जैसा data URI भी स्वीकार है। |
name | नहीं | स्टोर की गई इमेज का फाइल नाम। सिर्फ अक्षर, अंक, डैश और अंडरस्कोर रखे जाते हैं। डिफ़ॉल्ट रूप से अपलोड की गई फाइल का नाम होता है। |
optimize | नहीं | JPG, PNG और WebP इमेज को कंप्रेस्ड WebP में बदलने के लिए 1 या true भेजें, जब इससे फाइल छोटी हो। GIF कभी कन्वर्ट नहीं होतीं। जवाब में अंतिम फाइल data.extension और data.url में दिखती है। |
key | नहीं | आपकी API Key, अगर आप Authorization हेडर इस्तेमाल नहीं करते। |
रिस्पॉन्स फील्ड
| फील्ड | विवरण |
|---|---|
success | इमेज स्टोर होने पर true। |
data.id | इमेज की छोटी ID। |
data.name | स्टोर की गई फाइल का नाम, एक्सटेंशन के बिना। |
data.extension | jpg, png, gif या webp, असली फाइल कंटेंट से लिया गया। |
data.size | स्टोर किया गया साइज, बाइट में। |
data.optimized | अगर आपने optimize भेजा और इमेज WebP में बदली गई तो true, वरना 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 टाइमस्टैम्प के रूप में। |
data.expiration | हमेशा 0: इमेज एक्सपायर नहीं होतीं। |
data.image | स्टोर की गई फाइल: filename, name, mime, extension और url। |
status | HTTP स्टेटस कोड, इमेज स्टोर होने पर 201। |
JavaScript, Python और PHP में इमेज अपलोड API के उदाहरण
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 Key नहीं है या गलत है। |
| 403 | अकाउंट में कोई सक्रिय Pro प्लान नहीं है, या अकाउंट बंद है। |
| 413 | इमेज 96 MB से बड़ी है। |
| 422 | कोई इमेज नहीं भेजी गई, base64 टेक्स्ट गलत है, या फाइल JPG, PNG, GIF या WebP इमेज नहीं है। |
| 429 | एक मिनट में 60 से ज्यादा रिक्वेस्ट। रुकें और दोबारा कोशिश करें। |
इमेज होस्टिंग API की सीमाएं
| इमेज साइज | प्रति इमेज 96 MB |
|---|---|
| फॉर्मेट | JPG, PNG, GIF (एनिमेशन बना रहता है) और WebP |
| रेट लिमिट | हर अकाउंट के लिए प्रति मिनट 60 रिक्वेस्ट |
| स्टोरेज | Pro प्लान में अनलिमिटेड स्टोरेज |
| डिलीवरी | HTTPS पर CDN, डायरेक्ट लिंक फोरम, वेबसाइट और ऐप में काम करते हैं |
| इनपुट | फाइल अपलोड या base64 |
ImgBB API का विकल्प
अगर आप पहले से ImgBB API से अपलोड करते हैं, तो बदलने में दो बदलाव लगते हैं: रिक्वेस्ट को https://myimgs.org/api/v1/upload पर भेजें और अपनी MyIMGs.org की इस्तेमाल करें। key और image फील्ड उसी तरह काम करते हैं, और डायरेक्ट लिंक data.url में आता है। जवाब में url_viewer, display_url, title, width, height, time, expiration और image के लिए ImgBB जैसे ही नाम हैं। इसमें thumb, medium या delete_url नहीं हैं, और यह URL से इमेज नहीं लाती और एक्सपायरी सेटिंग भी नहीं लेती। Pro प्लान में 96 MB की इमेज, बिना विज्ञापन और अनलिमिटेड स्टोरेज मिलता है।
इमेज होस्टिंग API की कीमत
API हर Pro प्लान में शामिल है। अपने हिसाब से बिलिंग अवधि चुनें:
मासिक प्लान
$11.49 प्रति माह
वार्षिक प्लान
$6.49 प्रति माह
$77.88 का बिल
3 साल का प्लान
$3.29 प्रति माह
$118.44 का बिल
Pro प्लान देखें और API Key पाएं
इमेज होस्टिंग API के सवाल और जवाब
क्या कोई फ्री इमेज होस्टिंग API है?
API से अपलोड करने के लिए Pro प्लान चाहिए, जो $3.29 प्रति माह से शुरू होता है। फ्री अकाउंट वेबसाइट से 20 इमेज तक होस्ट करता है और उसमें API की नहीं होती।
API के लिए इमेज का अधिकतम साइज क्या है?
प्रति इमेज 96 MB। इससे बड़ी फाइल पर 413 एरर मिलता है।
इमेज अपलोड API कौन से इमेज फॉर्मेट स्वीकार करती है?
JPG, PNG, GIF और WebP। फॉर्मेट फाइल से ही पढ़ा जाता है, इसलिए गलत एक्सटेंशन वाली फाइल भी उसके असली कंटेंट से जांची जाती है, और जो असली इमेज नहीं है उसे अस्वीकार कर दिया जाता है। एनिमेटेड GIF एनिमेटेड ही रहती हैं।
क्या मैं URL से इमेज अपलोड कर सकता हूं?
नहीं। फाइल को multipart फॉर्म डेटा के रूप में भेजें, या इमेज को base64 स्ट्रिंग के रूप में भेजें। URL से फेच करना सुरक्षा के लिए जानबूझकर नहीं रखा गया है।
क्या मैं API से इमेज हटा सकता हूं?
अभी नहीं। फिलहाल अपलोड ही एकमात्र API कॉल है। इमेज अपने डैशबोर्ड से हटाएं।
मैं अपनी API Key कैसे बदलूं या रद्द करूं?
अपने अकाउंट पेज पर Make a new key का इस्तेमाल करें। पुरानी की तुरंत काम करना बंद कर देती है, और नई की सिर्फ एक बार दिखती है।
API की रेट लिमिट क्या है?
हर अकाउंट के लिए प्रति मिनट 60 रिक्वेस्ट। इससे ज्यादा होने पर मिनट पूरा होने तक API स्टेटस 429 के साथ जवाब देती है।
क्या API से अपलोड की गई इमेज एक्सपायर होती हैं?
नहीं। कोई एक्सपायरी सेटिंग नहीं है। आपकी की से अपलोड की गई इमेज आपके अकाउंट में रहती हैं।
क्या API ImgBB के लिए लिखी स्क्रिप्ट के साथ काम करती है?
अपलोड कॉल के लिए हां। वही key और image फील्ड MyIMGs.org के URL पर भेजें। जवाब में url, url_viewer, display_url, title, width, height, time, expiration और image के लिए वही नाम हैं। इसमें thumb, medium या delete_url नहीं हैं, और यह इमेज URL या एक्सपायरी सेटिंग नहीं लेती।
MyIMGs.org एक फ्री इमेज होस्टिंग सर्विस है। बिना अकाउंट के होम पेज पर इमेज अपलोड करें।