Desarrolladores

API de compresión de imágenes

Comprime JPG, PNG, WebP y AVIF con la API de compresión de imágenes de Bitinz. Imágenes más ligeras en tu flujo de trabajo, con cuota mensual gratuita.

Descargar la especificación OpenAPI
Obtener una clave de API

Autenticación

Crea una clave de API en tu panel y usa la autenticación HTTP Basic (usuario api, contraseña = la clave) o envía Authorization: Bearer <key>.

curl --user api:YOUR_API_KEY ...
# or
curl -H "Authorization: Bearer YOUR_API_KEY" ...

Comprimir una imagen

Envía la imagen por POST como cuerpo de la solicitud a /api/v1/shrink. Parámetros de consulta opcionales: level (fast / default / best) y filename.

curl -i --user api:YOUR_API_KEY \
  --data-binary @photo.jpg \
  "https://bitinz.com/api/v1/shrink?level=default&filename=photo.jpg"

Respuesta

Las solicitudes correctas suelen devolver 201 con status done. La cabecera Location y output.url apuntan a la descarga. Compression-Count es tu uso de este mes.

HTTP/1.1 201 Created
Location: https://bitinz.com/api/v1/results/<id>/download
Compression-Count: 1

{
  "id": "<id>",
  "status": "done",
  "input":  { "size": 2277375, "type": "image/jpeg" },
  "output": { "size": 992450, "type": "image/jpeg", "ratio": 0.436,
              "url": "https://bitinz.com/api/v1/results/<id>/download" },
  "unchanged": false,
  "expiresAt": "2026-10-02T12:00:00Z"
}

Aceptada y en espera: 202

Si la cola es larga, puede devolverse 202 Accepted con status pending. Location apunta al estado del trabajo, no a la descarga. Guarda esta URL y consúltala en lugar de volver a enviar la imagen.

HTTP/1.1 202 Accepted
Location: https://bitinz.com/api/v1/results/<id>

{
  "id": "<id>",
  "status": "pending",
  "input": { "size": 2277375 },
  "expiresAt": "2026-10-02T12:00:00Z"
}

Consultar el estado del trabajo

Envía GET /api/v1/results/{id} a la URL devuelta en Location cada 1–2 segundos. pending significa en cola (queuePosition indica su posición actual); processing significa que la compresión está en curso. Cuando status sea done, descarga desde downloadUrl. failed significa que el trabajo no pudo completarse; failure indica la categoría y note explica el motivo.

curl "https://bitinz.com/api/v1/results/<id>"

{
  "id": "<id>",
  "status": "done",
  "available": true,
  "downloadUrl": "/api/v1/results/<id>/download",
  "outputSize": 992450,
  "unchanged": false
}

Descargar el resultado

Los resultados pueden descargarse hasta que caducan; después, la URL devuelve 410.

curl -o photo.min.jpg "https://bitinz.com/api/v1/results/<id>/download"

Códigos de error

{ "error": { "code": "...", "message": "..." } }

401 unauthorized / invalid_keyClave ausente, desconocida o revocada
413 too_largeLa imagen supera el límite de tamaño
415 unsupported_imageRuta síncrona: no es una imagen PNG, JPEG, WebP o AVIF compatible
422 image_too_largeRuta síncrona: la imagen tiene más píxeles de los que el servicio puede procesar
failed / unsupportedLos trabajos en cola indican las imágenes no compatibles en el resultado como status: failed y failure: unsupported
failed / too_largeLos trabajos en cola indican las imágenes que superan el límite de procesamiento como status: failed y failure: too_large
429 quota_exceededSe ha agotado la cuota mensual
503 busyEl servidor está ocupado; inténtalo de nuevo en breve