ইমেজ হোস্টিং API: একটি POST রিকোয়েস্টে ছবি আপলোড করুন

MyIMGs.org ইমেজ হোস্টিং API একটি রিকোয়েস্টেই ছবি আপলোড করে ডাইরেক্ট লিংক ফেরত দেয়। আপনার API কী দিয়ে ফাইল বা base64 ছবি পাঠান, ফেরত পান JSON, যা অ্যাপ, ওয়েবসাইট ও ফোরামের জন্য তৈরি। প্রতিটি ছবি HTTPS-এর মাধ্যমে CDN থেকে দেওয়া হয়। প্রতিটি Pro প্ল্যানে API অ্যাক্সেস আছে, মাসে $3.29 থেকে।

ইমেজ হোস্টিং API কী কীভাবে পাবেন

  1. একটি ফ্রি MyIMGs.org অ্যাকাউন্ট খুলুন এবং আপনার ইমেইল যাচাই করুন।
  2. Pro প্ল্যান ও দাম পেজ থেকে একটি প্ল্যান বেছে নিন। প্রতিটি Pro প্ল্যানে API অ্যাক্সেস আছে।
  3. আপনার অ্যাকাউন্ট পেজ খুলুন এবং এপিআই কী তৈরি করুন বাটনে চাপুন।
  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:image/png;base64,... ধরনের data URI-ও গ্রহণ করা হয়।
nameনাসংরক্ষিত ছবির ফাইলের নাম। শুধু অক্ষর, সংখ্যা, ড্যাশ ও আন্ডারস্কোর রাখা হয়। ডিফল্ট হিসেবে আপলোড করা ফাইলের নাম ব্যবহার হয়।
optimizeনাফাইল ছোট হলে JPG, PNG ও WebP ছবি কমপ্রেস করা WebP-তে কনভার্ট করতে 1 বা true পাঠান। GIF কখনও কনভার্ট হয় না। রিপ্লাইয়ের data.extension ও data.url-এ চূড়ান্ত ফাইল দেখা যায়।
keyনাআপনার API কী, যদি Authorization হেডার ব্যবহার না করেন।

রেসপন্স ফিল্ড

ফিল্ডবিবরণ
successছবি সংরক্ষিত হলে true।
data.idছবির ছোট আইডি।
data.nameএক্সটেনশন ছাড়া সংরক্ষিত ফাইলের নাম।
data.extensionjpg, png, gif বা webp, আসল ফাইলের কনটেন্ট দেখে নেওয়া।
data.sizeবাইটে সংরক্ষিত সাইজ।
data.optimizedoptimize পাঠানোর কারণে ছবি WebP-তে কনভার্ট হলে true, নইলে false।
data.urlছবির ডাইরেক্ট লিংক। <img> ট্যাগ, BBCode ও অ্যাপে ব্যবহার করুন।
data.viewer_urlছবি দেখানো পেজের লিংক। data.url_viewer-এও একই লিংক থাকে।
data.titledata.name-এর মতোই।
data.display_urldata.url-এর মতোই।
data.width, data.heightপিক্সেলে ছবির সাইজ।
data.timeUnix টাইমস্ট্যাম্প হিসেবে আপলোডের সময়।
data.expirationসবসময় 0: ছবির মেয়াদ শেষ হয় না।
data.imageসংরক্ষিত ফাইল: filename, name, mime, extension এবং url।
statusHTTP স্ট্যাটাস কোড, ছবি সংরক্ষিত হলে 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 ছবি আপলোড করুন

ছবি শুধু মেমরিতে থাকলে কাজে লাগে, যেমন ক্যানভাস বা স্ক্রিনশট:

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 এরর ও স্ট্যাটাস কোড

এরর হলে {"success": false, "error": "message"} ধরনের JSON আসে, সঙ্গে এই স্ট্যাটাস কোডগুলোর একটি:

স্ট্যাটাসঅর্থ
201ছবি সংরক্ষিত হয়েছে। রেসপন্সে লিংকগুলো থাকে।
401API কী নেই অথবা ভুল।
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-এর দাম

প্রতিটি Pro প্ল্যানে API আছে। আপনার সুবিধামতো বিলিং মেয়াদ বেছে নিন:

মাসিক প্ল্যান

$11.49 প্রতি মাসে

বার্ষিক প্ল্যান

$6.49 প্রতি মাসে

বিল $77.88

3 বছরের প্ল্যান

$3.29 প্রতি মাসে

বিল $118.44

Pro প্ল্যান দেখুন ও এপিআই কী নিন

ইমেজ হোস্টিং 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 দিয়ে আপলোড করা ছবির কি মেয়াদ শেষ হয়?

না। মেয়াদ সেট করার কোনো অপশন নেই। আপনার কী দিয়ে আপলোড করা ছবি আপনার অ্যাকাউন্টেই থাকে।

ImgBB-এর জন্য লেখা স্ক্রিপ্টে কি এই API কাজ করে?

আপলোড কলের ক্ষেত্রে হ্যাঁ। একই key ও image ফিল্ড MyIMGs.org-এর URL-এ পাঠান। রিপ্লাইয়ে url, url_viewer, display_url, title, width, height, time, expiration ও image একই নামে আসে। এখানে thumb, medium বা delete_url নেই, এবং ছবির URL বা মেয়াদ সেট করার অপশন নেওয়া হয় না।

MyIMGs.org একটি ফ্রি ইমেজ হোস্টিং সার্ভিস। অ্যাকাউন্ট ছাড়াই হোম পেজে ছবি আপলোড করুন।