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

# SIATA Geoportal

> Clima, níveis de rios com limiares de inundação, chuva, qualidade do ar, previsões, alertas, sismos e câmeras do Valle de Aburrá (Medellín).

Consulta o geoportal do SIATA (Sistema de Alerta Temprana de Medellín y el Valle
de Aburrá) para tudo o que suas redes de estações publicam: clima com série de
12 horas e índice UV, níveis de rios, córregos e redes pluviais com limiares de
inundação e o semáforo de alerta da fonte, chuva acumulada em sete janelas mais
os totais mensais, qualidade do ar por poluente com o índice ICA numérico, a
rede cidadã de sensores de PM2.5, a previsão de dois dias por município, os
avisos oficiais, os últimos sismos e as últimas imagens da rede de câmeras.

Esta fonte substitui o [SIATA](/pt/colombia/siata), que está obsoleto.

## Clima

`POST /co/siata-geoportal/weather/v1`

| Campo          | Tipo   | Notas                                                                                                                 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `latitude`     | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                           |
| `longitude`    | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                          |
| `radius_km`    | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                       |
| `municipality` | string | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados. |
| `station_code` | string | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                     |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/weather/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 6.2442, "longitude": -75.5812, "radius_km": 5 }'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações.

| Campo                                                                                                                        | Notas                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stations[].temperature_c`, `humidity_pct`, `wind_speed_ms`, `wind_direction_deg`, `wind_direction_cardinal`, `pressure_hpa` | As últimas leituras da estação. `null` quando a estação não reportou.                                                                                                                     |
| `stations[].series_12h`                                                                                                      | Temperatura e umidade por hora nas últimas 12 horas, da mais antiga para a mais recente, cada uma com seu timestamp ISO `at`.                                                             |
| `stations[].updated_at`                                                                                                      | Timestamp ISO da última atualização da estação na fonte.                                                                                                                                  |
| `uv`                                                                                                                         | A leitura UV do vale: `index`, a `category` da fonte (`Bajo`, `Moderado`, `Alto`, ...), `temperature_c`, `measured_at` e a `series` horária de hoje. `null` quando o sensor não reportou. |

As leituras são atualizadas na fonte a cada cinco minutos. A resposta fica em cache por um minuto.

## Série de uma estação meteorológica

`POST /co/siata-geoportal/weather-series/v1`

| Campo          | Tipo   | Notas                                                                                                                                |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| `station_code` | string | **Obrigatório.** Código da estação, p. ex. `202`. Os códigos vêm do endpoint `weather`.                                              |
| `window`       | enum   | `1h` para a última hora com resolução de um minuto, `6h` para as últimas seis horas com resolução de cinco minutos. Por padrão `1h`. |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/weather-series/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "station_code": "202", "window": "1h" }'
```

| Campo                     | Notas                                                                                                                                                                                                                                                                                |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `found`                   | `false` quando a fonte não tem uma estação com esse código. Nesse caso nada mais é retornado.                                                                                                                                                                                        |
| `points[]`                | Leituras na janela, da mais antiga para a mais recente: `at` (timestamp ISO), `temperature_c`, `humidity_pct`, `wind_speed_ms`, `pressure_hpa`. Um ponto por minuto com `1h`, um a cada cinco minutos com `6h` (`resolution_minutes`). Uma variável que a estação não mede é `null`. |
| `mean`, `mean_3h`         | A média de cada variável segundo a fonte em toda a janela, e nas últimas três horas (apenas com `6h`).                                                                                                                                                                               |
| `temperature_percentiles` | Os percentis de temperatura da estação (`p10` a `p90`) como a fonte os reporta, como contexto.                                                                                                                                                                                       |

Os códigos de estação vêm do endpoint `weather`. A resposta fica em cache por um minuto.

## Níveis de rios e córregos

`POST /co/siata-geoportal/river-levels/v1`

| Campo            | Tipo    | Notas                                                                                                                   |
| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `latitude`       | number  | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                             |
| `longitude`      | number  | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                            |
| `radius_km`      | number  | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                         |
| `municipality`   | string  | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados.   |
| `station_code`   | string  | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                       |
| `include_series` | boolean | Opcional. Com `true`, cada estação traz `series_3h`, uma leitura por minuto das últimas três horas. Por padrão `false`. |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/river-levels/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 6.2442, "longitude": -75.5812, "radius_km": 5 }'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações. `include_series` adiciona `series_3h` a cada estação.

| Campo                                          | Notas                                                                                                                                                                                                                                                                  |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stations[].kind`                              | `river` para um sensor de rio ou córrego, `sewer` para um sensor de rede pluvial.                                                                                                                                                                                      |
| `stations[].level_m`, `measured_at`            | Último nível da água em metros e seu timestamp ISO. `null` quando a estação não reportou.                                                                                                                                                                              |
| `stations[].thresholds`                        | Limiares de inundação da estação em metros: `safe_m`, `caution_m`, `minor_flood_m`, `major_flood_m`. `null` nos sensores de rede pluvial.                                                                                                                              |
| `stations[].status`                            | Onde o último nível está em relação a esses limiares: `normal`, `elevated`, `caution`, `minor_flood` ou `major_flood`. `null` quando falta algum.                                                                                                                      |
| `stations[].max_level_3h_m`, `mean_level_3h_m` | Nível máximo e médio das últimas três horas.                                                                                                                                                                                                                           |
| `stations[].series_3h`                         | Uma leitura por minuto das últimas três horas, da mais antiga para a mais recente. Apenas com `include_series`; `null` caso contrário.                                                                                                                                 |
| `stations[].alert_color`, `alert_level`        | O semáforo da fonte (`green`, `yellow`, `orange`, `red`) e seu nível de alerta, de `0` (normal) a `3`. `null` quando não avaliado.                                                                                                                                     |
| `stations[].windows`                           | O nível representativo em cada janela (`last_30m`, `last_1h`, `last_3h`, `last_24h`, `last_72h`, `last_30d`), cada uma com seu `level_m`, `measured_at` e `alert_color`.                                                                                               |
| `stations[].basin`, `land_cover_pct`           | Morfologia da bacia drenada pela estação (área, perímetro, comprimento do canal, elevações, declividades, densidade de drenagem, tempo de concentração, percentual urbanizado) e sua cobertura do solo em percentual. `null` quando a fonte não as tem para a estação. |
| `advisories`                                   | Avisos operacionais que a fonte exibe atualmente para essas camadas, em texto simples. Vazio quando não há nenhum.                                                                                                                                                     |

Níveis e limiares são atualizados na fonte a cada cinco minutos; semáforos, janelas e sensores de rede pluvial entre 15 minutos e uma hora. A resposta fica em cache por um minuto.

## Chuva

`POST /co/siata-geoportal/rainfall/v1`

| Campo          | Tipo   | Notas                                                                                                                 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `latitude`     | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                           |
| `longitude`    | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                          |
| `radius_km`    | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                       |
| `municipality` | string | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados. |
| `station_code` | string | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                     |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/rainfall/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 6.2442, "longitude": -75.5812, "radius_km": 5 }'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações.

| Campo                       | Notas                                                                                                                                                            |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stations[].is_raining`     | Se o pluviômetro registra chuva neste momento. `extreme_rain` e `extreme_category` trazem a marca e a categoria de chuva extrema da fonte quando ela a ativa.    |
| `stations[].accumulated_mm` | Chuva acumulada em cada janela: `last_5m`, `last_30m`, `last_1h`, `last_3h`, `last_24h`, `last_72h`, `last_30d`. `null` quando o pluviômetro não reportou.       |
| `stations[].monthly`        | Uma entrada por mês do ano corrente com dados, como `month` (`YYYY-MM`), `total_mm` e `data_availability_pct` (percentual do mês em que o pluviômetro reportou). |
| `stations[].sub_basin`      | A sub-bacia do rio ou córrego onde está a estação. `village` e `district` são a vereda e o corregimiento quando a estação está fora da área urbana.              |
| `advisories`                | Avisos operacionais que a fonte exibe atualmente para essa camada, em texto simples.                                                                             |

As marcas de chuva são atualizadas na fonte a cada cinco minutos e os acumulados a cada 15. A resposta fica em cache por um minuto.

## Qualidade do ar

`POST /co/siata-geoportal/air-quality/v1`

| Campo          | Tipo   | Notas                                                                                                                 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `latitude`     | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                           |
| `longitude`    | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                          |
| `radius_km`    | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                       |
| `municipality` | string | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados. |
| `station_code` | string | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                     |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/air-quality/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality": "Medellín" }'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações.

| Campo                                             | Notas                                                                                                                                                                                                                                                   |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stations[].pm25`, `pm10`                         | Leituras de material particulado de 24 horas como `{ concentration, unit, index, category, window_start, window_end }`, `unit` = `ug/m3`.                                                                                                               |
| `stations[].o3_8h`, `no2_1h`, `so2_1h`, `co_8h`   | Leituras de gases na janela indicada pelo nome do campo, `unit` = `ppb`.                                                                                                                                                                                |
| `...index`, `...category`                         | O índice de qualidade do ar da Colômbia (ICA) da leitura e sua categoria: `Buena` (0-50), `Moderada` (51-100), `Dañina a la salud de grupos sensibles` (101-150), `Dañina a la salud` (151-200), `Muy dañina a la salud` (201-300), `Peligrosa` (301+). |
| `stations[].dominant_pollutant`, `dominant_index` | O poluente com o índice mais alto na estação (`PM2.5`, `PM10`, `O3`, `NO2`, `SO2` ou `CO`) e esse índice.                                                                                                                                               |
| `stations[].station_short`                        | O identificador curto da estação na fonte, p. ex. `BAR-TORR`.                                                                                                                                                                                           |

Um poluente que a estação não mede é `null`. As leituras são atualizadas na fonte a cada hora. A resposta fica em cache por um minuto.

## Sensores cidadãos de ar

`POST /co/siata-geoportal/citizen-sensors/v1`

| Campo          | Tipo   | Notas                                                                                                                 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `latitude`     | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                           |
| `longitude`    | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                          |
| `radius_km`    | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                       |
| `municipality` | string | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados. |
| `station_code` | string | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                     |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/citizen-sensors/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 6.2442, "longitude": -75.5812, "radius_km": 3 }'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações.

| Campo                               | Notas                                                                                                                                   |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `sensors[].pm25_1h`                 | PM2.5 da última hora, em ug/m3.                                                                                                         |
| `sensors[].index_daily`, `category` | O índice diário de qualidade do ar (ICA) para PM2.5 e sua categoria.                                                                    |
| `sensors[].available`               | Se o sensor está reportando atualmente. `data_recovery_24h_pct` e `data_recovery_15d_pct` indicam quão completo é seu registro recente. |

São sensores de baixo custo operados por voluntários; trate-os como indicativos e use `air-quality` para a rede de referência. As leituras são atualizadas na fonte a cada hora. A resposta fica em cache por um minuto.

## Previsão

`POST /co/siata-geoportal/forecast/v1`

| Campo          | Tipo   | Notas                                                                                                                                                                                       |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `municipality` | string | Opcional. Um dos municípios do vale, p. ex. `Medellín`, `Bello`, `Itagüí`, ou uma das zonas de Medellín (`Centro`, `Occidente`, `Oriente`, `Palmitas`). Acentos e maiúsculas são ignorados. |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/forecast/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality": "Medellín" }'
```

Sem `municipality` a resposta traz todas as zonas que a fonte prevê: os dez municípios do vale, com Medellín dividida em `Centro`, `Occidente`, `Oriente` e `Palmitas` (`zone`).

| Campo               | Notas                                                                                                                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `zones[].issued_at` | Timestamp ISO da rodada da previsão.                                                                                                                                                                                         |
| `zones[].days[]`    | Hoje e amanhã: `date`, `temperature_max_c`, `temperature_min_c` e `rain`, a probabilidade de chuva por período do dia (`early_morning`, `morning`, `afternoon`, `night`) como a fonte a expressa: `BAJA`, `MEDIA` ou `ALTA`. |

A fonte emite a previsão uma vez ao dia, por volta das 09:30 no horário local. A resposta fica em cache por um minuto.

## Alertas

`POST /co/siata-geoportal/alerts/v1`

| Campo          | Tipo    | Notas                                                                                              |
| -------------- | ------- | -------------------------------------------------------------------------------------------------- |
| `include_past` | boolean | Opcional. Com `true`, devolve também os avisos passados, não apenas os ativos. Por padrão `false`. |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/alerts/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "include_past": true }'
```

| Campo      | Notas                                                                                                                                                                                                                                                                |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alerts[]` | Avisos oficiais do sistema de alerta antecipado, do mais recente para o mais antigo: `id`, `title`, `description` (texto simples), `start_date`, `end_date`, `is_active` e `audience` (a quem a fonte o dirige, p. ex. `citizen`). Vazio quando não há nenhum ativo. |

A resposta fica em cache por um minuto.

## Sismos

`POST /co/siata-geoportal/seismic-events/v1`

| Campo          | Tipo   | Notas                                                                                                                 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `latitude`     | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.                                                           |
| `longitude`    | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.                                                          |
| `radius_km`    | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`.                                                       |
| `municipality` | string | Opcional. Mantém apenas as estações desse município, p. ex. `Medellín`, `Itagüí`. Acentos e maiúsculas são ignorados. |
| `station_code` | string | Opcional. Devolve apenas a estação com esse código, p. ex. `520`.                                                     |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/seismic-events/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

Todos os campos são opcionais. Um body vazio devolve todas as estações; `latitude` + `longitude` limita a resposta às estações próximas, **ordenadas da mais próxima para a mais distante** e com `distance_km` em cada uma; `municipality` e `station_code` limitam ainda mais. Sem filtro de localização, `distance_km` é `null` em todas as estações.

| Campo                 | Notas                                                                                                                                                                                                                                                                                                                                           |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stations[].kind`     | `accelerograph` ou `seismograph`, com o `sensor` e a `technology` da estação.                                                                                                                                                                                                                                                                   |
| `stations[].events[]` | Os últimos eventos registrados pela estação, do mais recente para o mais antigo: `occurred_at`, `magnitude`, `epicenter`, `depth_km`, a `latitude` e `longitude` do epicentro, e o que a estação mediu: `peak_acceleration_cm_s2` e `intensity_mmi` (Mercalli modificada, p. ex. `IV`) nos acelerógrafos, `peak_velocity_cm_s` nos sismógrafos. |

A fonte atualiza isso quando um evento é registrado. A resposta fica em cache por um minuto.

## Câmeras

`POST /co/siata-geoportal/cameras/v1`

| Campo       | Tipo   | Notas                                                           |
| ----------- | ------ | --------------------------------------------------------------- |
| `latitude`  | number | Opcional. -90 a 90. Deve ser enviado junto com `longitude`.     |
| `longitude` | number | Opcional. -180 a 180. Deve ser enviado junto com `latitude`.    |
| `radius_km` | number | Opcional. Raio em km ao redor do ponto, 0-100. Por padrão `10`. |
| `type`      | string | Opcional. `nivel`, `cielo`, `deprimido` ou `capa_limite`.       |

```bash theme={"dark"}
curl https://api.croma.run/co/siata-geoportal/cameras/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "type": "nivel",
        "latitude": 6.2442,
        "longitude": -75.5812,
        "radius_km": 5
      }'
```

Todos os campos são opcionais. `latitude` + `longitude` (com `radius_km`) devolvem as câmeras próximas, da mais próxima para a mais distante, com `distance_km`; `type` mantém um só tipo.

| Campo                    | Notas                                                                                                                                                            |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cameras[].type`         | `nivel` (aponta para um sensor de rio), `cielo` (céu), `deprimido` (passagem rebaixada) ou `capa_limite` (camada limite), com o rótulo da fonte em `type_label`. |
| `cameras[].snapshot_url` | A última imagem da câmera. A fonte a renova aproximadamente a cada minuto; baixe-a quando precisar em vez de guardar o conteúdo da URL.                          |

A resposta fica em cache por um minuto.

<Note>
  A cobertura é apenas a área metropolitana de Medellín (Valle de Aburrá).
  Pontos fora do vale devolvem arrays vazios, não um erro.
</Note>

<Card title="Referência completa" icon="code" href="/pt/api-reference/overview">
  Esquemas, todos os campos de resposta e um playground interativo.
</Card>
