Classificar imagens
Serviço de API que recebe uma imagem e as categorias que você definiu, e devolve em qual delas a foto se encaixa. É a peça que falta quando chegam fotos misturadas — de clientes, de vistorias, de cadastros — e alguém precisaria separá-las manualmente antes de qualquer processo.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Você define as caixas, a IA distribui
A diferença desta capacidade para uma marcação genérica é que as categorias são suas: “fachada, cozinha, quarto, banheiro” para uma imobiliária; “produto, ambiente, embalagem, defeito” para um e-commerce; “comprovante, documento, selfie, outro” para um cadastro. Você declara as classes na chamada e cada imagem volta atribuída a uma delas. Uma dica que evita dor de cabeça: inclua sempre uma categoria “outros” — o mundo real insiste em mandar fotos que não cabem em nenhuma caixa.
Classificações que funcionam bem
O modelo se sai melhor quando as categorias são visualmente distinguíveis: cozinha e fachada raramente se confundem; “blusa casual” e “blusa social” já pedem critério mais fino e mais revisão. Categorias demais também atrapalham — entre cinco e dez classes claras costuma ser o ponto ideal. Se duas categorias vivem se confundindo no seu fluxo, o sinal é que nem um humano as separaria só pela foto: repense o critério.
Fluxo em lote e conferência
O uso típico é em esteira: as fotos entram, a API classifica de forma assíncrona e o seu sistema roteia cada uma para o destino certo — pasta, fila de revisão, status de cadastro. Comece rodando um lote de teste com fotos já classificadas por humanos e meça a concordância; a partir daí você decide o que automatiza de vez e o que mantém com conferência por amostragem. Limite por arquivo: 15 MB e 12 megapixels.
Custo que dá para prever
US$ 0,010 por chamada mais US$ 0,0575 por imagem classificada. Um fluxo que separa 2.000 fotos por mês custa US$ 135 mensais — e o valor cai a zero no mês em que o volume parar, porque não existe assinatura. O preço é o publicado nesta página, igual para todo mundo.
Casos de uso
Imobiliária que recebe fotos misturadas
Uma imobiliária de Belo Horizonte recebe dos corretores as fotos dos imóveis em ordem aleatória. A classificação separa fachada, sala, cozinha, quartos e banheiros, e o anúncio já monta com as fotos na sequência padrão do site.
Triagem de documentos fotografados
No onboarding de uma fintech, o cliente envia fotos: umas são comprovante de residência, outras documento de identidade, outras selfie. A classificação roteia cada imagem para a fila de validação certa, sem triagem manual.
Controle de qualidade no marketplace
O time da Distribuidora Horizonte Verde exige foto do produto no anúncio dos revendedores. A classificação identifica o que é foto de produto e o que é print, logo ou imagem de catálogo genérica — e devolve na hora o que não serve.
Perguntas frequentes
As categorias são fixas ou eu escolho as minhas?
São suas: você declara as classes na própria chamada, com os nomes que fizerem sentido no seu negócio. Não há lista pré-definida a que você precise se adaptar.
O que acontece quando a foto não se encaixa em nada?
Se você incluiu uma classe “outros”, ela vai para lá — e essa é a recomendação. Sem uma categoria de escape, o modelo escolhe a menos ruim, o que gera erros silenciosos no seu fluxo.
Que taxa de acerto devo esperar?
Depende de quão distinguíveis são as suas categorias, então não publicamos um número genérico — seria chute. O caminho sério: rode um lote de teste com fotos já classificadas e meça a concordância no seu caso real antes de automatizar.
Como se paga um volume mensal recorrente?
Do mesmo jeito que um lote único: por uso, a US$ 0,0575 por imagem mais US$ 0,010 por chamada. Mês sem volume é mês sem custo — não há mínimo nem mensalidade.
Fotos de documentos passam por aí. E a privacidade?
A imagem é analisada apenas para atribuir a categoria e não é reaproveitada nem repassada. O serviço não extrai nem armazena os dados do documento — ele só diz “isto é um comprovante”. Se precisar do detalhamento para a LGPD, pedimos que escreva para a gente.
Classificar é o mesmo que gerar tags?
Não: tags são várias palavras-chave abertas por foto; classificação é uma escolha entre categorias que você fixou. Para roteamento e triagem, classificar é mais confiável, porque o resultado é sempre uma das suas classes.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.classify",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |