Variable de ruta {sistema}
Todos los endpoints de datos tabulares incluyen {sistema} en la ruta.
El valor se normaliza automáticamente a mayúsculas.
| Sistema | Identificador | Notas |
|---|---|---|
| Metro | METRO |
12 líneas, datos completos (GTFS SEMOVI) |
| Metrobús | MB |
Fuente no oficial (OSMAN MAPS), num_estacion no poblado |
| Cablebús | CBB |
Datos completos |
| RTP | RTP |
Red de Transporte de Pasajeros |
| Trolebús | TROLE |
Línea 13: DATOS_INCOMPLETOS (ruta loop, sin stop_times en GTFS) |
| Tren Ligero | TL |
Datos completos |
| Mexibús | MEXIBUS |
Fuente no oficial (OSMAN MAPS), num_estacion no poblado |
| Mexicable | MEXICABLE |
Fuente no oficial (OSMAN MAPS), num_estacion no poblado |
| Interurbano | INTERURBANO |
Tren Interurbano México-Toluca |
| Corredor Concesionado | CC |
Datos completos |
| — | TODOS |
Consulta todos los sistemas sin filtro |
Módulo 1 — Líneas /movilidad/{sistema}/linea
Datos operativos y características principales de las líneas de transporte.
/movilidad/{sistema}/linea
Listar líneas con filtros
Retorna un listado de líneas del sistema indicado. Todos los parámetros son opcionales y se pueden combinar.
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| id | int | 301 |
ID interno de la línea |
| nombre | string | Metro Línea 1 |
Nombre completo (búsqueda parcial) |
| num_comercial | string | L12 |
Número oficial de la línea (ej. L12, 1, 2, B, MB-3) |
| nombre_ramal | string | Tláhuac |
Filtro por ramal específico |
| clasificacion | string | existente |
Clasificación operativa: existente, proyecto |
| tam_km | float | 10.5 |
Líneas con longitud mayor o igual a X km |
| existe | bool | true |
Solo líneas actualmente en operación |
curl "https://apimetro.dev/movilidad/METRO/linea?existe=true&num_comercial=L12"
/movilidad/{sistema}/linea
Crear línea
Crea un nuevo registro en la tabla lineas. Enviar JSON en el cuerpo de la petición.
{
"nombre": "Metro Línea L13",
"num_comercial": "L13",
"sistema": "METRO",
"color_esp": "Gris",
"color_en": "Gray",
"tam_km": 15.5,
"existe": true,
"clasificacion": "proyecto"
}
curl -X POST "https://apimetro.dev/movilidad/METRO/linea" \
-H "Content-Type: application/json" \
-d '{"nombre":"Metro Línea L13","num_comercial":"L13","sistema":"METRO","tam_km":15.5,"existe":true}'
/movilidad/{sistema}/linea?id={id}
Actualizar línea
Actualiza campos específicos de una línea usando su ID. Solo se modifican los campos incluidos en el cuerpo.
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | int | ID numérico de la línea a modificar (requerido) |
curl -X PATCH "https://apimetro.dev/movilidad/METRO/linea?id=301" \
-H "Content-Type: application/json" \
-d '{"tam_km":18.2,"clasificacion":"existente"}'
/movilidad/{sistema}/linea?id={id}
Eliminar línea
Elimina una línea y sus ramales dependientes (borrado en cascada configurado en BD).
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | int | ID numérico de la línea a eliminar (requerido) |
curl -X DELETE "https://apimetro.dev/movilidad/METRO/linea?id=301"
Módulo 2 — Estaciones /movilidad/{sistema}/estacion
Información administrativa y geográfica de las estaciones de transporte.
/movilidad/{sistema}/estacion
Listar estaciones con filtros
Retorna un listado tabular con la información administrativa de las estaciones. Todos los parámetros son opcionales.
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| id | int | 11974 |
ID único de la estación |
| linea_id | int | 191 |
ID de la línea madre — filtra todas las estaciones de esa línea |
| nombre | string | Chapultepec |
Nombre de la estación (búsqueda parcial, no distingue acentos) |
| alcaldia_municipio | string | Cuauhtémoc |
Filtro por alcaldía (CDMX) o municipio (Estado de México) |
| color_esp | string | Rosa |
Color oficial de la línea en español |
| color_en | string | Pink |
Color oficial de la línea en inglés |
| anio | int | 1969 |
Año de inauguración de la estación |
| es_cetram | bool | true |
Solo estaciones que son nodos CETRAM |
| existe | bool | true |
Solo estaciones actualmente en operación |
curl "https://apimetro.dev/movilidad/TODOS/estacion?es_cetram=true&alcaldia_municipio=Cuauhtémoc"
/movilidad/{sistema}/estacion
Crear estación
Crea un nuevo registro en la tabla estacions.
{
"nombre": "Estación Nueva",
"tipo": "Subterráneo",
"alcaldia_municipio": "Coyoacán",
"estado_ciudad": "Ciudad de México",
"linea_id": 191,
"sistema": "METRO",
"existe": true,
"es_cetram": false
}
curl -X POST "https://apimetro.dev/movilidad/METRO/estacion" \
-H "Content-Type: application/json" \
-d '{"nombre":"Estación Nueva","tipo":"Subterráneo","linea_id":191,"sistema":"METRO","existe":true}'
/movilidad/{sistema}/estacion?id={id}
Actualizar estación
Actualiza campos específicos de una estación usando su ID.
curl -X PATCH "https://apimetro.dev/movilidad/METRO/estacion?id=11974" \
-H "Content-Type: application/json" \
-d '{"es_cetram":true,"nombre_cetram":"Chapultepec"}'
/movilidad/{sistema}/estacion?id={id}
Eliminar estación
curl -X DELETE "https://apimetro.dev/movilidad/METRO/estacion?id=11974"
Módulo 3 — GeoJSON /movilidad/mapas/
Retorna geometrías PostGIS en formato FeatureCollection estándar GeoJSON (RFC 7946).
Todos los endpoints son solo lectura (GET). Compatibles con Mapbox GL, Leaflet, QGIS, Kepler.gl y cualquier
herramienta GIS.
/movilidad/mapas/geojsonLinea
Trazos de líneas (MultiLineString)
Retorna una FeatureCollection de geometrías MultiLineString
segmentadas tramo a tramo entre estaciones. Incluye propiedades operativas en cada Feature.
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| sistema | string | METRO,MB |
Uno o varios sistemas separados por coma (requerido) |
| num_comercial | string | L12 |
Número oficial — filtra una línea específica |
| nombre_ramal | string | Tláhuac |
Ramal específico dentro de la línea |
| jerarquia_transporte | string | masivo_pesado |
Jerarquía del sistema: masivo_pesado, masivo_ligero,
alimentador |
| derecho_de_via | string | exclusivo |
Tipo de derecho de vía: exclusivo, compartido |
| sentido | string | IDA |
Dirección del trazo: IDA o REGRESO |
| cetram_real | string | Pantitlán |
Filtro espacial — trazos con estaciones dentro de 250 m del CETRAM indicado |
| existe | bool | true |
Solo líneas actualmente en operación |
curl "https://apimetro.dev/movilidad/mapas/geojsonLinea?sistema=METRO&num_comercial=L12&sentido=IDA"
curl "https://apimetro.dev/movilidad/mapas/geojsonLinea?sistema=METRO,MB,CBB&existe=true"
/movilidad/mapas/geojsonEstacion
Puntos de estación (Point)
Retorna una FeatureCollection de geometrías Point.
Cada Feature incluye nombre, sistema, línea, alcaldía/municipio y flag CETRAM.
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| sistema | string | METRO |
Uno o varios sistemas separados por coma (requerido) |
| num_comercial | string | L12 |
Número oficial — filtra estaciones de una línea específica |
| alcaldia_municipio | string | Iztapalapa |
Filtro por alcaldía o municipio |
| nombre_ramal | string | Tláhuac |
Ramal específico dentro de la línea |
| jerarquia_transporte | string | masivo_pesado |
Jerarquía del sistema de transporte |
| derecho_de_via | string | exclusivo |
Tipo de derecho de vía de la línea |
| es_cetram | bool | true |
Solo estaciones que son nodos CETRAM |
| nombre_cetram | string | Chapultepec |
Nombre del nodo CETRAM |
| cetram_real | string | Tacubaya |
Filtro espacial — estaciones dentro de 250 m del CETRAM indicado |
curl "https://apimetro.dev/movilidad/mapas/geojsonEstacion?sistema=TODOS&es_cetram=true"
curl "https://apimetro.dev/movilidad/mapas/geojsonEstacion?sistema=METRO,MB&alcaldia_municipio=Iztapalapa"
/movilidad/mapas/geojsonPoligono
Límites territoriales (MultiPolygon)
Retorna fronteras y límites geográficos de la CDMX y el Área Metropolitana
en formato FeatureCollection con geometrías MultiPolygon.
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| nivel | string | ESTADO |
Nivel territorial: ESTADO, MUNICIPIO, ALCALDIA |
| nombre | string | Milpa Alta |
Nombre del polígono (búsqueda parcial) |
| entidad | string | Ciudad de México |
Entidad federativa: Ciudad de México, Estado de México,
Hidalgo, Morelos |
| existe | bool | true |
Solo polígonos activos |
curl "https://apimetro.dev/movilidad/mapas/geojsonPoligono?nivel=ESTADO"
curl "https://apimetro.dev/movilidad/mapas/geojsonPoligono?nivel=ALCALDIA&entidad=Ciudad de México"
Notas sobre calidad de datos
num_estacion no está poblado para estos sistemas.
Los datos pueden no reflejar la operación actual con exactitud.
clasificacion = DATOS_INCOMPLETOS porque es una ruta en loop sin
stop_times en el GTFS de origen. Solo cuenta con ramal_num = 1.