Saltar al contenido principal
TransMilenio S.A. opera el sistema integrado de transporte público de Bogotá: las troncales de TransMilenio, sus rutas alimentadoras, los buses zonales del SITP y TransMiCable. Publica todo el horario cada mañana y la posición de cada vehículo cada pocos segundos. Unos 8.300 paraderos y estaciones, 1.080 rutas y 9,4 millones de paradas programadas a la semana. Encuentra un paradero por nombre o cerca de un punto, mira qué rutas paran ahí y cuándo salen las próximas, sigue una ruta parada por parada en el mapa, y mira dónde van los buses en este momento. Los endpoints de horario responden con datos actualizados a diario; los endpoints en vivo leen la red mientras opera, cada unos 20 segundos.

Buscar paraderos

POST /co/transmilenio/stops-search/v1 Dataset Encuentra paraderos y estaciones por nombre, por ruta o alrededor de un punto. Empieza aquí para obtener el stop_id que usan los demás endpoints.
Devuelve as_of, total, total_is_exact, page, per_page, total_pages, count y stops[]; cada paradero trae distance_m cuando se busca alrededor de un punto. Cada paradero es { stop_id, code, name, kind, parent_station, latitude, longitude, wheelchair_boarding, zone_id, route_ids[], route_codes[], routes[], systems[], platforms[] }.
  • kind: station (una estación de TransMilenio o TransMiCable, que tiene vagones) o stop (un vagón dentro de una estación, o un paradero zonal del SITP).
  • routes[]: cada ruta que para ahí, { route_id, short_name, long_name, system }. Una estación reúne las rutas de todos sus vagones.
  • platforms[]: para una estación, el stop_id de cada vagón.
  • systems[]: troncal, alimentador, dual, zonal_urbano, zonal_complementario, zonal_especial, transmicable.

Un paradero

POST /co/transmilenio/stop/v1 Dataset Devuelve un paradero o una estación por su id.
Devuelve as_of, found, stop y, para un vagón, station. Un id desconocido responde found: false.

Salidas de un paradero

POST /co/transmilenio/stop-departures/v1 Dataset El horario de un paradero: las próximas salidas desde ahora, o desde cualquier hora de cualquier día.
Devuelve as_of, found, stop_name, date, from_time, services (los horarios vigentes ese día), count y departures[]: { time, at, minutes_from_now, route_id, route_code, route_name, system, stop_id }. at es ISO 8601 en hora de Bogotá (-05:00); stop_id es el vagón del que sale el bus. Las rutas que terminan en el paradero no se incluyen: llegan, no salen.

Buscar rutas

POST /co/transmilenio/routes-search/v1 Dataset Encuentra rutas por código, destino, sistema o un paradero en el que paran.
Devuelve as_of, total, total_is_exact, page, per_page, total_pages, count y routes[]. Cada ruta es { route_id, short_name, long_name, system, system_name, mode, color, text_color, stops_count, trips_per_week, first_departure, last_departure, services[], headways[] }.
  • route_id: cada sentido de una ruta tiene el suyo; long_name suele ser su destino.
  • services[]: cada horario que opera la ruta, { service_id, days[], trips, first_departure, last_departure }. Las horas son HH:MM:SS del día de servicio; después de 24:00:00 es pasada la medianoche.
  • headways[]: franjas en que la ruta opera por frecuencia y no con horario fijo (TransMiCable).

Una ruta

POST /co/transmilenio/route/v1 Dataset Devuelve una ruta con sus paradas en orden y, si se pide, su trazado.
Devuelve as_of, found y route: los campos de la ruta más patterns[], cada secuencia de paradas distinta que opera, la más frecuente primero: { shape_id, trips_per_week, length_m, geometry, stops[] }. Cada parada es { sequence, stop_id, name, code, latitude, longitude, offset_seconds }, donde offset_seconds es el tiempo programado desde la primera parada.

Vehículos en vivo

POST /co/transmilenio/vehicles/v1 Live Dónde van los vehículos ahora, en una ruta o alrededor de un punto.
Devuelve as_of (cuándo reportaron los vehículos por última vez), total, page, per_page, total_pages, count y vehicles[]: { vehicle_id, label, license_plate, latitude, longitude, bearing, speed_kmh, route_id, route_code, route_name, system, trip_id, trip_start_time, stop_id, stop_name, stop_status, reported_at, distance_m }. stop_status es incoming_at, stopped_at o in_transit_to respecto a la parada indicada.

Llegadas en vivo a un paradero

POST /co/transmilenio/stop-arrivals/v1 Live Los vehículos que van hacia un paradero ahora, el más próximo primero.
Devuelve as_of, found, stop_name, count y arrivals[]: { predicted_at, minutes_away, delay_seconds, stop_id, route_id, route_code, route_name, system, trip_id, vehicle_id, vehicle_label, license_plate }. delay_seconds es positivo cuando el vehículo va retrasado frente a su horario. Cada vehículo se estima en su próxima parada, así que la lista trae los vehículos cuya próxima parada es esta.

Novedades del servicio

POST /co/transmilenio/alerts/v1 Live Las novedades vigentes ahora, para toda la red, una ruta o un paradero.
Devuelve as_of, count y alerts[]: { alert_id, cause, effect, header, description, url, active_periods[], routes[], stops[] }. effect es detour, no_service, reduced_service, significant_delays, stop_moved, …; los textos quedan como los escribe el sistema.

Referencia completa

Esquemas, todos los campos de respuesta y un playground interactivo.