Documentação da API CATMAT

API REST gratuita para consultar materiais e preços públicos do Catálogo CATMAT do Governo Federal.

Base URL: https://catmat.com.br/api/v1

Autenticação

Esta API é pública e não requer autenticação. Todos os endpoints aceitam requisições GET sem headers adicionais.

Endpoints

GET /item/{codigo} Busca um item pelo código CATMAT

Retorna todos os dados de um material cadastrado no catálogo, incluindo descrição, grupo, classe e número de likes.

Parâmetros de rota

ParâmetroTipoDescrição
codigo obrigatóriointegerCódigo CATMAT numérico do item

Exemplo de resposta

{ "_id": "abc123", "codigo_item": 371536, "descricao_item": "AGUA DESTILADA", "grupo": "Produtos Químicos e Farmacêuticos", "classe": "Solventes e Reagentes", "likes": 12 }

Testar

GET /search Busca textual de materiais

Realiza busca por descrição ou código CATMAT. Suporta busca exata, aproximada (fuzzy) e prefixo.

Parâmetros de query

ParâmetroTipoPadrãoDescrição
q obrigatóriostringTermo de busca (descrição ou código)
size opcionalinteger25Número de resultados (máx. 100)
grupo opcionalstringFiltrar por grupo de material

Exemplo de resposta

{ "total": 312, "hits": [ { "id": "abc123", "score": 14.2, "codigo_item": 371536, "descricao_item": "AGUA DESTILADA", "grupo": "Produtos Químicos e Farmacêuticos", "classe": "Solventes e Reagentes", "likes": 12 } ] }

Testar

GET /categories Lista grupos de materiais

Retorna todos os grupos de materiais disponíveis com a contagem de itens em cada grupo, ordenados por popularidade.

Exemplo de resposta

[ { "value": "Produtos Químicos e Farmacêuticos", "count": 4231 }, { "value": "Material de Escritório", "count": 2108 } ]

Testar

GET /top Materiais mais populares

Retorna os 8 itens com maior número de likes registrados pelos usuários.

Exemplo de resposta

[ { "codigo_item": 371536, "descricao_item": "AGUA DESTILADA" }, { "codigo_item": 123456, "descricao_item": "PAPEL A4" } ]

Testar

POST /like/{docId} Incrementa ou decrementa likes

Atualiza o contador de likes de um item. Use increment: 1 para curtir e increment: -1 para descurtir.

Parâmetros de rota

ParâmetroTipoDescrição
docId obrigatóriostringID interno do documento no Elasticsearch

Body (JSON)

{ "increment": 1 }

Exemplo de resposta

{ "ok": true }

Códigos de status HTTP

CódigoSignificado
200Sucesso
400Parâmetro inválido ou ausente
404Item não encontrado
500Erro interno ao consultar o servidor de busca
Ir para a Busca