Table of contents Introduction An introduction to Trafiklab About Trafiklab Using Trafiklab.se Creating an account Creating a project Adding APIs to a project Getting API keys Upgrading API keys Frequently asked questions Public Transport Data Our Data and APIs GTFS GTFS Sverige 2 Static data Extra files Historical data GTFS Regional Static data Realtime data Extra files ResRobot ResRobot Stop lookup ResRobot Timetables ResRobot Route planner SL SL Departures SL Routeplanner SL Station lookup SL Stops and lines SL Nearby stops SL Disturbances SL Traffic status Oxyfi Vehicle positions Transit data formats Using GTFS Files Static GTFS files Realtime GTFS files The protobuf file format Using NeTEx files Combining data and APIs Converting SWEREF99 to WGS84 Developing with trafiklab The right data for your project Departure boards Route-planning Obtaining stop ids Our SDKs and libraries Java PHP ResRobot PHP SDK GTFS PHP SDK Best practices Interpreting HTTP Headers Client-side caching Conditional GET requests Limiting requests Keeping API keys secret Code fragments Calling APIs Example solutions Voice assistant Creating a DialogFlow agent Creating a fulfillment API Testing and deploying your app Importing our demo project Putting it all online Useful tools Postman Github Docker Heroku It's not all about the code Meeting other developers Meeting the Trafiklab team Making things better, together