Desenvolvedores

API de compressão de imagens

Comprima JPG, PNG, WebP e AVIF com a API de compressão de imagens da Bitinz. Imagens menores no seu fluxo de trabalho, com cota mensal gratuita.

Baixar a especificação OpenAPI
Obter uma chave de API

Autenticação

Crie uma chave de API no seu painel e use autenticação HTTP Basic (usuário api, senha = chave) ou envie Authorization: Bearer <key>.

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

Comprimir uma imagem

Envie a imagem via POST como corpo da solicitação para /api/v1/shrink. Parâmetros de consulta opcionais: level (fast / default / best) e filename.

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

Resposta

Solicitações bem-sucedidas costumam retornar 201 com status done. O cabeçalho Location e output.url apontam para o download. Compression-Count é o seu uso neste mês.

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

Aceita e aguardando: 202

Com uma fila maior, pode retornar 202 Accepted com status pending. Location aponta para o status da tarefa, não para o download. Guarde essa URL e consulte-a em vez de enviar a imagem de novo.

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 o status da tarefa

Envie GET /api/v1/results/{id} para a URL retornada em Location a cada 1–2 segundos. pending significa na fila (queuePosition indica a posição atual); processing significa que a compressão está em andamento. Quando status for done, baixe em downloadUrl. failed significa que a tarefa não pôde terminar; failure identifica a categoria e note explica o 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
}

Baixar o resultado

Os resultados podem ser baixados até expirarem; depois, a URL retorna 410.

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

Códigos de erro

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

401 unauthorized / invalid_keyChave ausente, desconhecida ou revogada
413 too_largeA imagem excede o limite de tamanho
415 unsupported_imageCaminho síncrono: não é uma imagem PNG, JPEG, WebP ou AVIF suportada
422 image_too_largeCaminho síncrono: a imagem tem mais pixels do que o serviço consegue processar
failed / unsupportedTarefas na fila informam imagens não suportadas no resultado como status: failed e failure: unsupported
failed / too_largeTarefas na fila informam imagens acima do limite de processamento como status: failed e failure: too_large
429 quota_exceededA cota mensal acabou
503 busyO servidor está ocupado, tente novamente em instantes