Convertir formato
Tarde o temprano cualquier flujo de trabajo se topa con un formato que no reconoce: un diseñador entrega un TIFF, el CMS exige WebP, un importador antiguo se atasca con un BMP. Este endpoint recibe una imagen y devuelve otra, en el formato que su siguiente sistema realmente acepta, sin que tenga que instalar una librería gráfica ni mantener un servidor para eso.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El problema de los formatos que no coinciden
Pocos equipos controlan todos los formatos que llegan a su flujo de trabajo. Las cámaras siguen exportando TIFF, los escáneres todavía producen BMP en abundancia, algunos CMS antiguos esperan GIF, y los frontends modernos piden cada vez más WebP por su velocidad de carga. En vez de empaquetar una librería gráfica en cada servicio que toca un archivo subido, envía la imagen una sola vez a /image/convert y recibe exactamente el formato que necesita.
Qué ocurre después de llamar al endpoint
La solicitud se acepta de inmediato y devuelve un task_id; la conversión en sí corre de forma asíncrona, así que su servicio nunca se queda bloqueado esperando el procesamiento de la imagen. Cuando el trabajo termina, recibe una notificación mediante un webhook firmado, o descarga el resultado desde un enlace firmado que permanece válido durante 24 horas. En ambos casos, tanto el archivo original como el convertido se eliminan al vencer el período de retención, y nada se usa jamás para entrenar modelos.
Una breve nota sobre los formatos mismos
El JPG sigue siendo el formato por defecto para fotografías porque su compresión con pérdida se adapta bien a los tonos continuos; PNG y GIF conservan cada píxel exacto y admiten transparencia o animaciones sencillas; BMP es el más antiguo del grupo, un formato sin compresión que aún generan algunas herramientas de Windows; TIFF es la opción de archivo para imprenta y digitalización; WebP es el más reciente, pensado para la web, y suele producir archivos más livianos que JPG o PNG con calidad comparable. Saber cuál necesita realmente su destino evita mucho desperdicio de ancho de banda.
Dónde encaja en la automatización
Como la llamada es un único POST con una respuesta JSON predecible, se integra sin fricción en manejadores de carga de archivos, scripts de migración masiva o tareas programadas que recorren una biblioteca de medios y la normalizan a un solo formato de destino. Usted describe el formato de origen y el de destino en el cuerpo de la solicitud; la cola de tareas se encarga de la concurrencia, reintenta automáticamente hasta tres veces las conversiones fallidas y nunca le cobra por una tarea que termina fallando.
Quién recurre a esto
Está pensado para el desarrollador que no quiere cargar con códecs de imagen como dependencia, la agencia que migra de un día para otro la biblioteca de activos de un cliente, y el producto SaaS que acepta cargas arbitrarias y necesita normalizarlas antes de almacenarlas o mostrarlas.
Qué puede hacer con ella
Ingesta en un CMS
Una plataforma de publicación acepta cargas en el formato que sea que produjo la cámara del colaborador y convierte todo a WebP antes de que llegue a la base de datos de contenido.
Migración de archivos heredados
Una agencia hereda miles de archivos BMP y TIFF de un viejo servidor de archivos del cliente y los convierte por lotes a PNG antes de relanzar el sitio web.
Del taller de impresión a la web
Las pruebas TIFF en alta resolución de una imprenta se convierten automáticamente a JPG para que el equipo de ventas las revise en el navegador sin descargar gigabytes.
Consistencia entre plataformas
El backend de una aplicación móvil normaliza las fotos que llegan desde iOS y Android a un único formato JPG antes de procesarlas más a fondo.
Preguntas frecuentes
¿Qué formatos admite la API para convertir formato de imagen?
JPG, PNG, GIF, BMP, TIFF y WebP, en cualquier dirección entre ellos.
¿Existe un plan gratuito para convertir imágenes?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuesta convertir una imagen?
$0.002 por solicitud más $0.005 por imagen, y solo se cobra por las tareas que efectivamente se completan.
¿La conversión es síncrona?
No, es asíncrona. Recibe un task_id de inmediato y el resultado llega mediante un webhook firmado o un enlace firmado válido por 24 horas.
¿Qué pasa si una conversión falla?
El sistema reintenta automáticamente hasta tres veces; si aun así falla, recibe un error claro y esa tarea nunca se cobra.
¿Puedo convertir PNG con transparencia a JPG?
Sí, aunque el JPG no tiene canal alfa, así que las áreas transparentes se aplanan; si necesita conservar la transparencia, conviene convertir a PNG o WebP en su lugar.
¿Hay una opción para convertir muchas imágenes a la vez?
Llama al endpoint por cada imagen, pero nada impide enviar muchas solicitudes en paralelo o programar un proceso por lotes contra la API; la cola está diseñada para manejar volumen.
¿Cuánto tiempo está disponible el archivo convertido para descargar?
El enlace de descarga firmado es válido por 24 horas, y después el archivo se elimina de nuestros sistemas junto con el original que subió.
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/image/convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/convert", 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
{
"image": "https://ejemplo.com/imagen.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.convert",
"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 | 15 |
max_megapixels | 12 |
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. |