> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ata360.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Pesquisa de Preços

> Use ATAs como referência de preços para licitações

## 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

```python theme={null}
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

```python theme={null}
# 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

```python theme={null}
# 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

```python theme={null}
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

<Tip>
  Use a **mediana** como referência - é menos afetada por outliers que a média
</Tip>

<Tip>
  Filtre por **UF** para preços mais relevantes à sua região
</Tip>

<Warning>
  Sempre verifique a **data** das transações - preços antigos podem estar defasados
</Warning>

## Veja também

<CardGroup cols={2}>
  <Card title="Histórico de Preços" icon="chart-line" href="/atas/casos-de-uso/historico">
    Analise tendências ao longo do tempo
  </Card>

  <Card title="Comparar Fornecedores" icon="scale-balanced" href="/atas/casos-de-uso/comparar-fornecedores">
    Veja quem vende mais barato
  </Card>
</CardGroup>
