Skip to main content
The Instituto Geográfico Agustín Codazzi (IGAC) is Colombia’s national cadastral authority and the gestor catastral of 842 of its 1,122 municipalities. Its cadastre is the register the property tax (impuesto predial) is charged on: every property with its 30-digit número predial, address, areas, destination and buildings, the parcel and building polygons, the blocks, veredas and sectors they sit in, and the homogeneous zones with the land values each appraisal is computed from. This source keeps that whole cadastre, about 6.8 million properties, 5.1 million parcels and 3.8 million buildings, refreshed from IGAC’s monthly publication, plus IGAC’s statistics for every municipality in the country and the map of who administers each one. One thing the open register does not carry is the appraisal itself: the property lookup asks IGAC’s cadastre for it, keeps the answer, and serves it from Croma’s copy afterwards. IGAC administers 842 of Colombia’s 1,122 municipalities. Bogotá, Medellín, Cali, Barranquilla, the department of Antioquia and some thirty other municipalities keep their own cadastre and are not in this source; igac_cadastral_managers says who administers each one. Search properties by municipality, block or address; read one property’s appraisal by its number or by a point on the map; then pull the parcel, its buildings, its address plates and the zones around it.

Search properties

POST /co/igac/properties-search/v1 Dataset One search over every property in IGAC’s cadastre, scoped to a municipality, a block or a previous number, then narrowed by address, destination or zone.
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Every property carries cadastral_number (30 digits), previous_cadastral_number (the earlier 20-digit one), department_code, municipality_code, zone (urban or rural), zone_code, sector_code, block_code (the manzana or vereda, the first 17 digits), condition_code, address, economic_destination_code and economic_destination (e.g. 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) and building_count. Owners, appraisals and registry folios are not in IGAC’s open register; the appraisal comes from the property lookup.
IGAC administers 842 of Colombia’s 1,122 municipalities. Bogotá, Medellín, Cali, Barranquilla, the department of Antioquia and some thirty other municipalities keep their own cadastre and are not in this source; igac_cadastral_managers says who administers each one.

One property, with its appraisal

POST /co/igac/property/v1 Lookup The property as IGAC’s cadastre holds it today, avalúo catastral included: the one figure the open register leaves out.
Answers from Croma’s copy when it holds a recent answer for the key, otherwise reads the source and keeps the answer. Every response says when the source was last asked (checked_at) and where the answer came from (served_from).
Returns found, cadastral_number, checked_at (when IGAC was last asked), served_from (copy, upstream or stale) and property. property carries cadastral_number, previous_cadastral_number, department_code, municipality_code, municipality, address, land_area_m2, built_area_m2, economic_destination_code, economic_destination, appraisal (the current avalúo catastral in Colombian pesos), buildings[] (area_m2, use_code, use, score, floors, rooms, shops, bathrooms), latitude, longitude, geometry (the parcel as GeoJSON in WGS84) and checked_at. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.
A number IGAC’s cadastre has no property under returns found: false with HTTP 200, not an error. IGAC administers 842 of Colombia’s 1,122 municipalities. Bogotá, Medellín, Cali, Barranquilla, the department of Antioquia and some thirty other municipalities keep their own cadastre and are not in this source; igac_cadastral_managers says who administers each one.

The property at a point

POST /co/igac/property-by-point/v1 Lookup A coordinate in, the IGAC property drawn there out, with everything the property lookup answers.
Answers from Croma’s copy when it holds a recent answer for the key, otherwise reads the source and keeps the answer. Every response says when the source was last asked (checked_at) and where the answer came from (served_from).
Returns found, latitude, longitude, cadastral_number (the parcel under the point), checked_at, served_from and property. property carries cadastral_number, previous_cadastral_number, department_code, municipality_code, municipality, address, land_area_m2, built_area_m2, economic_destination_code, economic_destination, appraisal (the current avalúo catastral in Colombian pesos), buildings[] (area_m2, use_code, use, score, floors, rooms, shops, bathrooms), latitude, longitude, geometry (the parcel as GeoJSON in WGS84) and checked_at.

One parcel

POST /co/igac/parcel/v1 Dataset
Returns as_of, found, cadastral_number and parcel (zone, department_code, municipality_code, block_code, previous_cadastral_number, basement_count, part_count, latitude, longitude, geometry). geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Parcels in a municipality or block

POST /co/igac/parcels-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result is a parcel as the parcel lookup returns it. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Buildings on a property

POST /co/igac/buildings-by-property/v1 Dataset
Returns as_of, cadastral_number, count and 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 is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Blocks of a municipality

POST /co/igac/blocks-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries code, neighborhood_code, previous_code, municipality_code, part_count, latitude, longitude and geometry. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Veredas of a municipality

POST /co/igac/rural-districts-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries code, name, names[], sector_code, previous_code, municipality_code, part_count, latitude, longitude and geometry. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Sectors and urban perimeters

POST /co/igac/sectors-search/v1 Dataset
Returns as_of, the filters, the paging fields, sectors[] (id, code, zone, municipality_code, part_count, geometry) and urban_perimeters[] (id, name, name_code, appraisal_type, part_count, geometry), the perimeters on the first page only. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Geoeconomic zones and their land values

POST /co/igac/economic-zones-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries id, zone_code, zone, municipality_code, value_per_m2, value_per_hectare, physical_subzones[], valid_from, part_count and geometry. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Physical zones

POST /co/igac/physical-zones-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries 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 and geometry. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Statistics of a municipality

POST /co/igac/municipal-statistics/v1 Dataset
Returns as_of, the filters, count and results[], newest year first: 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 and urban_status.

Who administers each municipality’s cadastre

POST /co/igac/cadastral-managers/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries municipality_code, municipality, department_code, department, manager, manager_id, office, nit, contact_email and is_igac.

Address plates of a parcel

POST /co/igac/address-plates-by-property/v1 Dataset
Returns as_of, cadastral_number, count and plates[] (id, text, parcel_code, zone, municipality_code, part_count, geometry). geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Street names of a municipality

POST /co/igac/street-names-search/v1 Dataset
Returns as_of, the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[]. Each result carries id, text, zone, municipality_code, part_count and geometry. geometry is GeoJSON in WGS84 (EPSG:4326), longitude first, exactly as IGAC draws it: referential in location and dimensions, it does not certify boundaries.

Full reference

Schemas, all response fields, and an interactive playground.