Categorização de produtos em lote
Classifica produtos na categoria certa a partir do título e da descrição: você envia os itens e a árvore de categorias — da sua loja, do marketplace ou do ERP — e recebe cada produto encaixado no lugar. Resolve o catálogo herdado bagunçado, a migração de plataforma e o fluxo diário de produtos novos.
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.
Produto na categoria errada é produto invisível
No e-commerce, categoria não é organização estética: é navegação, filtro e ranqueamento interno. O tênis cadastrado em “acessórios” não aparece quando o cliente filtra calçados — e não vende. Catálogos que cresceram na correria acumulam essas perdas silenciosas às centenas. A recategorização em lote encontra esses itens e os coloca onde o comprador procura, sem que alguém precise abrir produto por produto.
Como enviar o catálogo
A chamada recebe duas coisas: os produtos (título e descrição, os campos que você já tem) e a árvore de categorias de destino, com quantos níveis existirem — “Casa > Cozinha > Utensílios > Facas”. O retorno atribui a cada item o caminho completo na árvore e, se você pedir, a confiança da atribuição, para revisar só os casos duvidosos. Cada produto classificado é uma unidade de US$ 0,0135, mais US$ 0,003 por chamada.
Migração e multicanal, os dois grandes casos
Ao migrar de plataforma ou entrar em um marketplace, a sua taxonomia nunca bate com a deles — e mapear na mão milhares de itens leva semanas. Com a árvore de destino na chamada, o mapeamento inteiro roda em lote. Quem vende em vários canais repete o processo por canal: o mesmo produto, categorizado conforme a árvore de cada um, sem manter planilhas de-para que ninguém atualiza.
No fluxo de cadastro diário
Depois de arrumar o passivo, mantenha o futuro limpo: acople a categorização ao fluxo de entrada de produtos, e cada item novo já nasce no lugar certo — inclusive quando o cadastro vem de fornecedor com descrição capenga. Para quem recebe catálogos de terceiros (distribuidores, sellers), é o filtro de qualidade na porta: classifica, marca os incertos e deixa o time olhar apenas as exceções.
Casos de uso
Loja migrando de plataforma
Uma loja de autopeças de Porto Alegre migra 12.000 itens para uma plataforma nova com árvore de categorias diferente. O de-para que estava orçado em três semanas de estagiário rodou em uma tarde, com revisão humana apenas nos 4% de baixa confiança.
Entrada em marketplace
A Distribuidora Horizonte Verde S.A. começa a vender em um grande marketplace, que exige a categoria dele em cada anúncio. O catálogo passa pela API com a árvore do canal e os anúncios sobem válidos de primeira, sem rejeição por categoria errada.
Catálogo herdado sem padrão
Um pet shop on-line comprou o estoque de um concorrente e herdou 3.000 produtos com categorias inventadas ao longo de anos (“Diversos”, “Promoção antiga”, “Cães 2”). Uma passada de recategorização e o catálogo inteiro voltou a ser navegável.
Agregador de ofertas
Um comparador de preços recebe feeds de dezenas de lojas, cada uma com sua taxonomia. Cada feed é normalizado para a árvore própria do comparador na entrada — os “Smartphones”, “Celulares” e “Telefonia móvel” de cada loja viram uma única categoria consistente.
Perguntas frequentes
Preciso enviar foto do produto?
Não — esta capacidade trabalha com texto: título, descrição e o que mais você tiver em campos (marca, tipo). Para catálogo cuja informação está só na imagem, combine antes com as ferramentas de análise de imagem da mesma API.
E quando o produto pode ficar em duas categorias?
O retorno traz a categoria principal e, se você pedir, alternativas plausíveis. A política — permitir multi-categoria ou forçar uma só — é da sua plataforma; a chamada se adapta ao que você definir na instrução.
Qual o custo para um catálogo de 50.000 itens?
Preço linear e publicado: 50.000 × US$ 0,0135 ≈ US$ 675, mais os US$ 0,003 de cada chamada em lote. Parece muito? Compare com semanas de trabalho manual — e o passivo se paga uma vez, o fluxo diário depois custa centavos.
Meu catálogo é segredo comercial. Como ele é tratado?
Como insumo da sua tarefa, apenas: os dados enviados não abastecem outros clientes nem viram base nossa. Catálogo, preços e estratégia de sortimento seguem seus — o processamento existe para devolver seu resultado e nada mais.
Funciona com descrições ruins de fornecedor?
Sim, dentro do razoável: “KIT 3 PC INOX FAC CHURR” é classificável pelo contexto. Quando nem um humano conseguiria decidir com o texto disponível, o item volta marcado com baixa confiança — o sinal de que a descrição precisa de conserto, não a categoria.
Dá para usar a mesma chamada para reclassificar tudo periodicamente?
Dá, e é um bom hábito trimestral: árvore de categorias muda, sortimento muda. Como a classificação é determinada pela árvore enviada em cada chamada, rodar de novo com a árvore atualizada realinha o catálogo inteiro de uma vez.
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/text/product-categorize \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/text/product-categorize", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/product-categorize",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/product-categorize", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/product-categorize", 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
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.product_categorize",
"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_tokens | 20000 |
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. |