Quitar datos EXIF
Toda foto que sale de un teléfono o una cámara arrastra un pequeño archivo de secretos: dónde se tomó, con qué equipo y hasta el segundo exacto en que ocurrió. Este endpoint borra esos metadatos en una sola llamada asíncrona, para que lo que publique sea la imagen y nada más.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
El problema que viaja escondido en el archivo
Los bloques EXIF se diseñaron hace décadas para que los fotógrafos organizaran su propio archivo, cuando una cámara y sus fotos casi nunca salían del disco duro de una sola persona. Hoy la misma foto pasa del teléfono a una publicación de marketplace, a una red social y a un comunicado de prensa en minutos, y en todo ese trayecto sigue cargando sus coordenadas GPS, pistas del dispositivo y la hora exacta de captura. Para marketplaces, plataformas inmobiliarias, redacciones y cualquiera que reciba imágenes de usuarios, eso es una fuga de privacidad sin control, escondida en un campo que nadie revisa.
Qué hace exactamente la llamada
Envía una imagen a POST /image/exif-strip, la tarea se encola, se procesa y regresa un archivo limpio sin los segmentos de metadatos: los píxeles quedan intactos, se respeta la orientación para que la imagen no aparezca girada, y el peso del archivo prácticamente no cambia. Funciona igual con un JPEG recién salido de una réflex que con una captura de pantalla a la que alguna herramienta previa le añadió un bloque EXIF de más.
Asíncrono por diseño, no por accidente
Como toda tarea de esta API, exif-strip corre de forma asíncrona: recibe un task_id de inmediato y el resultado llega por webhook firmado o por un enlace firmado válido durante 24 horas. Eso importa especialmente aquí porque quitar metadatos casi siempre es un paso dentro de un flujo mayor —subir, limpiar, redimensionar, guardar— y no una acción aislada que un humano espera frente a una pantalla; por eso el flujo está pensado para colas y trabajos por lote, no para un spinner en pantalla.
Su lugar dentro de un flujo más amplio
Los equipos suelen conectar este paso justo después de recibir el archivo y antes de guardarlo o distribuirlo por su red de entrega: un usuario sube una foto a un anuncio, a un ticket de soporte o a una galería de contenido, y la limpieza corre antes de que ese archivo se sirva públicamente. Como se cobra por solicitud, sin niveles de suscripción confusos y sin cargo por un intento fallido, resulta lo bastante económico como para aplicarlo a cada carga en lugar de muestrear al azar o confiar en que los usuarios ya limpiaron sus propios archivos, algo que casi nunca hacen.
Una ganancia silenciosa en cumplimiento
Quitar el GPS y los datos del dispositivo antes de publicar es una de las medidas más simples y concretas que un producto puede tomar para reducir la información personal que expone de sus propios usuarios; no exige reescribir una política de privacidad, solo un paso dentro del flujo de carga. Para plataformas que operan bajo criterios de minimización de datos, esa sola llamada cierra en silencio un hueco que de otro modo queda abierto a plena vista.
Qué puede hacer con ella
Anuncios en marketplaces y clasificados
Borre automáticamente el GPS de las fotos que suben los vendedores para que una foto de producto nunca revele por accidente una dirección residencial.
Flujos de fotos inmobiliarias
Limpie la ubicación y los datos de cámara incrustados en las fotos de una propiedad antes de publicarlas, conservando la calidad completa para la sindicación a portales.
Redacciones y contenido de usuarios
Pase cada foto enviada por lectores por exif-strip antes de publicarla, para proteger a fuentes y colaboradores que muchas veces no saben que su foto tiene geolocalización.
Adjuntos de recursos humanos y soporte
Elimine los metadatos de las imágenes que suben empleados o clientes para que las herramientas internas no acumulen un historial de ubicación incidental.
Preguntas frecuentes
¿Quitar los datos EXIF reduce la calidad de la imagen?
No. El endpoint solo elimina los segmentos de metadatos; los píxeles no se tocan y el peso del archivo se mantiene prácticamente igual.
¿Esta API para quitar datos EXIF es gratuita?
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.
¿Qué formatos de imagen admite?
Los formatos habituales que llevan bloques EXIF, principalmente JPEG y archivos basados en TIFF; el proceso conserva la orientación para que la imagen no quede girada.
¿Elimina específicamente las coordenadas GPS?
Sí, las etiquetas GPS forman parte de los metadatos que se eliminan, junto con el modelo de cámara, las marcas de tiempo y otros campos EXIF.
¿Cómo recibo el resultado?
Por webhook firmado, la opción recomendada para flujos automatizados, o mediante un enlace firmado válido por 24 horas si prefiere consultarlo usted mismo.
¿Puedo quitar el EXIF en lote a varias imágenes?
Sí, envía una solicitud por cada imagen; como cada tarea se encola y se factura por separado, puede procesar todo un lote de cargas sin configuración extra.
¿También elimina metadatos IPTC o XMP?
El endpoint está enfocado en metadatos EXIF, que es donde normalmente viven el GPS y los datos de cámara en fotos de consumo.
¿Qué pasa con mis imágenes después de procesarlas?
Los archivos se eliminan al terminar el período de retención y nunca se usan para entrenar modelos; solo recibe de vuelta el resultado limpio.
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/exif-strip \
-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/exif-strip", {
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/exif-strip",
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/exif-strip", 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/exif-strip", 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.exif_strip",
"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. |