API de alojamiento de imágenes: sube imágenes con una solicitud POST

La API de alojamiento de imágenes de MyIMGs.org sube una imagen y devuelve un enlace directo en una sola solicitud. Envía un archivo o una imagen en base64 con tu clave de API y recibe JSON, listo para apps, sitios web y foros. Cada imagen se sirve desde un CDN por HTTPS. El acceso a la API está incluido en todos los planes Pro, desde $3.29 al mes.

Cómo obtener una clave de API de alojamiento de imágenes

  1. Crea una cuenta gratis en MyIMGs.org y verifica tu correo electrónico.
  2. Elige un plan en la página de planes Pro y precios. El acceso a la API forma parte de todos los planes Pro.
  3. Abre la página de tu cuenta y elige Crear clave de API.
  4. Copia la clave. Se muestra una sola vez. Si la pierdes, crea una clave nueva y la anterior deja de funcionar.

Cómo subir una imagen con curl (guía rápida)

Reemplaza YOUR_API_KEY por tu clave y ejecuta:

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

La respuesta es JSON. Usa data.url como enlace directo de la imagen y data.viewer_url para la página que muestra la imagen:

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

Referencia de la API para subir imágenes

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

Autenticación

Envía tu clave en el encabezado Authorization: Bearer YOUR_API_KEY. Para scripts escritos para ImgBB, también funciona un campo de formulario key. Usa el encabezado siempre que puedas, porque los campos de formulario pueden quedar en los registros del servidor.

Campos de la solicitud

CampoObligatorioDescripción
imageSíEl archivo de imagen (multipart form data) o una cadena en base64. Se acepta un data URI como data:image/png;base64,....
nameNoNombre de archivo para la imagen almacenada. Solo se conservan letras, números, guion y guion bajo. Por defecto usa el nombre del archivo subido.
optimizeNoEnvía 1 o true para convertir imágenes JPG, PNG y WebP a WebP comprimido cuando eso reduce el tamaño del archivo. Los GIF nunca se convierten. La respuesta muestra el archivo final en data.extension y data.url.
keyNoTu clave de API, si no usas el encabezado Authorization.

Campos de la respuesta

CampoDescripción
successtrue cuando la imagen se almacenó.
data.idID corto de la imagen.
data.nameNombre del archivo almacenado, sin extensión.
data.extensionjpg, png, gif o webp, tomada del contenido real del archivo.
data.sizeTamaño almacenado en bytes.
data.optimizedtrue cuando la imagen se convirtió a WebP porque enviaste optimize, de lo contrario false.
data.urlEnlace directo de la imagen. Úsalo en etiquetas <img>, BBCode y apps.
data.viewer_urlEnlace a la página que muestra la imagen. data.url_viewer contiene el mismo enlace.
data.titleIgual que data.name.
data.display_urlIgual que data.url.
data.width, data.heightTamaño de la imagen en píxeles.
data.timeHora de la subida como marca de tiempo Unix.
data.expirationSiempre 0: las imágenes no caducan.
data.imageEl archivo almacenado: filename, name, mime, extension y url.
statusEl código de estado HTTP, 201 cuando la imagen se almacenó.

Ejemplos de la API para subir imágenes en JavaScript, Python y PHP

JavaScript (Node.js 18 o superior)

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

Cómo subir una imagen en base64

Es útil cuando la imagen solo existe en memoria, por ejemplo un canvas o una captura de pantalla:

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

Las fotos grandes se suben más rápido cuando pesan menos. Puedes comprimir imágenes en tu navegador con el compresor de imágenes gratis antes de enviarlas.

Errores y códigos de estado de la API de alojamiento de imágenes

Los errores devuelven JSON como {"success": false, "error": "message"} con uno de estos códigos de estado:

EstadoSignificado
201Imagen almacenada. La respuesta contiene los enlaces.
401Falta la clave de API o es incorrecta.
403La cuenta no tiene un plan Pro activo, o la cuenta está desactivada.
413La imagen pesa más de 96 MB.
422No se envió ninguna imagen, el texto en base64 no es válido, o el archivo no es una imagen JPG, PNG, GIF o WebP.
429Más de 60 solicitudes en un minuto. Espera y vuelve a intentarlo.

Límites de la API de alojamiento de imágenes

Tamaño de imagen96 MB por imagen
FormatosJPG, PNG, GIF (se conserva la animación) y WebP
Límite de solicitudes60 solicitudes por minuto por cuenta
AlmacenamientoAlmacenamiento ilimitado en los planes Pro
EntregaCDN por HTTPS, los enlaces directos funcionan en foros, sitios web y apps
EntradaSubida de archivo o base64

Alternativa a la API de ImgBB

Si ya subes imágenes con la API de ImgBB, cambiar a MyIMGs.org requiere dos ajustes: apunta la solicitud a https://myimgs.org/api/v1/upload y usa tu clave de MyIMGs.org. Los campos key e image funcionan igual, y el enlace directo llega en data.url. La respuesta también usa los nombres de ImgBB para url_viewer, display_url, title, width, height, time, expiration e image. No incluye thumb, medium ni delete_url, y no descarga una imagen desde una URL ni acepta un ajuste de caducidad. Los planes Pro suman imágenes de 96 MB, sin anuncios y almacenamiento ilimitado.

Precio de la API de alojamiento de imágenes

La API está incluida en todos los planes Pro. Elige el periodo de facturación que más te convenga:

Plan mensual

$11.49 al mes

Plan anual

$6.49 al mes

facturado $77.88

Plan de 3 años

$3.29 al mes

facturado $118.44

Ver los planes Pro y obtener tu clave de API

Preguntas frecuentes sobre la API de alojamiento de imágenes

¿Existe una API de alojamiento de imágenes gratis?

No. Subir con la API requiere un plan Pro, que empieza en $3.29 al mes. Una cuenta gratis aloja hasta 20 imágenes desde el sitio web y no tiene clave de API.

¿Cuál es el tamaño máximo de imagen de la API?

96 MB por imagen. Los archivos más grandes reciben un error 413.

¿Qué formatos de imagen acepta la API para subir imágenes?

JPG, PNG, GIF y WebP. El formato se lee del propio archivo, así que un archivo con la extensión equivocada se comprueba igualmente por su contenido real, y todo lo que no sea una imagen real se rechaza. Los GIF animados siguen animados.

¿Puedo subir una imagen desde una URL?

No. Envía el archivo como multipart form data, o envía la imagen como una cadena en base64. La descarga de URLs se deja fuera a propósito por seguridad.

¿Puedo eliminar imágenes con la API?

Todavía no. Por ahora subir es la única llamada de la API. Elimina las imágenes desde tu panel.

¿Cómo cambio o revoco mi clave de API?

Usa Crear una clave nueva en la página de tu cuenta. La clave anterior deja de funcionar al instante y la clave nueva se muestra una sola vez.

¿Cuál es el límite de solicitudes de la API?

60 solicitudes por minuto por cuenta. Por encima de eso la API responde con el estado 429 hasta que termine el minuto.

¿Caducan las imágenes subidas con la API?

No. No existe ningún ajuste de caducidad. Las imágenes subidas con tu clave se quedan en tu cuenta.

¿Funciona la API con scripts escritos para ImgBB?

Sí, para la llamada de subida. Envía los mismos campos key e image a la URL de MyIMGs.org. La respuesta usa los mismos nombres para url, url_viewer, display_url, title, width, height, time, expiration e image. No incluye thumb, medium ni delete_url, y no acepta la URL de una imagen ni un ajuste de caducidad.

MyIMGs.org es un servicio gratis de alojamiento de imágenes. Sube una imagen en la página de inicio sin necesidad de cuenta.