API d'hébergement d'images : téléverser des images avec une seule requête POST

L'API d'hébergement d'images de MyIMGs.org téléverse une image et renvoie un lien direct en une seule requête. Envoyez un fichier ou une image en base64 avec votre clé API et recevez du JSON, prêt pour vos applications, sites web et forums. Chaque image est servie par un CDN en HTTPS. L'accès à l'API est inclus dans tous les forfaits Pro, dès $3.29 par mois.

Comment obtenir une clé API d'hébergement d'images

  1. Créez un compte MyIMGs.org gratuit et vérifiez votre adresse e-mail.
  2. Choisissez un forfait sur la page forfaits Pro et prix. L'accès à l'API fait partie de tous les forfaits Pro.
  3. Ouvrez la page de votre compte et choisissez Créer une clé API.
  4. Copiez la clé. Elle ne s'affiche qu'une fois. Si vous la perdez, créez une nouvelle clé : l'ancienne cesse alors de fonctionner.

Téléverser une image avec curl (démarrage rapide)

Remplacez YOUR_API_KEY par votre clé et lancez :

curl -X POST https://myimgs.org/api/v1/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@photo.jpg"

La réponse est en JSON. Utilisez data.url comme lien direct vers l'image et data.viewer_url pour la page qui affiche l'image :

{
  "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"
    }
  }
}

Référence de l'API de téléversement d'images

Un seul point d'accès : POST https://myimgs.org/api/v1/upload

Authentification

Envoyez votre clé dans l'en-tête Authorization: Bearer YOUR_API_KEY. Pour les scripts écrits pour ImgBB, un champ de formulaire key fonctionne aussi. Utilisez l'en-tête quand c'est possible, car les champs de formulaire peuvent se retrouver dans les journaux du serveur.

Champs de la requête

ChampObligatoireDescription
imageOuiLe fichier image (multipart form data) ou une chaîne base64. Une data URI comme data:image/png;base64,... est acceptée.
nameNonNom du fichier de l'image enregistrée. Seuls les lettres, chiffres, tirets et underscores sont conservés. Par défaut, le nom du fichier téléversé.
optimizeNonEnvoyez 1 ou true pour convertir les images JPG, PNG et WebP en WebP compressé quand le fichier devient plus léger. Les GIF ne sont jamais convertis. La réponse indique le fichier final dans data.extension et data.url.
keyNonVotre clé API, si vous n'utilisez pas l'en-tête Authorization.

Champs de la réponse

ChampDescription
successtrue quand l'image a été enregistrée.
data.idID court de l'image.
data.nameNom du fichier enregistré, sans extension.
data.extensionjpg, png, gif ou webp, d'après le contenu réel du fichier.
data.sizeTaille enregistrée en octets.
data.optimizedtrue quand l'image a été convertie en WebP parce que vous avez envoyé optimize, sinon false.
data.urlLien direct vers l'image. À utiliser dans les balises <img>, le BBCode et les applications.
data.viewer_urlLien vers la page qui affiche l'image. data.url_viewer contient le même lien.
data.titleIdentique à data.name.
data.display_urlIdentique à data.url.
data.width, data.heightTaille de l'image en pixels.
data.timeHeure du téléversement en timestamp Unix.
data.expirationToujours 0 : les images n'expirent pas.
data.imageLe fichier enregistré : filename, name, mime, extension et url.
statusLe code de statut HTTP, 201 quand l'image a été enregistrée.

Exemples d'API de téléversement d'images en JavaScript, Python et PHP

JavaScript (Node.js 18 ou plus récent)

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"];

Téléverser une image en base64

Pratique quand l'image n'existe qu'en mémoire, par exemple un canvas ou une capture d'écran :

curl -X POST https://myimgs.org/api/v1/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=$(base64 -w0 photo.jpg)" \
  -F "name=photo"

Les grandes photos se téléversent plus vite quand elles sont plus légères. Vous pouvez compresser vos images dans le navigateur avec le compresseur d'images gratuit avant de les envoyer.

Erreurs et codes de statut de l'API d'hébergement d'images

Les erreurs renvoient du JSON comme {"success": false, "error": "message"} avec l'un de ces codes de statut :

StatutSignification
201Image enregistrée. La réponse contient les liens.
401La clé API est absente ou incorrecte.
403Le compte n'a pas de forfait Pro actif, ou le compte est désactivé.
413L'image dépasse 96 Mo.
422Aucune image envoyée, le texte base64 est invalide, ou le fichier n'est pas une image JPG, PNG, GIF ou WebP.
429Plus de 60 requêtes en une minute. Patientez puis réessayez.

Limites de l'API d'hébergement d'images

Taille d'image96 Mo par image
FormatsJPG, PNG, GIF (animation conservée) et WebP
Limite de requêtes60 requêtes par minute pour chaque compte
StockageStockage illimité avec les forfaits Pro
DiffusionCDN en HTTPS, les liens directs fonctionnent sur les forums, les sites web et les applications
EntréeFichier téléversé ou base64

Alternative à l'API ImgBB

Si vous téléversez déjà avec l'API ImgBB, deux changements suffisent : envoyez la requête vers https://myimgs.org/api/v1/upload et utilisez votre clé MyIMGs.org. Les champs key et image fonctionnent de la même façon, et le lien direct revient dans data.url. La réponse reprend aussi les noms d'ImgBB pour url_viewer, display_url, title, width, height, time, expiration et image. Elle ne contient pas thumb, medium ni delete_url, et elle ne récupère pas d'image depuis une URL ni ne prend de paramètre d'expiration. Les forfaits Pro ajoutent des images de 96 Mo, aucune publicité et stockage illimité.

Prix de l'API d'hébergement d'images

L'API est incluse dans tous les forfaits Pro. Choisissez la période de facturation qui vous convient :

Forfait mensuel

$11.49 par mois

Forfait annuel

$6.49 par mois

facturé $77.88

Forfait sur 3 ans

$3.29 par mois

facturé $118.44

Voir les forfaits Pro et obtenir votre clé API

FAQ de l'API d'hébergement d'images

Existe-t-il une API d'hébergement d'images gratuite ?

Le téléversement par l'API nécessite un forfait Pro, dès $3.29 par mois. Un compte gratuit héberge jusqu'à 20 images depuis le site web et n'a pas de clé API.

Quelle est la taille maximale d'une image pour l'API ?

96 Mo par image. Les fichiers plus lourds reçoivent une erreur 413.

Quels formats d'image l'API de téléversement accepte-t-elle ?

JPG, PNG, GIF et WebP. Le format est lu dans le fichier lui-même : un fichier avec une mauvaise extension est quand même vérifié d'après son contenu réel, et tout ce qui n'est pas une vraie image est refusé. Les GIF animés restent animés.

Puis-je téléverser une image depuis une URL ?

Non. Envoyez le fichier en multipart form data, ou envoyez l'image sous forme de chaîne base64. La récupération d'URL est volontairement exclue pour des raisons de sécurité.

Puis-je supprimer des images avec l'API ?

Pas encore. Le téléversement est le seul appel de l'API pour le moment. Supprimez vos images depuis votre tableau de bord.

Comment changer ou révoquer ma clé API ?

Utilisez Créer une nouvelle clé sur la page de votre compte. L'ancienne clé cesse de fonctionner immédiatement, et la nouvelle ne s'affiche qu'une fois.

Quelle est la limite de requêtes de l'API ?

60 requêtes par minute pour chaque compte. Au-delà, l'API répond avec le statut 429 jusqu'à la fin de la minute.

Les images téléversées avec l'API expirent-elles ?

Non. Il n'y a aucun paramètre d'expiration. Les images téléversées avec votre clé restent sur votre compte.

L'API fonctionne-t-elle avec les scripts écrits pour ImgBB ?

Oui pour l'appel de téléversement. Envoyez les mêmes champs key et image vers l'URL de MyIMGs.org. La réponse utilise les mêmes noms pour url, url_viewer, display_url, title, width, height, time, expiration et image. Elle ne contient pas thumb, medium ni delete_url, et elle n'accepte ni URL d'image ni paramètre d'expiration.

MyIMGs.org est un service d'hébergement d'images gratuit. Téléversez une image sur la page d'accueil sans compte.