Atributos de produto extraídos do texto
Extrai atributos estruturados de descrições de produto em texto livre: cor, tamanho, material, voltagem, capacidade, marca, modelo. O que estava enterrado no parágrafo da descrição vira campo preenchido — pronto para alimentar filtros da loja, planilhas de marketplace e cadastros de ERP.
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.
Filtro vazio, venda perdida
O cliente filtra por “220 V” e o seu liquidificador não aparece — mesmo com a voltagem escrita no meio da descrição. Filtros e comparadores só enxergam atributos estruturados, e a maior parte dos catálogos brasileiros guarda essa informação em texto corrido, onde nenhum filtro alcança. A extração automática lê a descrição como um cadastrador atento e devolve os campos preenchidos, um a um.
Você define o esquema, ele preenche
Cada segmento tem seus atributos: moda pede cor, tamanho, tecido e gênero; eletro pede voltagem, potência e capacidade; cosméticos pedem volume, tipo de pele e fragrância. Na chamada você lista os campos que quer — o seu esquema, ou o exigido pelo marketplace — e o retorno vem em JSON com cada atributo encontrado. O que a descrição não informa volta vazio ou marcado como ausente: campo em branco honesto vale mais que valor inventado.
Casos que aparecem todo dia
Anúncio de marketplace rejeitado por ficha técnica incompleta; catálogo de fornecedor que chega como um PDF de parágrafos; migração em que os filtros da loja nova exigem campos que a antiga nunca teve; auditoria de qualidade para achar produtos anunciados sem voltagem — risco real de devolução no Brasil, onde tomada é loteria. Em todos, o padrão é o mesmo: texto de um lado, esquema do outro, ficha estruturada no meio.
Preço por item e volume
US$ 0,0135 por produto processado, mais US$ 0,003 por chamada — em dólares, pagos por uso. Estruturar um catálogo de 10.000 itens custa cerca de US$ 135 e roda em lote, sem projeto de meses. Depois do passivo, o custo recorrente é só o dos produtos novos que entram, alguns centavos por semana para a maioria das lojas. A cobrança é a publicada, igual para loja pequena e operação grande.
Casos de uso
Loja de eletroportáteis e a voltagem
Uma loja de Curitiba descobre que 800 dos seus anúncios não têm o campo voltagem — a informação está no texto (“bivolt”, “110 V”, “220 volts”, cada hora de um jeito). A extração preenche o campo e o índice de devolução por voltagem errada cai no mês seguinte.
Moda com grade incompleta
Um e-commerce de moda em Recife recebe do fornecedor descrições como “vestido midi alça fina viscose estampa floral tam P ao GG”. A API devolve cor, tecido, comprimento, alças e grade separados — os filtros da loja passam a funcionar de verdade.
Catálogo industrial em PDF
A Distribuidora Horizonte Verde S.A. recebe de um fornecedor um catálogo com 600 itens descritos em parágrafos. Convertido em texto, o material passa pela extração com o esquema do ERP e o cadastro que levaria duas semanas entra no sistema em um dia.
Anúncios reprovados no marketplace
Um seller tem lotes de anúncios recusados por ficha técnica incompleta. Ele roda a extração usando como esquema exatamente os campos obrigatórios da categoria no marketplace e resolve a pendência em massa — sem redigitar produto por produto.
Perguntas frequentes
O que acontece quando a descrição não traz o atributo?
O campo volta vazio ou marcado como não encontrado — nunca preenchido por dedução criativa. Isso transforma a extração também em auditoria: a lista de campos vazios é a lista do que falta pedir ao fornecedor.
Ele entende as unidades do jeito brasileiro?
Sim: “bivolt”, “110/220”, “1,5 L”, “tam 38-40”, polegadas de TV, gramatura de papel. Na instrução você pode pedir normalização — tudo em volts, litros com vírgula decimal, grade P/M/G — para os valores saírem comparáveis entre produtos.
A saída serve direto para importar na plataforma?
O retorno é JSON com os campos que você definiu; a planilha de importação da sua plataforma é um passo de conversão simples a partir daí. Se o esquema enviado já usar os nomes de coluna da plataforma, o caminho fica praticamente direto.
Qual a diferença para a categorização de produtos?
São etapas irmãs: a categorização decide em qual prateleira o produto fica; a extração preenche a ficha técnica dele. Muitos catálogos passam pelas duas em sequência — primeiro o lugar, depois os detalhes — cada uma com seu preço publicado.
Como funciona a cobrança em lotes grandes?
Cada produto é uma unidade de US$ 0,0135 e cada chamada soma US$ 0,003 — juntar muitos itens por chamada dilui o fixo. Pagamento em dólares via PayPal, sem plano: você roda o lote quando precisa e não paga nos meses parados.
Descrições e fichas enviadas ficam com vocês?
Ficam disponíveis para você retirar o resultado da tarefa, e o uso é esse: processar e devolver. Seu catálogo não treina modelos nem circula para outros clientes — informação de sortimento é competitiva e tratamos como tal.
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-attributes \
-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-attributes", {
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-attributes",
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-attributes", 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-attributes", 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_attributes",
"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. |