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

# IGAC

> O cadastro nacional da Colômbia, a cargo do IGAC: cada imóvel, terreno, construção, quadra e zona que administra, os valores de terra com que as avaliações são montadas, quem administra o cadastro de cada município e a avaliação vigente de qualquer imóvel do IGAC.

O Instituto Geográfico Agustín Codazzi (IGAC) é a autoridade cadastral nacional da Colômbia e o gestor catastral de 842 dos seus 1.122 municípios. Seu cadastro é o registro sobre o qual se cobra o imposto predial: cada imóvel com seu número predial de 30 dígitos, endereço, áreas, destinação e construções, os polígonos de terrenos e construções, as quadras, veredas e setores onde ficam, e as zonas homogêneas com os valores de terra com que cada avaliação é calculada.

Esta fonte guarda esse cadastro inteiro, cerca de 6,8 milhões de imóveis, 5,1 milhões de terrenos e 3,8 milhões de construções, atualizado a partir da publicação mensal do IGAC, mais as estatísticas do IGAC para cada município do país e o mapa de quem administra cada um. A única coisa que o registro aberto não traz é a avaliação: a consulta do imóvel a pede ao cadastro do IGAC, guarda a resposta e depois a serve a partir da cópia da Croma.

O IGAC administra 842 dos 1.122 municípios da Colômbia. Bogotá, Medellín, Cali, Barranquilla, o departamento de Antioquia e uns trinta outros municípios mantêm seu próprio cadastro e não estão nesta fonte; `igac_cadastral_managers` diz quem administra cada um.

Busque imóveis por município, quadra ou endereço; leia a avaliação de um imóvel pelo seu número ou por um ponto no mapa; depois puxe o terreno, suas construções, suas placas e as zonas ao redor.

## Buscar imóveis

`POST /co/igac/properties-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

Uma única busca sobre cada imóvel do cadastro do IGAC, limitada a um município, uma quadra ou um número anterior, e depois refinada por endereço, destinação ou zona.

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | Código DANE de cinco dígitos, opcional, p. ex. `17013` (Aguadas). É preciso um de `municipality_code`, `block_code` ou `previous_cadastral_number`. |
| `query` | string | Palavras opcionais buscadas no endereço ou no nome do imóvel, p. ex. `calle 10`. |
| `block_code` | string | Código opcional de quadra ou vereda, 17 dígitos: os primeiros 17 de qualquer número predial nela, p. ex. `17013000100000001`. |
| `economic_destination` | string | Código opcional de destinação como o IGAC o atribui: `A` Habitacional, `B` Industrial, `C` Comercial, `D` Agropecuario, `I` Institucional, `L` Agrícola, `M` Pecuario, `S` Lote urbanizado no construido, entre outros. |
| `zone` | enum | Opcional: `urban` ou `rural`. |
| `previous_cadastral_number` | string | Número opcional de 20 dígitos que o imóvel tinha antes da numeração nacional. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-100). Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/properties-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "municipality_code": "17013",
        "economic_destination": "C",
        "zone": "urban"
      }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada imóvel traz `cadastral_number` (30 dígitos), `previous_cadastral_number` (o anterior de 20), `department_code`, `municipality_code`, `zone` (`urban` ou `rural`), `zone_code`, `sector_code`, `block_code` (a quadra ou vereda, os primeiros 17 dígitos), `condition_code`, `address`, `economic_destination_code` e `economic_destination` (p. ex. `A` Habitacional, `C` Comercial, `D` Agropecuario), `land_area_m2`, `built_area_m2`, `land_zones[]` (`physical_zone_code`, `economic_zone_code`, `area_m2`), `buildings[]` (`rooms`, `bathrooms`, `shops`, `floors`, `typology_code`, `use_code`, `use`, `score`, `built_area_m2`) e `building_count`. Proprietários, avaliações e matrículas não estão no registro aberto do IGAC; a avaliação vem da consulta do imóvel.

<Note>
  O IGAC administra 842 dos 1.122 municípios da Colômbia. Bogotá, Medellín, Cali, Barranquilla, o departamento de Antioquia e uns trinta outros municípios mantêm seu próprio cadastro e não estão nesta fonte; `igac_cadastral_managers` diz quem administra cada um.
</Note>

## Um imóvel, com sua avaliação

`POST /co/igac/property/v1` <a className="dataset-pill" href="/pt/datasets#lookups">Lookup</a>

O imóvel como o cadastro do IGAC o tem hoje, avalúo catastral incluído: a única cifra que o registro aberto não traz.

<Note>
  Responde a partir da cópia da Croma quando ela tem uma resposta recente para a chave; caso contrário, lê a fonte e guarda a resposta. Cada resposta diz quando a fonte foi consultada pela última vez (`checked_at`) e de onde veio a resposta (`served_from`).
</Note>

| Campo | Tipo | Notas |
| - | - | - |
| `cadastral_number` | string | **Obrigatório.** O número predial nacional de 30 dígitos do imóvel, p. ex. `170130001000000010001000000000`. Espaços, pontos e hifens são ignorados. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/property/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "cadastral_number": "170130001000000010001000000000" }'
```

Retorna `found`, `cadastral_number`, `checked_at` (quando o IGAC foi consultado pela última vez), `served_from` (`copy`, `upstream` ou `stale`) e `property`. `property` traz `cadastral_number`, `previous_cadastral_number`, `department_code`, `municipality_code`, `municipality`, `address`, `land_area_m2`, `built_area_m2`, `economic_destination_code`, `economic_destination`, `appraisal` (o avalúo catastral vigente em pesos colombianos), `buildings[]` (`area_m2`, `use_code`, `use`, `score`, `floors`, `rooms`, `shops`, `bathrooms`), `latitude`, `longitude`, `geometry` (o terreno como GeoJSON em WGS84) e `checked_at`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

<Note>
  Um número sob o qual o cadastro do IGAC não tem imóvel retorna `found: false` com HTTP 200, não um erro. O IGAC administra 842 dos 1.122 municípios da Colômbia. Bogotá, Medellín, Cali, Barranquilla, o departamento de Antioquia e uns trinta outros municípios mantêm seu próprio cadastro e não estão nesta fonte; `igac_cadastral_managers` diz quem administra cada um.
</Note>

## O imóvel em um ponto

`POST /co/igac/property-by-point/v1` <a className="dataset-pill" href="/pt/datasets#lookups">Lookup</a>

Entra uma coordenada, sai o imóvel do IGAC desenhado ali, com tudo o que a consulta do imóvel responde.

<Note>
  Responde a partir da cópia da Croma quando ela tem uma resposta recente para a chave; caso contrário, lê a fonte e guarda a resposta. Cada resposta diz quando a fonte foi consultada pela última vez (`checked_at`) e de onde veio a resposta (`served_from`).
</Note>

| Campo | Tipo | Notas |
| - | - | - |
| `latitude` | number | **Obrigatório.** Latitude em graus decimais (WGS84). |
| `longitude` | number | **Obrigatório.** Longitude em graus decimais (WGS84), negativa na Colômbia. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/property-by-point/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 5.6096, "longitude": -75.4557 }'
```

Retorna `found`, `latitude`, `longitude`, `cadastral_number` (o terreno sob o ponto), `checked_at`, `served_from` e `property`. `property` traz `cadastral_number`, `previous_cadastral_number`, `department_code`, `municipality_code`, `municipality`, `address`, `land_area_m2`, `built_area_m2`, `economic_destination_code`, `economic_destination`, `appraisal` (o avalúo catastral vigente em pesos colombianos), `buildings[]` (`area_m2`, `use_code`, `use`, `score`, `floors`, `rooms`, `shops`, `bathrooms`), `latitude`, `longitude`, `geometry` (o terreno como GeoJSON em WGS84) e `checked_at`.

## Um terreno

`POST /co/igac/parcel/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `cadastral_number` | string | **Obrigatório.** O número predial nacional de 30 dígitos do imóvel, p. ex. `170130001000000010001000000000`. Espaços, pontos e hifens são ignorados. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/parcel/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "cadastral_number": "170130001000000010001000000000" }'
```

Retorna `as_of`, `found`, `cadastral_number` e `parcel` (`zone`, `department_code`, `municipality_code`, `block_code`, `previous_cadastral_number`, `basement_count`, `part_count`, `latitude`, `longitude`, `geometry`). `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Terrenos de um município ou uma quadra

`POST /co/igac/parcels-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `block_code` | string | Código opcional de quadra ou vereda, 17 dígitos. |
| `zone` | enum | Opcional: `urban` ou `rural`. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/parcels-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013", "block_code": "17013000100000001" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado é um terreno como a consulta de terreno o retorna. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Construções de um imóvel

`POST /co/igac/buildings-by-property/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `cadastral_number` | string | **Obrigatório.** O número predial nacional de 30 dígitos do imóvel, p. ex. `170130001000000010001000000000`. Espaços, pontos e hifens são ignorados. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/buildings-by-property/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "cadastral_number": "170130001000000010001000000000" }'
```

Retorna `as_of`, `cadastral_number`, `count` e `buildings[]` (`id`, `parcel_code`, `identifier`, `construction_type`, `ownership_type`, `floors`, `basements`, `mezzanines`, `semi_basements`, `label`, `building_code`, `previous_code`, `zone`, `municipality_code`, `part_count`, `geometry`). `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Quadras de um município

`POST /co/igac/blocks-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/blocks-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `code`, `neighborhood_code`, `previous_code`, `municipality_code`, `part_count`, `latitude`, `longitude` e `geometry`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Veredas de um município

`POST /co/igac/rural-districts-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `query` | string | Palavras opcionais do nome da vereda. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/rural-districts-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `code`, `name`, `names[]`, `sector_code`, `previous_code`, `municipality_code`, `part_count`, `latitude`, `longitude` e `geometry`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Setores e perímetros urbanos

`POST /co/igac/sectors-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `zone` | enum | Opcional: `urban` ou `rural`. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/sectors-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013" }'
```

Retorna `as_of`, os filtros, os campos de paginação, `sectors[]` (`id`, `code`, `zone`, `municipality_code`, `part_count`, `geometry`) e `urban_perimeters[]` (`id`, `name`, `name_code`, `appraisal_type`, `part_count`, `geometry`), os perímetros só na primeira página. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Zonas geoeconômicas e seus valores de terra

`POST /co/igac/economic-zones-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `zone` | enum | Opcional: `urban` ou `rural`. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/economic-zones-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013", "zone": "urban" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `id`, `zone_code`, `zone`, `municipality_code`, `value_per_m2`, `value_per_hectare`, `physical_subzones[]`, `valid_from`, `part_count` e `geometry`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Zonas físicas

`POST /co/igac/physical-zones-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `zone` | enum | Opcional: `urban` ou `rural`. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/physical-zones-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013", "zone": "urban" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `id`, `zone_code`, `zone`, `municipality_code`, `topography`, `road_influence`, `public_services`, `land_use`, `land_use_norm`, `construction_typology`, `land_class`, `water_availability`, `valid_from`, `part_count` e `geometry`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Estatísticas de um município

`POST /co/igac/municipal-statistics/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos de qualquer município do país, p. ex. `11001` (Bogotá) ou `17013` (Aguadas). |
| `year` | integer | Ano de referência opcional, p. ex. `2025`. Por padrão `0`. |
| `zone` | enum | Opcional: `urban` ou `rural`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/municipal-statistics/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013" }'
```

Retorna `as_of`, os filtros, `count` e `results[]`, do ano mais recente ao mais antigo: `id`, `municipality_code`, `municipality`, `department`, `cadastral_manager`, `year`, `zone`, `appraisal_total`, `property_count`, `built_area_m2`, `land_area_m2`, `land_area_ha`, `geographic_area_ha`, `rural_update_year`, `urban_update_year`, `rural_status` e `urban_status`.

## Quem administra o cadastro de cada município

`POST /co/igac/cadastral-managers/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | Código DANE de cinco dígitos, opcional. |
| `query` | string | Palavras opcionais do nome do gestor ou do município. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-100). Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/cadastral-managers/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "antioquia" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `municipality_code`, `municipality`, `department_code`, `department`, `manager`, `manager_id`, `office`, `nit`, `contact_email` e `is_igac`.

## Placas de um terreno

`POST /co/igac/address-plates-by-property/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `cadastral_number` | string | **Obrigatório.** O número predial nacional de 30 dígitos do imóvel, p. ex. `170130001000000010001000000000`. Espaços, pontos e hifens são ignorados. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/address-plates-by-property/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "cadastral_number": "170130001000000010001000000000" }'
```

Retorna `as_of`, `cadastral_number`, `count` e `plates[]` (`id`, `text`, `parcel_code`, `zone`, `municipality_code`, `part_count`, `geometry`). `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

## Nomes de ruas de um município

`POST /co/igac/street-names-search/v1` <a className="dataset-pill" href="/pt/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `municipality_code` | string | **Obrigatório.** Código DANE de cinco dígitos do município, p. ex. `17013` (Aguadas, Caldas). |
| `query` | string | Palavras opcionais do nome da via, p. ex. `calle 10`. |
| `page` | integer | Número da página, começa em 1. Por padrão `1`. |
| `per_page` | integer | Resultados por página (1-50); cada resultado traz sua geometria. Por padrão `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/igac/street-names-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "municipality_code": "17013" }'
```

Retorna `as_of`, os filtros aplicados, `total` e `total_is_exact`, `page`, `per_page`, `total_pages`, `count` e `results[]`. Cada resultado traz `id`, `text`, `zone`, `municipality_code`, `part_count` e `geometry`. `geometry` é GeoJSON em WGS84 (EPSG:4326), longitude primeiro, exatamente como o IGAC desenha: referencial em localização e dimensões, não certifica limites.

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.