API hosting immagini: carica immagini con una sola richiesta POST

L'API di hosting di immagini di MyIMGs.org carica un'immagine e restituisce un link diretto in una sola richiesta. Invia un file o un'immagine in base64 con la tua chiave API e ricevi un JSON, pronto per app, siti web e forum. Ogni immagine viene servita da una CDN in HTTPS. L'accesso all'API è incluso in ogni piano Pro, da $3.29 al mese.

Come ottenere una chiave API per l'hosting di immagini

  1. Crea un account MyIMGs.org gratuito e verifica la tua email.
  2. Scegli un piano nella pagina piani Pro e prezzi. L'accesso all'API è incluso in ogni piano Pro.
  3. Apri la pagina del tuo account e scegli Crea chiave API.
  4. Copia la chiave. Viene mostrata una sola volta. Se la perdi, crea una nuova chiave e quella vecchia smette di funzionare.

Carica un'immagine con curl (guida rapida)

Sostituisci YOUR_API_KEY con la tua chiave ed esegui:

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

La risposta è in JSON. Usa data.url come link diretto all'immagine e data.viewer_url per la pagina che mostra l'immagine:

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

Riferimento API per il caricamento di immagini

Un solo endpoint: POST https://myimgs.org/api/v1/upload

Autenticazione

Invia la chiave nell'header Authorization: Bearer YOUR_API_KEY. Per gli script scritti per ImgBB funziona anche un campo del modulo key. Quando puoi, usa l'header, perché i campi del modulo possono finire nei log del server.

Campi della richiesta

CampoObbligatorioDescrizione
imageSìIl file dell'immagine (multipart form data) o una stringa base64. È accettato anche un data URI come data:image/png;base64,....
nameNoNome del file per l'immagine salvata. Vengono mantenuti solo lettere, numeri, trattino e trattino basso. Se manca, si usa il nome del file caricato.
optimizeNoInvia 1 o true per convertire le immagini JPG, PNG e WebP in WebP compresso quando il file diventa più piccolo. Le GIF non vengono mai convertite. La risposta mostra il file finale in data.extension e data.url.
keyNoLa tua chiave API, se non usi l'header Authorization.

Campi della risposta

CampoDescrizione
successtrue quando l'immagine è stata salvata.
data.idID breve dell'immagine.
data.nameNome del file salvato, senza estensione.
data.extensionjpg, png, gif o webp, ricavata dal contenuto reale del file.
data.sizeDimensione salvata in byte.
data.optimizedtrue quando l'immagine è stata convertita in WebP perché hai inviato optimize, altrimenti false.
data.urlLink diretto all'immagine. Usalo nei tag <img>, nel BBCode e nelle app.
data.viewer_urlLink alla pagina che mostra l'immagine. data.url_viewer contiene lo stesso link.
data.titleUguale a data.name.
data.display_urlUguale a data.url.
data.width, data.heightDimensioni dell'immagine in pixel.
data.timeOra del caricamento come timestamp Unix.
data.expirationSempre 0: le immagini non scadono.
data.imageIl file salvato: filename, name, mime, extension e url.
statusIl codice di stato HTTP, 201 quando l'immagine è stata salvata.

Esempi di API per caricare immagini in JavaScript, Python e PHP

JavaScript (Node.js 18 o successivo)

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

Carica un'immagine in base64

Utile quando l'immagine esiste solo in memoria, per esempio un canvas o uno 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"

Le foto grandi si caricano più in fretta se sono più leggere. Puoi comprimere le immagini nel browser con il compressore di immagini gratuito prima di inviarle.

Errori e codici di stato dell'API di hosting di immagini

Gli errori restituiscono un JSON come {"success": false, "error": "message"} con uno di questi codici di stato:

StatoSignificato
201Immagine salvata. La risposta contiene i link.
401La chiave API manca o è errata.
403L'account non ha un piano Pro attivo, oppure l'account è disattivato.
413L'immagine supera i 96 MB.
422Nessuna immagine inviata, il testo base64 non è valido, oppure il file non è un'immagine JPG, PNG, GIF o WebP.
429Più di 60 richieste in un minuto. Attendi e riprova.

Limiti dell'API di hosting di immagini

Dimensione dell'immagine96 MB per immagine
FormatiJPG, PNG, GIF (animazione mantenuta) e WebP
Limite di richieste60 richieste al minuto per ogni account
Spazio di archiviazioneSpazio illimitato con i piani Pro
DistribuzioneCDN in HTTPS, i link diretti funzionano su forum, siti web e app
InputCaricamento di file o base64

Alternativa all'API di ImgBB

Se carichi già con l'API di ImgBB, per passare bastano due modifiche: indirizza la richiesta a https://myimgs.org/api/v1/upload e usa la tua chiave MyIMGs.org. I campi key e image funzionano allo stesso modo e il link diretto torna in data.url. La risposta usa anche i nomi di ImgBB per url_viewer, display_url, title, width, height, time, expiration e image. Non ha thumb, medium né delete_url, e non scarica immagini da un URL né accetta un'impostazione di scadenza. I piani Pro aggiungono immagini da 96 MB, niente pubblicità e spazio illimitato.

Prezzi dell'API di hosting di immagini

L'API è inclusa in ogni piano Pro. Scegli il periodo di fatturazione che preferisci:

Piano mensile

$11.49 al mese

Piano annuale

$6.49 al mese

fatturati $77.88

Piano triennale

$3.29 al mese

fatturati $118.44

Scopri i piani Pro e ottieni la tua chiave API

Domande frequenti sull'API di hosting di immagini

Esiste un'API gratuita per l'hosting di immagini?

Per caricare con l'API serve un piano Pro, a partire da $3.29 al mese. Un account gratuito ospita fino a 20 immagini caricate dal sito e non ha una chiave API.

Qual è la dimensione massima di un'immagine per l'API?

96 MB per immagine. I file più grandi ricevono un errore 413.

Quali formati di immagine accetta l'API di caricamento?

JPG, PNG, GIF e WebP. Il formato viene letto dal file stesso, quindi un file con l'estensione sbagliata viene comunque controllato in base al contenuto reale, e tutto ciò che non è una vera immagine viene rifiutato. Le GIF animate restano animate.

Posso caricare un'immagine da un URL?

No. Invia il file come multipart form data, oppure invia l'immagine come stringa base64. Il recupero da URL è escluso di proposito per motivi di sicurezza.

Posso eliminare immagini con l'API?

Non ancora. Per ora il caricamento è l'unica chiamata dell'API. Elimina le immagini dalla tua dashboard.

Come cambio o revoco la mia chiave API?

Usa Crea una nuova chiave nella pagina del tuo account. La vecchia chiave smette subito di funzionare e la nuova viene mostrata una sola volta.

Qual è il limite di richieste dell'API?

60 richieste al minuto per ogni account. Oltre questo limite l'API risponde con lo stato 429 fino alla fine del minuto.

Le immagini caricate con l'API scadono?

No. Non esiste alcuna impostazione di scadenza. Le immagini caricate con la tua chiave restano nel tuo account.

L'API funziona con gli script scritti per ImgBB?

Sì, per la chiamata di caricamento. Invia gli stessi campi key e image all'URL di MyIMGs.org. La risposta usa gli stessi nomi per url, url_viewer, display_url, title, width, height, time, expiration e image. Non ha thumb, medium né delete_url, e non accetta un URL di immagine né un'impostazione di scadenza.

MyIMGs.org è un servizio gratuito di hosting di immagini. Carica un'immagine nella home page senza account.