ura-m - Unofficial interface to URA-based departure monitors


ura-m [-s service] [-pV] [-l lines] [-o outputtypes] [-f timefmt | -F timefmt] [-v stopname] stopname


version 2.01


ura-m lists upcoming bus departures and bus service messages at the stop name. It only shows realtime data and has no knowledge of schedules or delays. Departures without such data may not appear at all.


By default, ura-m looks up departures for stops operated by ASEAG (Aachener Straßenbahn und Energieversorgungs AG), so it only works for Aachen and its vicinity. Other operators (and, thus, other areas) can be selected using either the -s/--service option, the --ura-base option, or the program name.

By creating a service-m symlink to ura-m, it will default to the URA interface operated by service, as if -s service was specified. So, for example, linking tfl-m to ura-m will request departures for TfL-operated stops, and linking aseag-m to ura-m will request departures for ASEAG-operated stops.

Use the --list option to get a list of supported backend services.


-f, --strftime format

Format absolute times in format, applies both to departure and route output. See DateTime(3pm) for allowed patterns.

-F, --strfrel format

Format relative times in format, only applies when used with -oT. See DateTime::Format::Duration(3pm) for allowed patterns.

-l, --line lines

Limit output to departures of lines (comma-separated list of line names, may be used multiple times).


List supported URA services with their URLs (see --ura-base) and abbreviations (see -s).

-o, --output outputtypes

Format output according to outputtypes. outputtypes is a comma-separated list and the --output option may be repeated. Each output type has both a short and a long form, so for instance both -or,T and --output=route_interesting,relative_times are valid.

Valid output types are:

a / route_after

For each departure, include the route after name. Both stop names and departure times are shown.

b / route_before

For each departure, include the route leading to name. Both stop names and departure times are shown.

f / route_full

For each departure, include the entire route (stop names and departure times).

i / indicator

Show stop point indicator, if available. This is usually a sub-stop or platform number, such as "H3".

r / route_interesting

For each departure, show up to three "interesting" stops between name and its destination. The importance of a stop is determined heuristically based on its name, so it is not always accurate.

T / relative_times

Show relative times. Applies to departure and route output.

Note that the routes may be incomplete, since the backend only provides a limited amount of departures and the routes are calculated from this set. intermediate stops are always included, but both route_after and route_before may be cut off after / before any stop. The same applies to route_full.

-p, --with-past

Include past departures. Applies both to the departure output and to the route output of -oa, -ob, -of.

-s, --service service

Request departures for URA instance service, e.g. ASEAG (Aachen, Germany) or TfL (London, UK). Use --list to get a list of supported URA instances. Note that service is not case sensitive.

-v, --via stop

Only show lines which also serve stop after name.

-V, --version

Show version information.

--ura-base url

Set URA base to url, defaults to See also --list and -s.

--ura-version version

Set URA API version to version, defaults to 1.


Normally zero. 1 means ura-m was called with invalid options, 2 indicates a request error from Travel::Status::DE::URA(3pm), 3 a bad (unknown or ambiguous) stop name.




* Class::Accessor(3pm)
* DateTime(3pm)
* DateTime::Format::Duration(3pm)
* LWP::UserAgent(3pm)
* Text::CSV(3pm)




Copyright (C) 2013-2023 by Birte Kristina Friesel <>


This program is licensed under the same terms as Perl itself.