If you’re looking to build an app with realtime data APIs but don’t know which data source to use, you may find yourself struggling to get started due to the sheer amount of options available to you. In this blog, we’ll dig into some of our favorite free examples to choose from (it’s worth a quick note to remind you to check their usage license and free tier allowance).
Below are data sources split into transport, weather, and currency sources.
Transport sources
1. Helsinki Transit Data: HSL provides various realtime feeds on the positions and details of their various trams and vehicles. These are provided via MQTT, with a full specification available on their website. They make great use of topic-level filtering, allowing for regional filtering as well as rate-limiting updates from milliseconds to minutes. (Redis has a great video on How to Build a Real Time Vehicle Tracking App with Go, Javascript & Redis using the Helsinki Transit data.
2. TfL Open Data: TfL has some great REST APIs for accessing data on all of London’s transport methods, however, lesser known is their SignalR-based solution, which makes all of the arrivals data available via WebSockets. This one is less-documented, but it provides a large swathe of data options.
3. Kystverket: The Norwegian Coastal Administration provides access to its Automatic Identification System (AIS) showing each ship’s identification, speed, and course.
4. FlightRadar24: FlightRadar24’s basic plan includes live flight tracking, limited Enhanced 3D, and search ability.
(There are many other transport sources available publicly, including Bay Area Rapid Transport (BART), CT transit (Connecticut), Digitransit (Finland), Madison Transit, Massachusetts Bay Transportation Authority, Transit Authority of River City, TriMet, and more. If you want to use transport data from a specific geography not mentioned in the above sources, we recommend searching for it as it may well be available.)
Weather sources
5. Open Weather Map: Open Weather provides current weather data and forecasts for up to the next four days, plus over 40 years of historical weather data. You can make up to 1,000 API calls per day for free.
6. Weather API: The Weather API provides weather information for millions of locations worldwide, the free tier allows up to 1 million calls per month, three days of forecast, one day of marine data, and air quality data to name a few.
Currency sources
7. Exchange Rate: Their REST API interface delivers currency exchange rate data for hundreds of currencies, allowing up to 1,000 monthly requests for free.
8. PredictIt: PredictIt shares trade pricing and share market data, plus plots historical pricing data.
9. Binance: Binance provides data on cryptocurrency values, with various APIs including one of WebSockets. They provide a large number of filter options for customized streams.
10. Coinranking: Coinranking’s API provides crypto market data for thousands of coins including Bitcoin and Ethereum. They provide community tutorials demonstrating using their APIs, including how to build a filterable cryptocurrency dashboard and how to build and deploy a React cryptocurrency app.
Open data source tools
Once you’ve chosen a data source to use, there are some tools we recommend checking out, which may help you get started.
- Postman: Postman provides various tools for testing out WebSockets, such as a helpful UI for deciding on headers, and formatting of responses.
- AsyncAPI: Interested in how to define your WebSocket APIs? One of the most advanced realtime specifications is the AsyncAPI specification, which comes with various generators for code and documentation, as well as renderers for the specifications.
- Ably Labs Ingester: Ably Labs is Ably’s GitHub playground for open-sourced realtime messaging projects powered by Ably Realtime. This tool is intended for getting various sources, regardless of protocol or structure, into Ably.
Inspired to get started?
If you've been inspired to use a data source and build something with Ably, you can get started by signing up for free and get:
- 6M monthly messages
- 200 peak concurrent channels
- 200 peak concurrent connections