Aplicar un filtro
Aplicar un filtro a mano funciona para una foto, pero se vuelve inmanejable con diez mil. Este endpoint aplica efectos con nombre propio, sepia, desenfoque gaussiano, enfoque y varios más, sobre cualquier imagen compatible mediante una sola llamada, para que un catálogo, una cola de moderación o un flujo de contenido transformen imágenes exactamente igual cada vez.
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.
Un endpoint, varios efectos distintos
El sepia desplaza la imagen hacia tonos ámbar cálidos que recuerdan las impresiones de principios del siglo veinte, el desenfoque suaviza los bordes mediante un núcleo gaussiano para ocultar detalle o reducir ruido, y el enfoque hace lo contrario, realzando el contraste local para que los bordes se vean nítidos. Cada filtro es un algoritmo distinto, no un preset apilado sobre otro, y por eso el resultado se mantiene predecible al automatizarlo.
Quién recurre realmente a una api de filtros
Los marketplaces aplican un estilo consistente sobre las fotos que suben los vendedores, los archivos de medios usan desenfoque para proteger rostros o placas antes de publicar, las apps de fotografía ofrecen enfoque como corrección de un toque para tomas ligeramente movidas, y los productos de nostalgia o recuerdo usan sepia para transmitir 'fotografía antigua' sin necesitar una impresión real de época. Nada de eso escala como tarea manual una vez que el volumen supera unas pocas decenas de imágenes al día.
Cómo llamarlo y obtener el resultado
Envía la imagen de origen y el nombre del filtro a POST /image/filter; la llamada devuelve un task_id de inmediato porque cada trabajo de filtrado corre de forma asíncrona en la cola. La imagen terminada llega mediante un webhook firmado, la opción confiable para flujos automatizados, o mediante un enlace firmado válido por 24 horas cuando una persona solo necesita descargar el archivo.
De dónde vienen estos efectos
El sepia toma su nombre de la tinta sepia real usada en impresiones fotográficas del siglo diecinueve, por eso el nombre persiste incluso en formato completamente digital, mientras que el desenfoque y el enfoque son descendientes directos de los núcleos de convolución desarrollados para el procesamiento de imágenes décadas antes de que el software de consumo los convirtiera en un botón. Conocer ese origen importa menos que saber que cada filtro se comporta de forma consistente, que es justamente el sentido de llevarlo a una api en lugar de un paso de edición manual.
Automatización sin sorpresas
Un trabajo de filtro fallido nunca se cobra; la plataforma reintenta automáticamente hasta tres veces y solo devuelve un error cuando esos reintentos se agotan, así que una carga inestable no se convierte en un cobro desperdiciado. No hay nivel gratuito ni cola de prueba que esperar; con saldo prepago el trabajo arranca de inmediato, y una respuesta 402 es la señal honesta cuando no es así, en vez de una falla silenciosa.
Qué puede hacer con ella
Consistencia visual en marketplaces
Un marketplace aplica un enfoque uniforme a cada foto subida por vendedores para que las publicaciones se vean profesionales sin importar la calidad de la cámara original.
Desenfoque de privacidad antes de publicar
Un archivo periodístico aplica desenfoque sobre rostros y placas en fotografía histórica de calle antes de hacer pública la colección.
Productos de nostalgia y recuerdo
Un servicio de impresión bajo demanda aplica sepia a fotos recientes por solicitud del cliente para ofrecer un recuerdo con aspecto vintage.
Retoques de fotos en lote
Una app de almacenamiento de fotos ofrece enfoque de un toque para imágenes ligeramente desenfocadas, procesadas en segundo plano sin bloquear al usuario.
Preguntas frecuentes
¿Qué filtros admite la api de filtros de imagen?
El endpoint admite actualmente sepia, desenfoque y enfoque, aplicados mediante POST /image/filter especificando el nombre del filtro en la solicitud.
¿Hay una prueba gratuita para esta api?
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 aplicar un filtro?
Cada llamada cuesta $0.002 por solicitud más $0.005 por imagen, y solo se cobra cuando el filtro se aplica con éxito.
¿Puedo aplicar más de un filtro en una sola llamada?
Cada llamada aplica un filtro con nombre propio; encadene llamadas en secuencia si necesita combinar efectos, y cada paso se cobra de forma independiente al completarse.
¿Qué pasa si falla una solicitud de filtro?
Nunca se cobra. El sistema reintenta automáticamente hasta tres veces antes de devolver un error claro.
¿El desenfoque es suficiente para anonimizar rostros?
El filtro de desenfoque es un desenfoque gaussiano pensado para suavizar detalle; si necesita cumplir requisitos estrictos de anonimización, conviene probar la intensidad contra sus propias exigencias antes de usarlo en producción.
¿Cómo proceso un lote grande de imágenes?
Envía una llamada asíncrona por imagen; como cada trabajo corre de forma independiente, puede lanzar cientos de llamadas sin esperar a que terminen las anteriores.
¿Cómo recibo la imagen filtrada?
Mediante un webhook firmado, recomendado para flujos automatizados, o un enlace firmado que permanece válido por 24 horas antes de que el archivo se elimine.
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/filter \
-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/filter", {
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/filter",
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/filter", 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/filter", 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.filter",
"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. |