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

# Metro de Bogotá

> El metro de Bogotá como datos: las 27 estaciones de las Líneas 1 y 2, el trazado y las obras de cada línea, qué tan cerca está cualquier punto de ellas, los predios requeridos para la Línea 1, el avance mensual de obra y el inventario de árboles.

La Empresa Metro de Bogotá S.A. construye la primera línea de metro de la ciudad, un
viaducto elevado de 16 estaciones desde el suroccidente hasta la Calle 72, y tiene en
diseño la Línea 2, 11 estaciones, casi todas subterráneas, hacia Suba y Engativá. Publica por dónde
va todo: las estaciones, el trazado de cada línea, el viaducto, el límite de las obras
y los edificios por donde se entra a cada estación.

Encuentra las estaciones más cercanas a un punto con la distancia a cada una, consulta
una con sus edificios de acceso, obtén la línea como GeoJSON y llévate los shapefiles
oficiales. Sirve para medir qué tan lejos queda un inmueble, una sucursal o un cliente
de una futura estación.

También publica qué predios requiere la primera línea, cómo avanza la obra cada mes
frente a lo planeado y qué pasa con cada árbol del corredor. Todo está aquí: revisa un
inmueble por CHIP o por punto, sigue la serie de avance desde 2020 y busca en el
inventario de árboles por especie, tratamiento o lugar.

> [!NOTE]
>
> La fuente entera, organizada y lista para consultar: cada endpoint de esta página responde en milisegundos. Cada respuesta incluye `as_of`: qué tan actualizados están los datos. [Cómo funcionan los datasets](https://docs.usecroma.com/es/datasets.md).

## Buscar estaciones

`POST /co/metro-bogota/stations-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Encuentra estaciones por nombre, por línea o por cercanía a un punto. Empieza
aquí para obtener el `id` que usa la consulta de una estación.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Opcional. Palabras del nombre o del nombre de trabajo, p. ej. `Kennedy`, `Calle 72`. |
| `line` | integer | Opcional. `1` (Línea 1, en construcción) o `2` (Línea 2, en diseño). `0`, el valor por defecto, devuelve todas las líneas. Por defecto `0`. |
| `latitude` | number,null | Opcional. Latitud de un punto, p. ej. `4.6486`. Con `longitude`, las estaciones vienen de la más cercana a la más lejana, con `distance_m`. Por defecto `null`. |
| `longitude` | number,null | Opcional. Longitud del punto, p. ej. `-74.0633`. Por defecto `null`. |
| `radius_m` | integer | Opcional. Metros alrededor del punto, hasta 50000. `0`, el valor por defecto, deja todas las estaciones sin importar la distancia. Por defecto `0`. |
| `page` | integer | Opcional. Página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Opcional. Resultados por página, 1-100. Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/stations-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 4.6486, "longitude": -74.0633 }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` y `stations[]`; cada estación trae `distance_m`, los metros en línea recta hasta su centro, cuando se busca desde un punto.

Cada estación es `{ id, line, number, name, common_name, station_type, status, note, latitude, longitude, area_m2, geometry }`.

* `id`: la línea y el número de la estación, p. ej. `l1-13`.
* `name`: el nombre que publica Metro de Bogotá, p. ej. `Estación 13- Central`. Las estaciones de la Línea 2 aún llevan nombres provisionales numerados (`ESTACIÓN 4`).
* `common_name`: el nombre de trabajo del proyecto, casi siempre la vía donde queda la estación, p. ej. `Calle 26-13`.
* `status`: la etapa tal como se publica: `Construcción` (Línea 1) o `Diseño` (Línea 2).
* `latitude`, `longitude`: el centro de la estación.
* `geometry`: la huella de la estación, un polígono GeoJSON en WGS84.

## Una estación

`POST /co/metro-bogota/station/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Devuelve una estación por su id, con los edificios por donde se entra a ella.

| Campo | Tipo | Notas |
| - | - | - |
| `station_id` | string | **Obligatorio.** El `id` de la estación, tomado de la búsqueda, p. ej. `l1-13`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/station/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "station_id": "l1-13" }'
```

Devuelve `as_of`, `found`, `station_id`, `station` (null cuando no existe) y `access_buildings[]`, cada uno con su polígono.

Cada estación es `{ id, line, number, name, common_name, station_type, status, note, latitude, longitude, area_m2, geometry }`.

* `id`: la línea y el número de la estación, p. ej. `l1-13`.
* `name`: el nombre que publica Metro de Bogotá, p. ej. `Estación 13- Central`. Las estaciones de la Línea 2 aún llevan nombres provisionales numerados (`ESTACIÓN 4`).
* `common_name`: el nombre de trabajo del proyecto, casi siempre la vía donde queda la estación, p. ej. `Calle 26-13`.
* `status`: la etapa tal como se publica: `Construcción` (Línea 1) o `Diseño` (Línea 2).
* `latitude`, `longitude`: el centro de la estación.
* `geometry`: la huella de la estación, un polígono GeoJSON en WGS84.

## Un punto frente al metro

`POST /co/metro-bogota/proximity/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Entra una coordenada, sale qué tan cerca está del metro: estaciones, líneas y obras.

| Campo | Tipo | Notas |
| - | - | - |
| `latitude` | number | **Obligatorio.** Latitud en grados decimales (WGS84), p. ej. `4.6486`. |
| `longitude` | number | **Obligatorio.** Longitud en grados decimales (WGS84), negativa en Bogotá, p. ej. `-74.0633`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/proximity/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 4.594147, "longitude": -74.097327 }'
```

Devuelve `as_of`, `latitude`, `longitude` y:

* `nearest_station`: la estación más cercana de cualquier línea, con `distance_m` hasta su centro.
* `stations_within_1km`: cuántas estaciones tienen su centro a menos de 1.000 metros.
* `inside_intervention_limit`: si el punto está dentro del área de obras de la Línea 1.
* `intervention_limit_distance_m`: metros hasta el borde de esa área; `0` si está dentro.
* `parcel`: el predio requerido para la Línea 1 que contiene el punto, con su CHIP, dirección y polígono; null cuando ninguno lo contiene.
* `parcels_within_100m`: cuántos de esos predios tienen su centro a menos de 100 metros.
* `lines[]`: por línea, `{ line, alignment_distance_m, nearest_station }`: la distancia al trazado de la línea y la estación más cercana de esa línea.

Las distancias son en línea recta, medidas sobre las formas publicadas, con precisión de cerca de un metro. No son distancias caminando.

## Predios requeridos para la Línea 1

`POST /co/metro-bogota/parcels-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Este inmueble está entre los que necesita el metro? Pregunta por CHIP, por dirección o por punto.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Opcional. Palabras de la dirección como la escribe Bogotá, p. ej. `KR 24B 2 10 SUR`. |
| `chip` | string | Opcional. El CHIP del predio, exacto, p. ej. `AAA0011RDTO`. |
| `latitude` | number,null | Opcional. Latitud de un punto, p. ej. `4.5967`. Con `longitude`, solo lo que está a menos de `radius_m`, lo más cercano primero, con `distance_m`. Por defecto `null`. |
| `longitude` | number,null | Opcional. Longitud del punto, p. ej. `-74.0995`. Por defecto `null`. |
| `radius_m` | integer | Opcional. Metros alrededor del punto, 10-5000. Por defecto `200`. |
| `page` | integer | Opcional. Página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Opcional. Resultados por página, 1-100. Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/parcels-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "chip": "AAA0011RDTO" }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` y `parcels[]`; cada predio trae `distance_m` cuando se busca desde un punto (`0` cuando el punto está sobre él). Una lista vacía significa que el inmueble no está en la consulta.

Cada predio es `{ id, chip, address, line, latitude, longitude, area_m2, geometry }`.

* `chip`: el identificador catastral del predio en Bogotá, p. ej. `AAA0011RDTO`. Sirve para cruzar con el catastro de la ciudad.
* `address`: la dirección tal como se publica, p. ej. `CL 1 24 09`.
* `area_m2`: el área medida sobre el polígono.
* `geometry`: el predio, un polígono GeoJSON en WGS84.

> [!NOTE]
>
> Son los predios que Metro de Bogotá lista en su consulta pública de predios de la Línea 1. La lista dice que un inmueble se requiere para la línea, no en qué etapa va su adquisición, y no trae propietario ni ocupante. Confirma el estado actual de un inmueble con Metro de Bogotá.

## Avance de obra

`POST /co/metro-bogota/progress/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

El porcentaje construido frente al planeado, mes a mes, y en qué va el proyecto hoy.

| Campo | Tipo | Notas |
| - | - | - |
| `from_month` | string | Opcional. Primer mes de la serie, `yyyy-mm`, p. ej. `2026-01`. |
| `to_month` | string | Opcional. Último mes de la serie, `yyyy-mm`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/progress/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "from_month": "2026-01" }'
```

Devuelve `as_of`, `line`, el rango pedido, `count` y:

* `latest`: el mes más reciente con avance físico reportado.
* `months[]`: `{ month, line, planned_pct, executed_pct, planned_month_pct, executed_month_pct, schedule_baseline, budget_planned_cop, budget_planned_cumulative_cop, budget_executed_cop, budget_executed_cumulative_cop, budget_executed_month_pct, budget_executed_cumulative_pct, budget_baseline }`. `planned_pct` y `executed_pct` son el avance físico acumulado en porcentaje; los campos `_month_` son solo el mes.
* `project`: el valor del proyecto en pesos (`value_cop`), el inicio de la concesión (`start_date`) y la puesta en operación prevista (`end_date`).
* `stages[]`: cada etapa con sus fechas.
* `activities[]`: lo que está en curso, con `status` y la fecha de corte del reporte (`reported_on`).
* `milestones[]`: lo logrado en el último periodo reportado, con la fecha (`end_date`).

## Traslado de redes

`POST /co/metro-bogota/network-relocation-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Las redes de agua, energía, gas y telecomunicaciones que el metro debe mover, y cómo va cada una.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Opcional. Palabras del código de interferencia o la empresa, p. ej. `COD-00`, `EAAB`. |
| `utility` | string | Opcional. Una empresa de servicios (ESP): `CODENSA`, `VANTI`, `EAAB`, `ETB`, `TELEFÓNICA`. |
| `status` | enum | Opcional. `por_iniciar`, `en_ejecucion`, `ejecutada` o `eliminada`. |
| `page` | integer | Opcional. Página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Opcional. Resultados por página, 1-100. Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/network-relocation-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "utility": "EAAB" }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` e `interferences[]`. Cada una es `{ id, line, utility, interference, segment, contract_group, agreement, status, planned_pct, executed_pct, compliance_index, compliance_status, deadline_status, planned_start, planned_end, deadline, slack_days, reported_on }`. Las partes son empresas de servicios; no hay datos personales. El reporte se publicó por última vez en 2022.

## Inventario de árboles

`POST /co/metro-bogota/trees-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Cada árbol que tocan las obras: qué se autorizó para él, si se hizo y cuándo.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Opcional. Palabras del nombre común, la especie o la ubicación, p. ej. `Caucho sabanero`, `Ficus`. |
| `treatment` | enum | Opcional. `tala`, `traslado`, `tratamiento_integral`, `conservacion` o `poda`. |
| `status` | enum | Opcional. `ejecutado`, `no_ejecutado` o `sin_reporte`. |
| `locality` | string | Opcional. Una localidad de Bogotá, p. ej. `KENNEDY`, `BOSA`, `CHAPINERO`. |
| `latitude` | number,null | Opcional. Latitud de un punto, p. ej. `4.5967`. Con `longitude`, solo lo que está a menos de `radius_m`, lo más cercano primero, con `distance_m`. Por defecto `null`. |
| `longitude` | number,null | Opcional. Longitud del punto, p. ej. `-74.0995`. Por defecto `null`. |
| `radius_m` | integer | Opcional. Metros alrededor del punto, 10-5000. Por defecto `200`. |
| `page` | integer | Opcional. Página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Opcional. Resultados por página, 1-100. Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/trees-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "treatment": "traslado", "locality": "KENNEDY" }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` y `trees[]`; cada árbol trae `distance_m` cuando se busca desde un punto.

Cada árbol es `{ id, tree_number, line, common_name, scientific_name, sigau_code, treatment, status, executed_on, scheduled_from, scheduled_to, permit, work_front, work_front_group, chainage, locality, locality_code, upz, location, relocation_site, height_m, trunk_perimeter_m, trunk_diameter_cm, height_category, stump_category, botanical_garden_record, latitude, longitude, coordinates_approximate, relocation_location, relocation_latitude, relocation_longitude, note }`.

* `treatment`: lo que autoriza el permiso ambiental: `tala`, `traslado`, `tratamiento_integral`, `conservacion` o `poda`.
* `status`: `ejecutado`, `no_ejecutado` o `sin_reporte`; `executed_on` es la fecha en que se hizo.
* `permit`: el acto administrativo que respalda el tratamiento.
* `relocation_site`: para un árbol trasladado, a dónde se llevó.
* `coordinates_approximate`: true cuando el inventario marca que el árbol no tiene coordenadas propias.

## Trazado y obras

`POST /co/metro-bogota/infrastructure-search/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

La línea y lo que se construye a su alrededor, como formas para dibujar en un
mapa o para medir contra ellas.

| Campo | Tipo | Notas |
| - | - | - |
| `kind` | enum | Opcional. `alignment` (trazado), `viaduct` (viaducto), `intervention_limit` (límite de intervención), `access_building` (edificio de acceso) o `depot` (Patio Taller). Todos por defecto. |
| `line` | integer | Opcional. `1` (Línea 1, en construcción) o `2` (Línea 2, en diseño). `0`, el valor por defecto, devuelve todas las líneas. Por defecto `0`. |
| `page` | integer | Opcional. Página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Opcional. Resultados por página, 1-100. Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/infrastructure-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "kind": "alignment" }'
```

Devuelve `as_of`, los filtros aplicados, `total`, `page`, `per_page`, `total_pages`, `count` y `results[]`.

Cada resultado es `{ id, kind, line, name, station_id, note, latitude, longitude, length_m, area_m2, geometry, geometry_url }`.

* `kind`: `alignment` (el trazado de la línea), `viaduct` (la estructura elevada por donde ruedan los trenes de la Línea 1), `intervention_limit` (toda el área de diseño, construcción y operación de la Línea 1), `access_building` (un edificio por donde se entra a una estación) o `depot` (el Patio Taller de la Línea 1).
* `station_id`: para un edificio de acceso, la estación a la que pertenece.
* `length_m`, `area_m2`: la longitud de un trazado en metros; el perímetro y el área de un polígono.
* `geometry`: la forma como GeoJSON en WGS84. Las formas más detalladas (el viaducto, el trazado de la Línea 1, el límite de intervención) vienen simplificadas con precisión de cerca de un metro, y con todos los puntos publicados en `geometry_url`.

## Capas y shapefiles

`POST /co/metro-bogota/layers/v1` [Dataset](https://docs.usecroma.com/es/datasets.md)

Las capas publicadas, cada una con el archivo oficial para abrir en un SIG.

| Campo | Tipo | Notas |
| - | - | - |
| `line` | integer | Opcional. `1` (Línea 1, en construcción) o `2` (Línea 2, en diseño). `0`, el valor por defecto, devuelve todas las líneas. Por defecto `0`. |

```bash theme={"dark"}
curl https://api.croma.run/co/metro-bogota/layers/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "line": 1 }'
```

Devuelve `as_of`, `line`, `count` y `layers[]`.

Cada capa es `{ id, line, kind, title, description, geometry_type, feature_count, file_name, bytes, modified_at, source_document_url, document_url, document_versions[] }`.

* `document_url`: el shapefile comprimido de la capa, tal como lo publicó Metro de Bogotá. `source_document_url` es el mismo archivo en Metro de Bogotá.
* `document_versions[]`: cada versión del archivo, de la más antigua a la más reciente, `{ document_url, modified_at, bytes }`. Aparece una nueva cuando Metro de Bogotá reemplaza el archivo.
* Los edificios de acceso de la Línea 1 se publican sin archivo: su `file_name` y sus campos de documento son null.

> [card] [Referencia completa](https://docs.usecroma.com/es/api-reference/overview.md)
>
> Esquemas, todos los campos de respuesta y un playground interactivo.


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