Búsqueda inversa de imágenes
Tiene una foto y quiere saber qué más en su propia biblioteca se le parece, no idéntica, solo lo bastante similar como para que alguien diga 'ah, esas van juntas'. Este endpoint recibe una imagen de referencia y una biblioteca de candidatas, y ordena las candidatas por parecido visual y conceptual, sin necesitar descripciones, etiquetas ni nombres de archivo.
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.
Por qué las etiquetas nunca fueron una solución real
Durante años, la única forma práctica de buscar en una biblioteca grande de imágenes era buscar en el texto alrededor de ellas —nombres de archivo, texto alternativo, etiquetas a mano—, lo que significaba que una imagen solo era encontrable si alguien se había tomado el trabajo de describirla con precisión. Una foto de producto mal etiquetada, un recurso de diseño sin etiquetar o una imagen escaneada sin metadatos se volvía prácticamente invisible, no por falta de valor sino porque el sistema no tenía nada que leer salvo texto nunca garantizado como completo o correcto.
Qué ocurre cuando envía una imagen de referencia
Envía por POST una imagen de referencia junto con el conjunto de candidatas a /search/similar-images, y la tarea representa el contenido visual de cada imagen —composición, tema, color, textura y similitud conceptual— y ordena las candidatas según qué tan cerca esté cada una de la referencia, sin tocar ningún metadato de texto. El resultado es una lista ordenada por parecido, de modo que tanto una foto duplicada tomada desde otro ángulo como una imagen distinta que comparte tema y paleta de color pueden encontrarse correctamente.
De la comparación de píxeles a la comparación consciente de significado
La búsqueda inversa de imágenes temprana dependía de comparar patrones de píxeles crudos o hashes perceptuales simples, lo cual funcionaba para copias casi idénticas pero fallaba en cuanto una imagen se recortaba, se recoloreaba o era de un tema distinto pero relacionado. Representar las imágenes por su contenido visual y conceptual en lugar de sus píxeles crudos permite emparejar dos fotos de productos similares con distinta iluminación, o dos logotipos con la misma forma pero colores diferentes, comparaciones que un sistema basado en hash nunca fue diseñado para hacer.
Dónde hace trabajo real
Los catálogos de comercio electrónico la usan para encontrar publicaciones de producto duplicadas entre miles de imágenes subidas; los equipos de diseño y marketing la usan para buscar en una biblioteca interna subiendo un ejemplo en vez de adivinar cómo lo etiquetó alguien hace años; los bancos de imágenes la usan para encontrar imágenes visualmente relacionadas que una búsqueda por palabra clave pasaría por alto. En todos los casos, lo que la persona tiene en mano es una imagen, no las palabras que alguien más usó para describirla.
Precio y entrega
El endpoint cobra una tarifa base pequeña por solicitud más un cargo por consulta, publicado en esta página sin importar qué tan grande sea la biblioteca de candidatas. Procesa de forma asíncrona: envía la imagen de referencia y los candidatos, recibe un task_id de inmediato, y recolecta las coincidencias ordenadas mediante webhook firmado o un enlace firmado válido por 24 horas; una tarea fallida reintenta automáticamente hasta tres veces y nunca se cobra si sigue sin completarse.
Qué puede hacer con ella
Detección de fotos de producto duplicadas
Un marketplace en línea compara las fotos de publicaciones recién subidas contra su catálogo existente para marcar imágenes de producto probablemente duplicadas o reutilizadas.
Búsqueda en biblioteca de recursos de diseño
Un equipo de marketing sube una imagen de muestra para encontrar recursos visualmente similares en una biblioteca interna grande, en lugar de depender de un etiquetado manual inconsistente.
Descubrimiento visual de productos
Una tienda permite que los compradores suban una foto de un artículo que les gusta y muestra automáticamente productos visualmente similares del catálogo.
Recuperación de imágenes de archivo y banco de imágenes
Un archivo de medios encuentra imágenes visualmente relacionadas dentro de una colección histórica grande donde las descripciones faltan, son inconsistentes o poco confiables.
Preguntas frecuentes
¿Qué es una API de búsqueda inversa de imágenes y cómo funciona?
Compara una imagen de referencia contra un conjunto de imágenes candidatas por su contenido visual y conceptual, y luego ordena las candidatas según qué tan parecida es cada una a la referencia, sin depender de etiquetas ni descripciones.
¿Mis imágenes necesitan estar etiquetadas o descritas primero?
No, la comparación funciona directamente sobre el contenido de la imagen; no se requieren descripciones, texto alternativo ni etiquetas manuales para que el endpoint encuentre imágenes similares.
¿La API de búsqueda inversa de imágenes es 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.
¿Puede encontrar imágenes parecidas pero no idénticas?
Sí, ordena por parecido visual y conceptual en lugar de coincidencia exacta de píxeles, así que versiones recortadas, recoloreadas o con distinta iluminación de un tema similar igualmente se pueden encontrar.
¿Cómo busco en mi propia biblioteca privada de imágenes?
Envía su imagen de referencia junto con las imágenes candidatas de su propia biblioteca en la misma solicitud; la tarea solo compara las imágenes que envía, no ninguna base de datos externa de imágenes.
¿Cómo recibo los resultados?
La tarea devuelve un task_id de inmediato y procesa de forma asíncrona, entregando las coincidencias ordenadas por webhook firmado o un enlace firmado válido por 24 horas.
¿Puedo buscar en una biblioteca de imágenes grande de una sola vez?
Sí, envía la imagen de referencia junto con todo su conjunto de candidatas en una sola solicitud; el precio es por solicitud y por consulta, sin límite artificial en el tamaño de la biblioteca.
¿Qué pasa si falla una solicitud de búsqueda inversa de imágenes?
La tarea reintenta automáticamente hasta tres veces antes de devolver un error claro, y una solicitud fallida nunca se cobra.
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/search/similar-images \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/similar-images", {
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/search/similar-images",
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/search/similar-images", 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/search/similar-images", 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": "search.similar_images",
"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_chunks | 10000 |
max_tokens | 20000 |
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. |