API voor afbeeldingen hosten: afbeeldingen uploaden met één POST-verzoek

Met de API van MyIMGs.org upload je een afbeelding en krijg je in één verzoek een directe link terug. Stuur een bestand of een base64-afbeelding mee met je API-sleutel en je krijgt JSON terug, klaar voor apps, websites en forums. Elke afbeelding wordt via HTTPS geleverd vanaf een CDN. API-toegang zit in elk Pro-abonnement, vanaf $3.29 per maand.

Zo krijg je een API-sleutel voor afbeeldingen hosten

  1. Maak een gratis MyIMGs.org-account aan en verifieer je e-mailadres.
  2. Kies een abonnement op de pagina Pro-abonnementen en prijzen. API-toegang zit in elk Pro-abonnement.
  3. Open je accountpagina en kies API-sleutel aanmaken.
  4. Kopieer de sleutel. Die wordt maar één keer getoond. Raak je de sleutel kwijt, maak dan een nieuwe aan. De oude werkt dan niet meer.

Een afbeelding uploaden met curl (snelstart)

Vervang YOUR_API_KEY door je sleutel en voer uit:

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

Het antwoord is JSON. Gebruik data.url als directe link naar de afbeelding en data.viewer_url voor de pagina waarop de afbeelding staat:

{
  "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-referentie voor afbeeldingen uploaden

Eén endpoint: POST https://myimgs.org/api/v1/upload

Authenticatie

Stuur je sleutel mee in de header Authorization: Bearer YOUR_API_KEY. Voor scripts die voor ImgBB zijn geschreven, werkt ook een formulierveld key. Gebruik waar mogelijk de header, want formuliervelden kunnen in serverlogs terechtkomen.

Verzoekvelden

VeldVerplichtBeschrijving
imageJaHet afbeeldingsbestand (multipart-formuliergegevens) of een base64-tekenreeks. Een data-URI zoals data:image/png;base64,... wordt ook geaccepteerd.
nameNeeBestandsnaam voor de opgeslagen afbeelding. Alleen letters, cijfers, streepjes en underscores blijven behouden. Standaard is dit de naam van het geüploade bestand.
optimizeNeeStuur 1 of true mee om JPG-, PNG- en WebP-afbeeldingen te converteren naar gecomprimeerd WebP wanneer het bestand daardoor kleiner wordt. GIF's worden nooit geconverteerd. Het antwoord toont het uiteindelijke bestand in data.extension en data.url.
keyNeeJe API-sleutel, als je de Authorization-header niet gebruikt.

Antwoordvelden

VeldBeschrijving
successtrue als de afbeelding is opgeslagen.
data.idKorte ID van de afbeelding.
data.nameOpgeslagen bestandsnaam, zonder extensie.
data.extensionjpg, png, gif of webp, bepaald aan de hand van de echte bestandsinhoud.
data.sizeOpgeslagen grootte in bytes.
data.optimizedtrue als de afbeelding naar WebP is geconverteerd omdat je optimize hebt meegestuurd, anders false.
data.urlDirecte link naar de afbeelding. Gebruik die in <img>-tags, BBCode en apps.
data.viewer_urlLink naar de pagina waarop de afbeelding staat. data.url_viewer bevat dezelfde link.
data.titleHetzelfde als data.name.
data.display_urlHetzelfde als data.url.
data.width, data.heightAfmetingen van de afbeelding in pixels.
data.timeUploadtijd als Unix-timestamp.
data.expirationAltijd 0: afbeeldingen verlopen niet.
data.imageHet opgeslagen bestand: filename, name, mime, extension en url.
statusDe HTTP-statuscode, 201 als de afbeelding is opgeslagen.

API-voorbeelden voor afbeeldingen uploaden in JavaScript, Python en PHP

JavaScript (Node.js 18 of nieuwer)

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

Een base64-afbeelding uploaden

Handig als de afbeelding alleen in het geheugen bestaat, bijvoorbeeld een canvas of een screenshot:

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

Grote foto's uploaden sneller als ze kleiner zijn. Je kunt afbeeldingen in je browser comprimeren met de gratis afbeeldingscompressor voordat je ze verstuurt.

Foutmeldingen en statuscodes van de API

Bij fouten krijg je JSON terug zoals {"success": false, "error": "message"} met een van deze statuscodes:

StatusBetekenis
201Afbeelding opgeslagen. Het antwoord bevat de links.
401De API-sleutel ontbreekt of is onjuist.
403Het account heeft geen actief Pro-abonnement, of het account is uitgeschakeld.
413De afbeelding is groter dan 96 MB.
422Er is geen afbeelding verstuurd, de base64-tekst is ongeldig, of het bestand is geen JPG-, PNG-, GIF- of WebP-afbeelding.
429Meer dan 60 verzoeken in één minuut. Wacht even en probeer het opnieuw.

Limieten van de API

Afbeeldingsgrootte96 MB per afbeelding
FormatenJPG, PNG, GIF (animatie blijft behouden) en WebP
Verzoeklimiet60 verzoeken per minuut per account
OpslagruimteOnbeperkte opslag bij Pro-abonnementen
LeveringCDN via HTTPS, directe links werken in forums, op websites en in apps
InvoerBestandsupload of base64

Alternatief voor de ImgBB-API

Upload je al met de ImgBB-API, dan stap je over met twee aanpassingen: richt het verzoek op https://myimgs.org/api/v1/upload en gebruik je MyIMGs.org-sleutel. De velden key en image werken hetzelfde en de directe link komt terug in data.url. Het antwoord gebruikt ook de namen van ImgBB voor url_viewer, display_url, title, width, height, time, expiration en image. Het bevat geen thumb, medium of delete_url, en het haalt geen afbeelding op via een URL en kent geen instelling voor een vervaldatum. Pro-abonnementen geven je afbeeldingen tot 96 MB, geen advertenties en onbeperkte opslag.

Prijzen van de API

De API zit in elk Pro-abonnement. Kies de factureringsperiode die bij je past:

Maandabonnement

$11.49 per maand

Jaarabonnement

$6.49 per maand

gefactureerd $77.88

3-jaarsabonnement

$3.29 per maand

gefactureerd $118.44

Bekijk de Pro-abonnementen en vraag je API-sleutel op

Veelgestelde vragen over de API

Is er een gratis API om afbeeldingen te hosten?

Uploaden via de API vereist een Pro-abonnement, dat vanaf $3.29 per maand te krijgen is. Met een gratis account host je via de website tot 20 afbeeldingen, maar je hebt geen API-sleutel.

Wat is de maximale afbeeldingsgrootte voor de API?

96 MB per afbeelding. Grotere bestanden geven een 413-fout.

Welke afbeeldingsformaten accepteert de upload-API?

JPG, PNG, GIF en WebP. Het formaat wordt uit het bestand zelf gelezen. Een bestand met de verkeerde extensie wordt dus toch op de echte inhoud gecontroleerd en alles wat geen echte afbeelding is, wordt geweigerd. Geanimeerde GIF's blijven geanimeerd.

Kan ik een afbeelding uploaden vanaf een URL?

Nee. Stuur het bestand als multipart-formuliergegevens, of stuur de afbeelding als base64-tekenreeks. URL's ophalen is om veiligheidsredenen bewust niet mogelijk.

Kan ik afbeeldingen verwijderen met de API?

Nog niet. Uploaden is voorlopig de enige API-aanroep. Verwijder afbeeldingen vanuit je dashboard.

Hoe wijzig of trek ik mijn API-sleutel in?

Gebruik Nieuwe sleutel maken op je accountpagina. De oude sleutel werkt direct niet meer en de nieuwe sleutel wordt maar één keer getoond.

Wat is de verzoeklimiet van de API?

60 verzoeken per minuut per account. Daarboven antwoordt de API met status 429 tot de minuut voorbij is.

Verlopen afbeeldingen die via de API zijn geüpload?

Nee. Er is geen instelling voor een vervaldatum. Afbeeldingen die je met je sleutel uploadt, blijven op je account staan.

Werkt de API met scripts die voor ImgBB zijn geschreven?

Ja, voor de uploadaanroep. Stuur dezelfde velden key en image naar de URL van MyIMGs.org. Het antwoord gebruikt dezelfde namen voor url, url_viewer, display_url, title, width, height, time, expiration en image. Het bevat geen thumb, medium of delete_url, en het accepteert geen afbeeldings-URL of instelling voor een vervaldatum.

MyIMGs.org is een gratis dienst om afbeeldingen te hosten. Upload een afbeelding op de homepage zonder account.