Gzip
Comprima un payload con gzip, deflate o brotli, o descomprímalo de vuelta a sus bytes originales, mediante un solo endpoint que se encarga del trabajo pesado que su aplicación no debería hacer en un hilo de solicitud. Existe para los momentos en que necesita control real sobre la compresión, más allá de la capa automática que ya aplica su servidor web o su CDN.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
La compresión está en todas partes, pero rara vez bajo su control
La mayoría de los stacks web comprimen las respuestas HTTP de forma transparente, lo cual funciona bien para servir páginas pero es inútil cuando necesita comprimir un archivo de log antes de archivarlo, reducir una exportación JSON antes de guardarla, o descomprimir un webhook entrante que llegó codificado en gzip desde un tercero. Esas son tareas a nivel de archivo o blob, no de respuesta HTTP, y hacerlas en línea dentro del código de su aplicación significa quemar ciclos de CPU que podrían estar atendiendo usuarios.
Tres algoritmos, tres compromisos distintos
POST /data/gzip recibe un parámetro de algoritmo — gzip, deflate o brotli — más una dirección de compress o decompress, y devuelve el resultado mediante un task_id. Gzip es la opción más universal, legible por prácticamente cualquier herramienta desde los años noventa; deflate es su algoritmo central sin el envoltorio de gzip, útil cuando una especificación lo exige explícitamente (como algunas estructuras internas de ZIP o implementaciones HTTP más antiguas); brotli, desarrollado y liberado como código abierto más recientemente, suele comprimir más que gzip a una velocidad comparable, lo cual importa cuando está optimizando costos de almacenamiento o tamaño de transferencia para payloads de texto grandes.
Qué determina el tamaño final que obtiene
La razón de compresión depende por completo de la naturaleza de sus datos: texto muy repetitivo como logs, exportaciones CSV o JSON minificado puede reducirse de forma drástica, mientras que formatos ya comprimidos como JPEG o un archivo previamente comprimido con gzip apenas cambiarán de tamaño, e incluso pueden crecer un poco por el overhead del formato. El endpoint no intenta adivinar qué es óptimo para su contenido: usted elige el algoritmo, y el resultado le dice exactamente qué razón de compresión obtuvo.
Diseñado para flujos de trabajo, no para descargas puntuales
Como cada llamada es asíncrona y devuelve un task_id, puede lanzar tareas de compresión desde un worker de cola, una exportación programada o un manejador de webhooks sin bloquear la respuesta, y luego recoger el archivo comprimido o descomprimido desde un enlace firmado o su propio receptor de webhooks. Una tarea fallida — entrada malformada, un flujo ilegible — no le cuesta nada, porque solo cobramos las tareas que terminan con éxito después de agotar los reintentos.
Dónde encaja dentro de un proceso más grande
Este endpoint combina de forma natural con nuestras herramientas de comprimidos y conversión: descomprima un payload gzip entrante, entregue los bytes crudos a un conversor de formato y luego vuelva a comprimir la salida con brotli antes de guardarla. Trátelo como un bloque utilitario que inserta en cualquier flujo que mueva datos entre sistemas con expectativas de compresión distintas, no como un destino en sí mismo.
Qué puede hacer con ella
Pipelines de archivado de logs
Comprima con gzip los archivos de log rotados antes de moverlos a almacenamiento frío, reduciendo costos de almacenamiento sin cargar la compresión al servidor de la aplicación.
Decodificación de webhooks entrantes
Descomprima payloads codificados en gzip enviados por un proveedor externo antes de parsear el JSON o XML que traen adentro.
Optimización de exportaciones de datos
Comprima con brotli exportaciones grandes en CSV o JSON antes de ofrecerlas como descarga, reduciendo el tiempo de transferencia para usuarios con conexiones lentas.
Compatibilidad con formatos heredados
Comprima con deflate un payload al integrarse con un sistema o protocolo antiguo que espera el algoritmo crudo sin el encabezado de gzip.
Preguntas frecuentes
¿Cómo comprimo un archivo usando la API de gzip?
Envíe el archivo por POST a /data/gzip con la dirección en compress y el algoritmo que quiera (gzip, deflate o brotli); recibirá un task_id y el archivo comprimido llega por webhook o enlace firmado.
¿Soporta brotli además de gzip?
Sí, el endpoint soporta gzip, deflate y brotli, y se elige con un solo parámetro de algoritmo en la misma solicitud.
¿Puedo descomprimir un archivo de vuelta a su forma original?
Sí, defina la dirección como decompress y el endpoint revierte la operación, devolviendo los bytes originales.
¿Existe un plan gratuito para la API de compresión?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta cada solicitud de compresión?
$0.002 por solicitud, ya sea que comprima un archivo de 1KB o una exportación grande, y las solicitudes fallidas nunca se cobran.
¿Qué algoritmo da el resultado más pequeño, gzip o brotli?
Brotli suele comprimir datos de texto más que gzip a una velocidad comparable, aunque la ganancia real depende de su contenido específico.
¿Comprimir un archivo ya comprimido como un JPEG lo reduce más?
No de forma significativa: formatos como JPEG, PNG o un archivo ya comprimido con gzip están cerca de su límite de entropía, así que volver a comprimirlos aporta poco o nada.
¿Cuánto tiempo tengo para descargar el resultado?
El enlace firmado del resultado es válido durante 24 horas; para flujos automatizados, un webhook entrega el resultado en cuanto la tarea termina.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/gzip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/gzip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/gzip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/gzip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/gzip", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.gzip",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |