Skip to content

Guia Completo da API de Análise (POST /v1/analytics/query) ​

O endpoint POST /v1/analytics/query é o coração do motor analítico do SusConecta. Ele permite realizar consultas multi-métricas, agregações espaciais, séries temporais e taxas per capita em menos de 50ms.


📋 Especificação do Endpoint ​

  • Método: POST
  • Caminho: /v1/analytics/query
  • Autenticação: Authorization: Bearer <API_KEY> (Capability exigida: analytics.query.read)
  • Content-Type: application/json

📐 Estrutura Completa do Payload de Requisição ​

json
{
  "metrics": [
    "bed_capacity_existing",
    "bed_capacity_sus",
    "beds_existing_per_100k"
  ],
  "group_by": ["municipality"],
  "filters": [
    {
      "dimension": "state",
      "operator": "IN",
      "value": ["GO", "MT"]
    },
    {
      "dimension": "municipality",
      "operator": "IN",
      "value": [5208707, 5106174]
    }
  ],
  "limit": 100,
  "offset": 0
}

🗺️ Modos de Consulta Homologados ​

1. Agrupamento por Município ​

Retorna linhas individualizadas para cada município do escopo territorial:

  • group_by: ["municipality"]
  • Retorna código IBGE, nome do município e sigla da UF.

2. Agrupamento por Estado (Multiestado) ​

Permite comparar totais estaduais consolidados:

  • group_by: ["state"]
  • filters: [{"dimension": "state", "operator": "IN", "value": ["GO", "MT"]}]
  • Retorna uma linha para Goiás e uma linha para Mato Grosso.

3. Total do Escopo Selecionado (Consolidação Única) ​

Permite somar todo o escopo de municípios e estados selecionados em um único total consolidado:

  • group_by: []
  • Retorna 1 linha com o label neutro "Total do escopo selecionado".

4. Taxas Demográficas por 100 Mil Habitantes ​

Métricas derivadas com sufixo _per_100k (ex: beds_existing_per_100k, equipment_existing_per_100k) utilizam automaticamente o denominador populacional do Censo IBGE correspondente, recalculando a taxa de forma matematicamente precisa no nível de agrupamento solicitado.


⚡ Exemplos Práticos de Chamada ​

bash
curl -X POST "https://api.susconecta.com.br/v1/analytics/query" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metrics": ["bed_capacity_existing"],
    "group_by": ["municipality"],
    "filters": [{"dimension": "state", "operator": "EQ", "value": "GO"}]
  }'
typescript
const response = await fetch(
  "https://api.susconecta.com.br/v1/analytics/query",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      metrics: ["bed_capacity_existing"],
      group_by: ["state"],
      filters: [{ dimension: "state", operator: "IN", value: ["GO", "MT"] }],
    }),
  },
);
const result = await response.json();

Last updated:

SusConecta — Plataforma Canônica de Dados Públicos de Saúde do SUS.