Skip to main content

O Problema

Ao preparar uma licitação, você precisa de preços de referência para:
  • Estimar o valor da contratação
  • Justificar preços no processo
  • Evitar sobrepreço

A Solução

Use dados de ATAs vigentes como referência de mercado. Preços de ATAs são homologados em licitação pública, portanto são referências válidas.

Passo a Passo

1. Encontre o código CATMAT

import requests

API_KEY = "ak_sua_chave"
BASE = "https://api.ata360.com.br"
headers = {"Authorization": f"Bearer {API_KEY}"}

# Buscar código do item
resp = requests.get(f"{BASE}/api/catmat/itens",
    params={"q": "papel a4"},
    headers=headers
)
items = resp.json()["data"]

for item in items[:5]:
    print(f"{item['codigo']}: {item['descricao']}")

2. Busque preços históricos

# Análise de preços para código 150233
resp = requests.get(f"{BASE}/api/items/precos/150233", headers=headers)
precos = resp.json()

print(f"Item: {precos['descricao']}")
print(f"Preço mínimo: R$ {precos['valor_min']:.2f}")
print(f"Preço médio: R$ {precos['valor_avg']:.2f}")
print(f"Preço máximo: R$ {precos['valor_max']:.2f}")
print(f"Mediana: R$ {precos['valor_mediana']:.2f}")
print(f"Baseado em {precos['count']} transações")
Saída:
Item: PAPEL A4 75G/M2 BRANCO
Preço mínimo: R$ 18.50
Preço médio: R$ 24.75
Preço máximo: R$ 35.00
Mediana: R$ 23.50
Baseado em 1250 transações

3. Filtre por região

# Preços no Paraná
resp = requests.get(f"{BASE}/api/items/precos/150233",
    params={"uf": "PR"},
    headers=headers
)
precos_pr = resp.json()
print(f"Preço médio no PR: R$ {precos_pr['valor_avg']:.2f}")

4. Gere relatório

def gerar_relatorio_precos(codigo_item, uf=None):
    params = {}
    if uf:
        params["uf"] = uf

    resp = requests.get(f"{BASE}/api/items/precos/{codigo_item}",
        params=params,
        headers=headers
    )
    p = resp.json()

    relatorio = f"""
    RELATÓRIO DE PESQUISA DE PREÇOS
    ================================
    Item: {p['descricao']}
    Código CATMAT: {p['codigo_item']}
    Fonte: ATAs de Registro de Preço (PNCP)

    ESTATÍSTICAS
    ------------
    Preço mínimo: R$ {p['valor_min']:.2f}
    Preço máximo: R$ {p['valor_max']:.2f}
    Preço médio: R$ {p['valor_avg']:.2f}
    Mediana: R$ {p['valor_mediana']:.2f}

    Base: {p['count']} transações
    """

    return relatorio

print(gerar_relatorio_precos(150233, uf="PR"))

Dicas

Use a mediana como referência - é menos afetada por outliers que a média
Filtre por UF para preços mais relevantes à sua região
Sempre verifique a data das transações - preços antigos podem estar defasados

Veja também

Histórico de Preços

Analise tendências ao longo do tempo

Comparar Fornecedores

Veja quem vende mais barato