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 OpenAPIAutenticaçã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_key | Chave ausente, desconhecida ou revogada |
| 413 too_large | A imagem excede o limite de tamanho |
| 415 unsupported_image | Caminho síncrono: não é uma imagem PNG, JPEG, WebP ou AVIF suportada |
| 422 image_too_large | Caminho síncrono: a imagem tem mais pixels do que o serviço consegue processar |
| failed / unsupported | Tarefas na fila informam imagens não suportadas no resultado como status: failed e failure: unsupported |
| failed / too_large | Tarefas na fila informam imagens acima do limite de processamento como status: failed e failure: too_large |
| 429 quota_exceeded | A cota mensal acabou |
| 503 busy | O servidor está ocupado, tente novamente em instantes |