Skip to content

Unofficial API to retrieve STCP information for public transit buses in Porto, Portugal

License

Notifications You must be signed in to change notification settings

sgtpepperpt/stcp-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STCP API

Unofficial API to retrieve STCP information for public transit buses in Porto, Portugal.

Retrieves static data about lines, stops, locations, and real-time estimates of bus arrivals.

Since it's based on a non-official API, it may stop working in the future. Confirmed working as of 24 February 2024.

See the files at stcp/api.py and stcp/util.py for the complete documentation, and examples.md for usage examples.

Available operations

Function Description
get_lines gets a list of all STCP lines.
get_line_directions gets a list of directions (usually 2) of a line.
get_line_stops gets a list of all stops of a line.
get_stop_data gets information about a stop, including a list of all the lines that pass through it.
get_stop_real_times gets a real-time list of buses passing through a stop soon (up to one hour from the current time).

Utilities

Function Description
get_all_stops gets a set of all STCP stop codes across all lines.
stop_departures gets a map of upcoming departures of a stop, grouped by line.
follow_line gets the current times for a given line.

Notes

To be able to get a stop's real-time departures, a "hash" is needed, which can be obtained by scraping STCP's webpage. These hashes are stored in a local CSV cache for efficiency purposes, which is generated on the first execution. However, the cache can be disabled, and the hash request can be made on-the-fly, by passing use_hash_cache=False to the get_stop_real_times function.