---
title: "IGAC Property by Point"
method: POST
path: "/co/igac/property-by-point/v1"
tags: ["Colombia", "IGAC"]
---

# IGAC Property by Point

`POST /co/igac/property-by-point/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/igac/property-by-point/v1`
- Auth: HTTP bearer

Find the property of Colombia's national cadastre at a point (`latitude`, `longitude`, WGS84) and answer as `igac_property` does: the parcel IGAC draws under the point, then its current avalúo catastral, address, areas, destination, buildings and polygon, served from Croma's stored answer when it holds a recent one. `found: false` when no IGAC parcel contains the point, which includes the cities that keep their own cadastre.

**Lookup endpoint**: answers from Croma's copy when it holds a recent answer for the key, otherwise reads the source and keeps the answer; carries `checked_at` and `served_from`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `latitude` number, required: Latitude of the point, decimal degrees (WGS84), within Colombia.
  - `longitude` number, required: Longitude of the point, decimal degrees (WGS84), within Colombia.

## Response `200`

Successful response

- IgacPropertyByPointResponse
  - `data` IgacPropertyByPointData, required
    - `found` boolean, required
    - `latitude` number, required
    - `longitude` number, required
    - `cadastral_number` string, nullable, required: The property IGAC's cadastre draws at that point, null when no IGAC parcel contains it.
    - `checked_at` string, nullable, required
    - `served_from` 'copy' | 'upstream' | 'stale', nullable, required
    - `property` object, nullable, required
      - `cadastral_number` string, required: The 30-digit número predial nacional.
      - `previous_cadastral_number` string, nullable, required
      - `department_code` string, nullable, required
      - `municipality_code` string, nullable, required
      - `municipality` string, nullable, required: `Municipio, Departamento` as IGAC names it.
      - `address` string, nullable, required
      - `land_area_m2` number, nullable, required
      - `built_area_m2` number, nullable, required
      - `economic_destination_code` string, nullable, required
      - `economic_destination` string, nullable, required
      - `appraisal` number, nullable, required: The current avalúo catastral in Colombian pesos, as IGAC holds it for the property. Null when IGAC states none.
      - `vigencia` object, nullable: The vigencia of the avalúo and where the municipality's cadastre stands for the property's zone. Compare avalúos only within the same process and update year: one carried forward since an old update is not comparable with one just re-estimated. Null when IGAC's statistics do not cover the municipality.
        - `year` number, required: The vigencia the avalúo belongs to: the year IGAC was asked, since an avalúo catastral takes effect on 1 January.
        - `zone` 'urban' | 'rural', required: The part of the municipality the property sits in, which has a cadastral process of its own.
        - `process` 'formacion' | 'actualizacion' | 'conservacion', nullable, required: Where the zone's cadastre stands: `formacion` when it has not been formed, `actualizacion` when the update took effect this vigencia, `conservacion` when the avalúo has been carried forward since `update_year`. Null when IGAC reports no status.
        - `status` string, nullable, required: The cadastral status as IGAC reports it: `Actualizado Total`, `Desactualizado`, `Por Formar` and others.
        - `update_year` number, nullable, required: The vigencia of the zone's last formación or actualización. Null when it has had none.
        - `years_since_update` number, nullable, required: `year` minus `update_year`: how long the avalúo has been carried forward instead of re-estimated.
        - `reported_year` number, required: The year of IGAC's municipal statistics the status comes from.
      - `buildings` object[], required
        - `area_m2` number, nullable, required
        - `use_code` number, nullable, required
        - `use` string, nullable, required
        - `score` number, nullable, required: Quality score (puntaje), 0 to 100.
        - `floors` number, nullable, required
        - `rooms` number, nullable, required
        - `shops` number, nullable, required
        - `bathrooms` number, nullable, required
      - `latitude` number, nullable, required
      - `longitude` number, nullable, required
      - `geometry` object, nullable, required: The feature's geometry as GeoJSON in WGS84, exactly as IGAC draws it; referential, it does not certify boundaries.
        - `type` string, required: `Polygon`, `MultiPolygon`, `LineString`, `MultiLineString` or `Point`.
        - `coordinates` unknown, required
      - `checked_at` string, required

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
