¿Para quién es Apimetro?
Dos perfiles, una misma API
Urbanistas y analistas
Trabaja con datos reales del transporte sin necesidad de programar. Conecta Apimetro a QGIS, Kepler.gl o Google Sheets para visualizar y analizar la red de movilidad de la ciudad.
- Geometrías listas para mapas (GeoJSON)
- Polígonos de alcaldías y municipios
- Filtros territoriales por alcaldía
- Compatible con cualquier herramienta GIS
Desarrolladores
API REST con respuestas JSON y GeoJSON. Endpoints documentados en Swagger, CRUD completo y geometrías
PostGIS como MultiLineString segmentado tramo a tramo.
- CRUD completo: GET · POST · PATCH · DELETE
- Self-hosted: corre en tu localhost con Docker
- Filtros avanzados por múltiples parámetros
- Documentación en Swagger UI y Referencia API
¿Qué puedes hacer con Apimetro?
Más que un simple catálogo de paradas
GeoJSON listo para mapas
Obtén geometrías PostGIS directamente: MultiLineString segmentado tramo a tramo entre
estaciones, puntos de estación y polígonos de límites territoriales. Compatibles con Mapbox GL, Leaflet,
Kepler.gl, QGIS y cualquier herramienta GIS estándar.
Datos operativos completos
Más allá de las coordenadas: nombre oficial, número comercial, longitud en km, año de inauguración, clasificación operativa, colores de línea, estado de operación y relación con nodos CETRAM.
Filtros de precisión
No solo filtras por sistema. Consulta exactamente la Línea 12 del Metro, las estaciones de Iztapalapa, todos los nodos CETRAM, o las líneas con derecho de vía exclusivo. También puedes combinar múltiples sistemas en un solo request.
Self-hosted con Docker
Corre Apimetro en tu propia infraestructura. El repositorio incluye docker-compose con
perfiles para entornos dev, QA y producción. PostgreSQL + PostGIS incluidos. Sin dependencias externas.
Ejemplos de consultas avanzadas
Algunos de los filtros más útiles disponibles en la API
GET /movilidad/mapas/geojsonLinea
?sistema=METRO&num_comercial=L12
Filtra por número comercial oficial — funciona con L1, L2, MB-1, etc.
GET /movilidad/mapas/geojsonLinea
?sistema=METRO,MB
El parámetro sistema acepta múltiples valores separados por coma.
GET /movilidad/METRO/estacion
?alcaldia_municipio=Iztapalapa
Filtro territorial disponible también en GeoJSON.
GET /movilidad/TODOS/estacion
?es_cetram=true
Usa TODOS para consultar toda la red sin filtrar por sistema.
GET /movilidad/mapas/geojsonEstacion
?cetram_real=Pantitlán
Filtro espacial: retorna estaciones dentro de 250 m del nodo indicado.
GET /movilidad/TODOS/linea
?existe=true
Excluye líneas en proyecto o fuera de servicio.
Consulta la Referencia API completa para ver todos los parámetros disponibles por endpoint.
Sistemas de transporte cubiertos
Usa el identificador corto como parámetro sistema
Usa TODOS para consultar toda la red sin filtrar por sistema.
Pruébalo ahora
Sigue estos pasos para visualizar las líneas del Metro en QGIS — sin escribir una sola línea de código.
-
1Abre QGIS y ve al menú Capa → Agregar capa → Agregar capa vectorial O usa el atajo Ctrl+Shift+V
-
2En "Tipo de fuente" selecciona Protocolo: HTTP(S) Asegúrate de que el tipo sea GeoJSON
-
3Copia y pega esta URL en el campo URI:Cambia METRO por cualquier sistema: MB, CBB, RTP, TROLE, TL… o usa TODOS para toda la red. También puedes filtrar por línea específica añadiendo
https://apimetro.dev/movilidad/mapas/geojsonLinea?sistema=METRO&num_comercial=L12. -
4Haz clic en "Agregar" — ¡listo! Las líneas aparecerán en el mapa. Repite el proceso para estaciones (
geojsonEstacion) o polígonos de alcaldías (geojsonPoligono). Combina capas para análisis de cobertura territorial.
Construye tu petición seleccionando el recurso y el sistema. El comando curl
se genera automáticamente apuntando a apimetro.dev.
curl "https://apimetro.dev/movilidad/mapas/geojsonLinea?sistema=METRO"
Para explorar todos los filtros disponibles visita la Referencia API o la documentación Swagger.
Apimetro es open source. Puedes clonarlo y levantarlo en tu máquina con Docker — sin depender del servicio en línea ni de ninguna API key.
-
1Clona el repositorio
git clone https://github.com/galigaribaldi/Apimetro.git cd Apimetro
-
2Configura las credenciales de la base de datos Crea el archivo
~/.SecretsFiles/.env.devcon las variables de entorno necesarias:# ~/.SecretsFiles/.env.dev DB_HOST=db DB_PORT=5432 DB_NAME=db_apimetro DB_USER=apimetro_read DB_PASSWORD=tu_password POSTGRES_USER=admin_apimetro POSTGRES_PASSWORD=tu_admin_password GIN_MODE=debugNota: Consulta la lista completa de variables en el README. -
3Levanta el entorno de desarrollo
make docker-dev # → API disponible en http://localhost:8080 # → PostgreSQL + PostGIS localhost:5433
-
4Carga los datos de transporte La base de datos inicia vacía. Para cargar todos los datos de la red (~37 MB):
bash scripts/load-seed.sh # Carga líneas, estaciones y geometrías PostGIS
-
5¡Usa la API en tu localhost! Los mismos endpoints funcionan con la base URL local:
curl "http://localhost:8080/movilidad/mapas/geojsonLinea?sistema=METRO"