Clasificar imágenes
Defina las categorías que importan para su producto —no una taxonomía genérica elegida por alguien más— y este endpoint ordena cada imagen entrante en una de ellas. Es la decisión de enrutamiento detrás de un triaje automatizado, no una lista de palabras clave sueltas.
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.
Clasificar, no describir
Hay una diferencia real entre saber qué contiene una foto y saber a qué categoría pertenece. Un marketplace no necesita saber que una imagen contiene 'madera, veta, café, mueble' —necesita saber que el anuncio va en 'Muebles > Mesas', y punto, para enrutarlo a la cola de revisión correcta o a la sección correcta del catálogo. image.classify está construida para esa decisión: una imagen entra, una etiqueta de categoría sale, elegida del conjunto que usted define para su propio catálogo, flujo de trabajo o reglas de moderación.
Cómo define las categorías
Llame a POST /image/classify con la imagen y su lista de categorías candidatas —las etiquetas pueden ser tan amplias como 'interior / exterior' o tan específicas como su taxonomía interna de SKU. El resultado devuelve la categoría con mejor coincidencia junto con el nivel de confianza, para que su lógica posterior apruebe automáticamente los casos de alta confianza y envíe los inciertos a revisión humana.
Asíncrona por diseño, a cualquier volumen
Una sola foto de producto es una llamada; una migración de catálogo son decenas de miles. En ambos casos el endpoint responde de inmediato con un task_id y clasifica en segundo plano, así su aplicación nunca queda bloqueada esperando a un modelo de imagen lento. Los resultados llegan por webhook en cuanto están listos, o los recupera desde un enlace firmado válido durante 24 horas.
Una disciplina con historia larga
Ordenar imágenes en categorías predefinidas es uno de los problemas más antiguos de la visión por computadora, con raíces en la investigación temprana de reconocimiento de dígitos y objetos, décadas antes de que alguien le llamara 'aprendizaje automático'. Lo que cambió es la accesibilidad: lo que antes exigía un equipo de investigación y modelos entrenados a la medida hoy es una sola solicitud POST con su propia lista de categorías, sin necesidad de entrenar nada por su cuenta.
Cómo encaja en la automatización
La clasificación combina naturalmente con un flujo de moderación o publicación: clasificar al subir, enrutar automáticamente por categoría y escalar a revisión manual los resultados de baja confianza. Combínela con image.tag cuando además quiera palabras clave descriptivas junto a la categoría, o con image.quality antes, para que las subidas defectuosas nunca lleguen al clasificador. El precio es una pequeña tarifa base por solicitud más una tarifa por imagen, ambas publicadas; una solicitud fallida se reintenta hasta tres veces y, si sigue fallando, no cuesta nada.
Qué puede hacer con ella
Enrutamiento de anuncios en marketplaces
Clasifique las fotos de vendedores en su árbol de categorías automáticamente para que los anuncios caigan en la sección correcta sin revisión manual.
Orden de fotos inmobiliarias
Ordene las fotos de una propiedad en cocina, baño, exterior y sala automáticamente para armar galerías de listado organizadas.
Triaje de reclamos de seguros
Clasifique las fotos de daños recibidas en vehículo, propiedad o documento para enrutar cada reclamo a la cola correcta.
Enrutamiento de flujos de contenido
Ordene los activos creativos entrantes en las categorías propias de campaña de su marca antes de que lleguen a diseño o publicación.
Preguntas frecuentes
¿Puedo definir mis propias categorías para clasificar imágenes?
Sí —envía su propia lista de categorías candidatas en cada solicitud; la API no está limitada a una taxonomía genérica fija.
¿Clasificar imágenes es gratis?
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.
¿Qué tan confiable es el resultado de la clasificación?
Cada resultado incluye un puntaje de confianza para la categoría elegida, así puede fijar su propio umbral entre aprobación automática y revisión humana.
¿Cómo se cobra image.classify?
Una pequeña tarifa fija por solicitud más una tarifa por imagen, ambas publicadas en esta página, sin tokens ni créditos inventados.
¿Cuál es la diferencia entre clasificar y etiquetar?
La clasificación asigna una imagen a una categoría de su lista; image.tag en cambio devuelve varias palabras clave descriptivas, ordenadas, sin un conjunto de categorías fijo.
¿Puedo clasificar un lote grande de imágenes?
Sí. Cada llamada es una tarea asíncrona independiente, así que puede enviar lotes grandes y recoger los resultados conforme cada uno termina.
¿Qué pasa si una solicitud de clasificación falla?
Se reintenta automáticamente hasta tres veces; si sigue fallando recibe un error claro y nunca se le cobra.
¿Cómo llegan los resultados?
Por webhook firmado, recomendado para flujos automatizados, o mediante un enlace de resultado firmado que permanece válido durante 24 horas.
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/classify \
-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/classify", {
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/classify",
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/classify", 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/classify", 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.classify",
"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. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |