Desenfocar una zona
No todas las partes de una foto están hechas para verse: una pizarra con notas ajenas, una pantalla al fondo, una dirección escrita en un sobre. Este endpoint toma las coordenadas de una zona que usted indica y difumina exactamente esa área, dejando el resto de la imagen intacto.
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 del detalle accidental
La mayoría de los problemas de privacidad en imágenes no son la foto completa, sino una esquina de ella: la pantalla de una laptop que se ve por una ventana, un documento olvidado sobre un escritorio, una placa que quedó dentro del encuadre. Recortar pierde el resto de la toma, y retocar a mano no escala más allá de un puñado de imágenes. Este endpoint permite dibujar un cuadro, en coordenadas, alrededor exactamente de la parte que no debería ser legible, y difumina solo eso.
Quién necesita tapar una zona específica
Portales inmobiliarios que difuminan fotos familiares del dueño visibles por una puerta abierta, plataformas de comercio electrónico que ocultan el logo de un competidor que se coló en una foto de producto, editoriales que tapan una pizarra o una pantalla en una foto de oficina antes de publicarla en un artículo, equipos de soporte que tapan una zona fija de una captura de pantalla —como una barra lateral con datos de cuenta— antes de compartirla externamente.
Qué necesita realmente la zona
Envía la imagen junto con las coordenadas de una o varias zonas rectangulares, recibe de inmediato un task_id, y la tarea aplica un desenfoque lo bastante fuerte para hacer ilegible el contenido dentro de esa zona, devolviendo una imagen idéntica a la original en todo lo demás.
Cómo encaja en un flujo de revisión o moderación
Como se cobra por imagen y responde de forma asíncrona, funciona bien justo después de un paso de detección —automático o manual— que identifica dónde está el contenido sensible en una foto: las coordenadas se pasan directo a este endpoint, y la imagen tapada regresa lista para publicarse sin que nadie abra un editor de imágenes.
Una herramienta puntual, no genérica
Difuminar la imagen completa es fácil y casi nunca es lo que alguien realmente quiere; el caso útil es casi siempre parcial, y ahí está exactamente la diferencia entre difuminar una foto entera y difuminar solo la parte que importa, que es lo que un desenfoque de zona por coordenadas está hecho para cerrar.
Qué puede hacer con ella
Privacidad en fotos inmobiliarias
Un portal de anuncios difumina fotos o documentos personales del dueño visibles por una puerta abierta antes de publicar el recorrido.
Tapado de capturas de pantalla
Un equipo de soporte difumina una barra lateral fija con datos de cuenta en cada captura antes de compartirla con un proveedor externo.
Eliminación de logos de competencia
Un catálogo de comercio electrónico difumina el logo de una marca rival que aparece al fondo de una foto de producto enviada por un usuario.
Fotos de oficina y editoriales
Una editorial difumina una pizarra o una pantalla visible al fondo antes de publicar una foto de oficina en un artículo.
Preguntas frecuentes
¿Cómo difumino parte de una imagen con esta API?
Envíe un POST a /image/blur-region con la imagen y las coordenadas del rectángulo a tapar; recibe un task_id y la imagen tapada llega por webhook o enlace firmado.
¿Tiene prueba gratuita?
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.
¿Cómo se cobra?
$0.002 por solicitud más $0.005 por imagen, una tarifa plana y publicada sin importar cuántas zonas se difuminen.
¿Puedo difuminar más de una zona en la misma imagen?
Sí, puede indicar varias zonas rectangulares en una sola llamada y cada una se difumina de forma independiente.
¿Detecta automáticamente qué difuminar?
No, usted aporta las coordenadas. Para detección automática de caras o matrículas, use los endpoints dedicados de Difuminar Caras o Difuminar Matrículas.
¿El desenfoque se puede revertir?
No, el desenfoque queda integrado en los píxeles devueltos; el detalle original no se puede recuperar a partir de la imagen resultante.
¿Se cobra si la solicitud falla?
No. Una tarea fallida se reintenta automáticamente hasta tres veces y nunca se cobra; en su lugar recibe un error claro.
¿Puedo procesar muchas imágenes a la vez?
Cada llamada procesa una imagen y devuelve su propio task_id, así que procesar muchas imágenes es simplemente solicitudes en paralelo recogidas por webhook.
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/blur-region \
-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/blur-region", {
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/blur-region",
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/blur-region", 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/blur-region", 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.blur_region",
"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. |