Atendro · Catálogo · coleção

Busca inteligente

Qualquer lista de itens — produtos, vagas, imóveis — pesquisável do jeito que o cliente escreve, com filtros por qualquer coluna e JSON pronto para o agente.

conectando
Itens

no catálogo

Campos

pesquisáveis e filtráveis

Sinônimos

grupos cadastrados

Sem resultado

consultas que não acharam nada

Pesquisar como o cliente escreve

Erros de digitação, pronúncia, plural, sinônimos e campo:valor são entendidos. Ex.: motocera, vagas em guarulhos, analista cidade:guarulhos.

corrigir erros de digitação

Resultados

0

Score ≥ 80 emerald, ≥ 60 amber, abaixo rose. Colunas aparecem conforme os campos do catálogo.

O que o agente recebe
GET /api/produtos/buscar
aguardando busca…

1 · Origem

.xlsx .xls .ods .csv .tsv .txt .json .md, ou texto colado do Excel. Só a descrição é obrigatória; todas as outras colunas são guardadas com o nome original.

Arraste a planilha aqui ou clique para escolher
Células copiadas do Excel, CSV, ou uma lista com um item por linha.
sem linha de cabeçalho

2 · Mapear e importar

Escolha qual coluna é a ★ descrição. As demais: "guardar como está", um papel especial (código, preço…) ou ignorar. Colunas com papel continuam no JSON com o nome original; datas do Excel viram dd/mm/aaaa.

Analise um arquivo primeiro.
A prévia mostra o mapeamento e uma amostra antes de gravar.
Coluna da planilhaComo importar
Amostra (como vai ficar)

Exportar / backup

Baixe o catálogo inteiro para editar no Excel e importar de volta.

Novo item

Só a descrição é obrigatória. Os campos são os que já existem no catálogo; crie outros com "+ campo".

Campos

Localizar para editar

Descrição, código ou id.

    Adicionar grupo

    Nomes diferentes para a mesma coisa. Plural, acento, pronúncia e erros simples já são tratados sozinhos.

    Grupos cadastrados

    0

      O que estão buscando

      Consultas recebidas pela API, agrupadas. "Sem resultado" é a fonte para novos sinônimos ou itens faltando.

      ConsultaInterpretadaVezesResultadosÚltima

      Coleção

      Título, domínio (sinônimos e pesos prontos) e papéis: qual campo faz de preço, categoria, código, identificador, data e ativo. Exige chave admin.

      Papéis (campo da coleção)

      Fontes de sincronização

      A API puxa do ERP/planilha/URL no intervalo e aplica o mapeamento salvo. Espelhar = o que sumiu na origem vira inativo (nunca apaga); campos editados à mão não são sobrescritos.

        Webhook de entrada

        O ERP empurra alterações: POST com x-webhook-token e { "acao": "upsert" | "remover", "itens": [...] }.

        Chaves de API

        Escopos: leitura (buscar), escrita (cadastrar/importar), admin (config, coleções, chaves). Restrinja por coleção. A chave só é mostrada na criação.

          Como o agente usa a API

          Tudo em JSON. Documentação OpenAPI em /api/openapi.json. Chaves com escopo (leitura / escrita / admin) em x-api-key ou Authorization: Bearer; nunca na URL. Cada coleção vive em /api/colecoes/{nome}/…; /api/produtos/… e /api/itens/… são apelidos da coleção padrão (ou da indicada em X-Colecao). Há limite de requisições por cliente (X-RateLimit-*; excedeu → 429 com Retry-After).

          MCP — para agentes de IA (recomendado)

          Servidor MCP (Model Context Protocol) com todas as funcionalidades como ferramentas: buscar, obter item, campos, valores, facetas, contexto, cadastrar, atualizar, importar planilha, sinônimos, config, fontes de sincronização, webhook, chaves. A chave define o que aparece: leitura só enxerga ferramentas de leitura. Transporte streamable-http, sem sessão.

          REST — Buscar (texto livre, tolerante a erros)
          Filtros por qualquer campo
          GET /api/produtos/buscar?q=analista&cidade=guarulhos GET /api/produtos/buscar?q=analista cidade:guarulhos mesmo filtro, dentro do texto GET /api/produtos/buscar?salario=>3000&ordenar=-salario faixa numérica, ordenação por campo GET /api/produtos/buscar?data de publicacao=>=15/09/2026 datas dd/mm/aaaa GET /api/produtos/buscar?cidade=osasco|guarulhos&tipo==clt OU com "|", exato com "=" GET /api/campos nome, tipo e exemplos de cada campo GET /api/valores?campo=cidade valores distintos com contagem
          Parâmetros

          q · modo (auto | todos | qualquer) · fuzzy · tolerancia · min_score · ordenar (relevancia | descricao | preco_asc | preco_desc | qualquer campo, "-" para decrescente) · pagina · por_pagina (máx. 500) · facetas · facetas_campos · campos · filtros (objeto) · qualquer nome_de_campo=valor. A resposta traz consulta.interpretada, consulta.correcoes, consulta.filtros, produtos[].score, facetas e sugestoes.

          Um item · estilo Omie
          GET /api/produtos/6601295921 id, código ou EAN POST /api/v1/geral/produtos/ { "call": "BuscarProdutos", "app_key": "…", "app_secret": "…", "param": [{ "busca": "chave fenda", "registros_por_pagina": 20 }] } { "call": "ListarProdutos", "param": [{ "pagina": 1, "registros_por_pagina": 50, "filtrar_por_descricao": "parafuso" }] } { "call": "ConsultarProduto", "param": [{ "codigo_produto": 6601295921 }] }
          Cadastrar · atualizar · remover · importar
          POST /api/produtos { "descricao": "Analista de Sistemas", "Cidade": "Guarulhos", "Salário": 3500 } ou uma lista PUT /api/produtos/{id ou código} { "Salário": 4000 } DELETE /api/produtos/{id ou código} POST /api/produtos/importar multipart: arquivo=@planilha.xlsx modo=mesclar|adicionar|substituir previa=1 mapeamento={"descricao":"Cargo","ignorar":["Coluna X"]} POST /api/produtos/importar json: { "texto": "Cargo;Cidade\nAnalista;Guarulhos" } ou { "produtos": [ {…} ] } /api/itens/... é apelido de /api/produtos/...
          Outros
          GET /api/sugestoes?q=esmeril autocompletar / você quis dizer GET /api/facetas contagens de todos os campos categóricos GET /api/sinonimos POST /api/sinonimos {"termos":["a","b"]} PUT /api/sinonimos [[…],[…]] GET /api/produtos/exportar?formato=xlsx|csv|json GET /api/consultas?sem_resultado=1 GET /api/status