Search stops
POST /co/transmilenio/stops-search/v1 Dataset
Finds stops and stations by name, by route, or around a point. Start here to
get the stop_id the other endpoints take.
as_of, total, total_is_exact, page, per_page, total_pages, count and stops[]; each stop carries distance_m when you searched around a point.
Each stop is { stop_id, code, name, kind, parent_station, latitude, longitude, wheelchair_boarding, zone_id, route_ids[], route_codes[], routes[], systems[], platforms[] }.
kind:station(a TransMilenio or TransMiCable station, which holds platforms) orstop(a platform inside a station, or a street stop of the SITP).routes[]: every route that stops there,{ route_id, short_name, long_name, system }. A station gathers the routes of all its platforms.platforms[]: for a station, thestop_idof each platform.systems[]:troncal,alimentador,dual,zonal_urbano,zonal_complementario,zonal_especial,transmicable.
One stop
POST /co/transmilenio/stop/v1 Dataset
Returns one stop or station by its id.
as_of, found, stop and, for a platform, station. An unknown id answers found: false.
Departures from a stop
POST /co/transmilenio/stop-departures/v1 Dataset
The timetable at a stop: the next departures from now, or from any time on any
day.
as_of, found, stop_name, date, from_time, services (the timetables in force that day), count and departures[]: { time, at, minutes_from_now, route_id, route_code, route_name, system, stop_id }. at is ISO 8601 in Bogotá (-05:00); stop_id is the platform the bus leaves from. Routes that end at the stop are left out: they arrive, they do not leave.
Search routes
POST /co/transmilenio/routes-search/v1 Dataset
Finds routes by code, destination, system or a stop they serve.
as_of, total, total_is_exact, page, per_page, total_pages, count and routes[].
Each route is { 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: each direction of a route has its own;long_nameis usually where it goes.services[]: each timetable the route runs,{ service_id, days[], trips, first_departure, last_departure }. Times areHH:MM:SSof the service day; past24:00:00is after midnight.headways[]: windows where the route runs by frequency instead of a fixed timetable (TransMiCable).
One route
POST /co/transmilenio/route/v1 Dataset
Returns one route with its stops in order and, on request, its path.
as_of, found and route: the route’s fields plus patterns[], each distinct sequence of stops it runs, the most frequent first: { shape_id, trips_per_week, length_m, geometry, stops[] }. Each stop is { sequence, stop_id, name, code, latitude, longitude, offset_seconds }, where offset_seconds is the scheduled time from the first stop.
Live vehicles
POST /co/transmilenio/vehicles/v1 Live
Where the vehicles are now, on one route or around a point.
as_of (when the vehicles last reported), total, page, per_page, total_pages, count and 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 is incoming_at, stopped_at or in_transit_to the stop named.
Live arrivals at a stop
POST /co/transmilenio/stop-arrivals/v1 Live
The vehicles heading to a stop now, soonest first.
as_of, found, stop_name, count and 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 is positive when the vehicle runs behind its timetable. Each vehicle is predicted at its next stop, so the list holds the vehicles whose next stop is this one.
Service alerts
POST /co/transmilenio/alerts/v1 Live
The alerts in force now, for the whole network, a route or a stop.
as_of, count and alerts[]: { alert_id, cause, effect, header, description, url, active_periods[], routes[], stops[] }. effect is detour, no_service, reduced_service, significant_delays, stop_moved, …; the texts stay in Spanish as the network writes them.
Full reference
Schemas, all response fields, and an interactive playground.