FuelRadar APIfuelradar.com.au ↗
Access real-time Australian fuel prices, station details, national cheapest lists, and state-by-state price trends via the FuelRadar API.
What is the FuelRadar API?
The FuelRadar API exposes 4 endpoints covering fuel station search, station detail, national cheapest rankings, and price trend overviews across Australia. Using search_stations_by_location, you can query stations by latitude and longitude and get back current prices in cents per litre, distances, and brand information. The API tracks over thousands of stations nationally and surfaces per-state averages, 45-day daily trends, and historical pricing per station.
curl -X GET 'https://api.parse.bot/scraper/2448f17a-0cc1-4166-bb9f-1c2b0dfbdbae/search_stations_by_location?lat=-33.8688&lng=151.2093&fuel_type=u91' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace fuelradar-com-au-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""FuelRadar API — search fuel stations, compare prices, get cheapest fuel across Australia."""
from parse_apis.FuelRadar_API import FuelRadar, FuelType, StationNotFound
client = FuelRadar()
# Search nearby stations by coordinates (Sydney CBD), filter by Unleaded 91
for station in client.station_summaries.search(lat=-33.8688, lng=151.2093, fuel_type=FuelType.U91, limit=5):
print(station.name, station.price, f"{station.distance}km")
# Drill into the first search result's full detail
hit = client.station_summaries.search(lat=-33.8688, lng=151.2093, limit=1).first()
if hit:
detail = hit.details()
print(detail.brand_name, detail.station_details.name, detail.station_details.address)
for fp in detail.main_station_prices:
print(f" {fp.long_name}: {fp.price} c/L")
# Direct station lookup by ID with typed error handling
if hit:
try:
station = client.stations.get(station_id=hit.id)
print(station.brand_name, station.station_details.suburb_name, station.station_details.state_name)
except StationNotFound as exc:
print(f"Station not found: {exc.station_id}")
# National overview — state averages and trends
overview = client.national_overviews.current()
print(f"Tracking {overview.total_stations} stations across {len(overview.states)} states")
for state in overview.states:
print(state.name, state.avg_price, state.low)
# Top cheapest stations nationally
for cheap in client.ranked_stations.top_cheapest(limit=3):
print(cheap.rank, cheap.name, cheap.price, cheap.state)
print("exercised: station_summaries.search / details / stations.get / national_overviews.current / ranked_stations.top_cheapest / StationNotFound")
Search for nearby fuel stations given latitude, longitude, and fuel type. Returns a list of stations with prices and distances from the search coordinates, sorted by distance ascending. Results come from the nearest known suburb to the provided coordinates; typically 15–20 stations within a ~20 km radius.
| Param | Type | Description |
|---|---|---|
| latrequired | number | Latitude of the location to search near (e.g. -33.8688 for Sydney) |
| lngrequired | number | Longitude of the location to search near (e.g. 151.2093 for Sydney) |
| fuel_type | string | Fuel type slug to filter prices by. |
{
"type": "object",
"fields": {
"stations": "array of station objects sorted by distance, each with id, name, brand, price (c/L), address, lat, lng, distance (km from search coords), fuel_name, updated_at"
},
"sample": {
"data": {
"stations": [
{
"id": "c5272ae088b1f897417e786f",
"lat": -33.8075114,
"lng": 151.1086039,
"name": "Metro Fuel",
"brand": "Metro",
"price": 159.9,
"address": "36-38 Lane Cove Rd, RYDE",
"distance": 11.5,
"fuel_name": "u91",
"updated_at": ""
}
]
},
"status": "success"
}
}About the FuelRadar API
Station Search and Price Lookup
search_stations_by_location accepts lat, lng, and an optional fuel_type slug, returning an array of station objects sorted by distance ascending. Each object includes id, name, brand, price (in c/L), address, coordinates, and distance from the search point. Results are scoped to the nearest known suburb, typically yielding 15–20 stations per call. The fuel_type param lets you filter to a specific product — slugs are available from get_top_100_cheapest's fuelTypeList array.
Station Detail and Historical Prices
get_station_detail takes a station_id hash and returns a richer payload: brandName, full stationDetails (name, address field A, postcode P, Lat, Lng, suburb_name), and mainStationPrices — an array of current prices where each entry carries Name, LongName, Code, Price in tenths of a cent, an updated_by_FuelRadar timestamp, and 30-day stats in stats30d. The response also includes nearbyStationsData with a NearestStations array and historicalPriceData entries, though the historical array may be empty for newer or less-tracked stations.
National Rankings and Overview
get_top_100_cheapest returns the 100 cheapest Unleaded 91 stations across Australia ranked by price, with each entry carrying rank, id, name, address, brand, brand_logo, state, postcode, and price. It also provides brandList and fuelTypeList reference arrays useful for other endpoint calls. get_national_overview delivers state-level summaries (avg_price, delta vs national average, stations count, low price), a trends array of daily avg_price/min_price/max_price over ~45 days, per-fuelTypes averages, popularCities breakdowns, and a totalStations count.
The FuelRadar API is a managed, monitored endpoint for fuelradar.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fuelradar.com.au changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official fuelradar.com.au API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a fuel-price comparison app that shows the cheapest nearby stations for a chosen fuel type using
search_stations_by_location. - Track daily national average fuel price movements using the
trendsarray fromget_national_overview. - Display state-by-state price differentials and which states are above or below the national average using the
statesarray. - Surface the 100 cheapest Unleaded 91 stations nationally in a dashboard, ranked by price from
get_top_100_cheapest. - Show 30-day price stats and historical trends for a specific station using
get_station_detail'sstats30dandhistoricalPriceDatafields. - Populate fuel stop suggestions along a planned route by querying
search_stations_by_locationat intervals along the path. - Alert users when a tracked station's price drops, using the
Pricefield from repeatedget_station_detailcalls.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FuelRadar have an official developer API?+
What fuel types can I filter by in `search_stations_by_location`?+
fuel_type parameter accepts slug values. You can retrieve the full list of valid slugs from the fuelTypeList array returned by get_top_100_cheapest, which includes fuel type id (the slug) and name for each supported product.How are prices represented across the endpoints — are the units consistent?+
search_stations_by_location and get_top_100_cheapest return price in cents per litre as a standard or string value. get_station_detail's mainStationPrices array returns Price in tenths of a cent, so divide by 10 to convert to c/L.Does the API cover diesel, LPG, or EV charging data?+
get_top_100_cheapest endpoint currently ranks only Unleaded 91 stations. search_stations_by_location accepts a fuel_type slug so you can query other fuel types where data exists, and get_national_overview includes per-fuel-type averages in fuelTypes. EV charging data is not currently exposed. You can fork this API on Parse and revise it to add an endpoint targeting EV-specific station data if the source carries it.How many stations does the API cover, and are all Australian states included?+
totalStations field in get_national_overview reflects the live tracked count nationally. The states array includes entries for all Australian states and territories. Coverage density varies by state — regional or rural stations may have less frequent price updates, and historicalPriceData in get_station_detail may be empty for some stations.