---
title: "IGAC Property Transactions Search"
method: POST
path: "/co/igac-transactions/search/v1"
tags: ["Colombia", "IGAC Property Transactions"]
---

# IGAC Property Transactions Search

`POST /co/igac-transactions/search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/igac-transactions/search/v1`
- Auth: HTTP bearer

Search the acts registered on Colombian property folios filed 2015-2023 (about 31 million annotations from the registry, published by IGAC): sales (act `125` compraventa), mortgages, embargoes, cancellations and others, each with the matrícula, municipality, zone, filing date, instrument and the value it declares. Requires `municipality_code` (DANE) or `registration_number` (matrícula, `<office>-<folio>`); narrow by `act_code`, `zone`, `year_from`/`year_to`, `min_value`/`max_value` (pesos) or `with_value`. Newest first. For a sale the value is the price in the deed, which can sit below the price agreed. Use `igac_transactions_price_statistics` for medians. Served by Croma (`as_of` says how current the data is).

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `municipality_code` string: Optional five-digit DANE code of the municipality, e.g. `17013` for Aguadas.
  - `registration_number` string: Optional matrícula inmobiliaria as `<registry office>-<folio>`, e.g. `001-1234567` or `50C-123456`.
  - `act_code` integer: Optional code of the registered act (naturaleza jurídica), e.g. `125` compraventa, `219` hipoteca abierta, `843` cancelación por voluntad de las partes. 0 means every act.
  - `zone` '' | 'urban' | 'rural': Optional: `urban` or `rural`.
  - `year_from` integer: Optional first year of filing (radicación) to include, e.g. `2020`. 0 means no lower bound.
  - `year_to` integer: Optional last year of filing (radicación) to include, e.g. `2023`. 0 means no upper bound.
  - `min_value` number: Optional lowest declared value to include, in Colombian pesos, e.g. `100000000`. 0 means no lower bound.
  - `max_value` number: Optional highest declared value to include, in Colombian pesos. 0 means no upper bound.
  - `with_value` boolean: Optional: `true` returns only annotations that declare a value.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Results per page (1-100).

## Response `200`

Successful response

- IgacTransactionsSearchResponse
  - `data` IgacTransactionsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `municipality_code` string, nullable, required
    - `registration_number` string, nullable, required
    - `act_code` number, nullable, required
    - `zone` 'urban' | 'rural', nullable, required
    - `year_from` number, nullable, required
    - `year_to` number, nullable, required
    - `min_value` number, nullable, required
    - `max_value` number, nullable, required
    - `with_value` boolean, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `results` object[], required
      - `id` string, required: Stable identifier of the annotation: municipality, registry office, folio, annotation number, act code and year, e.g. `05002-002-008032-00012-00125-2021`.
      - `registration_number` string, required: The matrícula inmobiliaria, `<registry office>-<folio>`, e.g. `002-8032`.
      - `registry_office_code` string, required: The registry office (oficina de registro de instrumentos públicos) that keeps the folio, e.g. `002`, `50C`.
      - `folio_number` string, required: The folio's number within its office.
      - `annotation_number` number, required: The annotation's place in the folio's history, 1 for the first.
      - `municipality_code` string, required: Five-digit DANE code of the municipality the property is in.
      - `municipality` string, nullable, required
      - `department` string, nullable, required
      - `zone` 'urban' | 'rural', nullable, required: Whether the property is urban or rural.
      - `rurality_category` string, nullable, required: The municipality's rurality category (2024): `Ciudades y aglomeraciones`, `Intermedio`, `Rural`, `Rural disperso`.
      - `filed_on` string, nullable, required: `yyyy-mm-dd` the act was filed (radicado) at the registry.
      - `filed_year` number, required: The year the act was filed.
      - `act_code` number, required: The registry's code for the act (naturaleza jurídica), e.g. `125` compraventa, `219` hipoteca abierta.
      - `act` string, nullable, required: The act as the registry names it, e.g. `COMPRAVENTA`, `HIPOTECA ABIERTA SIN LIMITE DE CUANTIA`.
      - `instrument` string, nullable, required: The instrument the act rests on and who issued it, as the registry records it, e.g. `00-ESCRITURA 537 DE 28/11/2016; NOTARIA UNICA - ABEJORRAL`.
      - `value_cop` number, nullable, required: The value the act declares, in Colombian pesos; null when it declares none. For a sale it is the price written in the deed, which can sit below the price agreed.
      - `has_value` boolean, required: Whether the act declares a value.
      - `has_several_values` boolean, required: Whether the act declares more than one value; `value_cop` is then the one the registry kept.
      - `parties_from` number, nullable, required: How many parties the act is from (e.g. the sellers).
      - `parties_to` number, nullable, required: How many parties the act is to (e.g. the buyers).
      - `new_folio` boolean, required: Whether the act opened new folios (a subdivision, a horizontal property).
      - `market_activity` boolean, required: Whether the registry counts the act as a sign of real-estate market activity.
      - `folio_status` string, nullable, required: The folio's status: `ACTIVO`, `CERRADO`, `CUSTODIA`; often unreported.
      - `folio_opened_on` string, nullable, required: `yyyy-mm-dd` the folio was opened, when reported.
      - `derived_folios` string[], required: Matrículas opened from this folio by the act, when it opened any.

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