Discover/Petrolspy API
live

Petrolspy APIpetrolspy.com.au

Find the cheapest fuel prices across Australian petrol stations in real-time by searching your area, comparing prices by fuel type, and viewing detailed station information. Quickly locate the best deals near you by specifying your geographic region and fuel preferences.

Endpoint health
monitored
get_cheapest_prices
get_station_details
search_stations
Checks pendingself-healing
Endpoints
3
Updated
2h ago
Try it
Maximum number of stations to return.
Northeast corner latitude of the bounding box (decimal degrees, e.g. -33.76).
Northeast corner longitude of the bounding box (decimal degrees, e.g. 151.07).
Southwest corner latitude of the bounding box (decimal degrees, e.g. -33.86).
Southwest corner longitude of the bounding box (decimal degrees, e.g. 150.94).
Fuel type to sort stations by price.
api.parse.bot/scraper/7bf5e451-0619-4e7d-85d9-3c57a1ce5738/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7bf5e451-0619-4e7d-85d9-3c57a1ce5738/search_stations?limit=10&ne_lat=-33.76&ne_lng=151.07&sw_lat=-33.86&sw_lng=150.94&fuel_type=E10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 petrolspy-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.

"""Walkthrough: PetrolSpy SDK — find cheapest fuel in Australian areas."""
from parse_apis.petrolspy_com_au_api import PetrolSpy, FuelType, StationNotFound

client = PetrolSpy()

# Search stations in the Parramatta/Western Sydney area, sorted by E10 price
for station in client.stations.search(
    ne_lat="-33.76", ne_lng="151.07", sw_lat="-33.86", sw_lng="150.94",
    fuel_type=FuelType.E10, limit=3
):
    print(station.name, station.brand, station.fuel_price)
    for fuel, fp in station.prices.items():
        print(f"  {fuel}: {fp.amount} cents/L (reported by {fp.reported_by})")

# Find cheapest U91 prices in the same area
cheapest = client.stations.cheapest(
    ne_lat="-33.76", ne_lng="151.07", sw_lat="-33.86", sw_lng="150.94",
    fuel_type=FuelType.U91, limit=1
).first()

# Drill into station details from cheapest price result
if cheapest:
    try:
        detail = cheapest.details(
            ne_lat="-33.76", ne_lng="151.07", sw_lat="-33.86", sw_lng="150.94"
        )
        print(detail.name, detail.address, detail.suburb, detail.open_24h)
    except StationNotFound as exc:
        print(f"Station no longer available: {exc}")

print("exercised: stations.search / stations.cheapest / cheapest.details / FuelPrice access")
All endpoints · 3 totalmissing one? ·

Search for fuel stations within a geographic bounding box. Returns stations with all available fuel prices, sorted by the requested fuel type price (cheapest first). Stations without the requested fuel type appear at the end.

Input
ParamTypeDescription
limitintegerMaximum number of stations to return.
ne_latrequiredstringNortheast corner latitude of the bounding box (decimal degrees, e.g. -33.76).
ne_lngrequiredstringNortheast corner longitude of the bounding box (decimal degrees, e.g. 151.07).
sw_latrequiredstringSouthwest corner latitude of the bounding box (decimal degrees, e.g. -33.86).
sw_lngrequiredstringSouthwest corner longitude of the bounding box (decimal degrees, e.g. 150.94).
fuel_typestringFuel type to sort stations by price.
Response
{
  "type": "object",
  "fields": {
    "stations": "array of station objects with id, name, brand, address, suburb, state, post_code, country, latitude, longitude, phone, open_24h, has_restrooms, is_adblue_available, fuel_price, and prices",
    "fuel_type": "string",
    "total_stations": "integer"
  },
  "sample": {
    "data": {
      "stations": [
        {
          "id": "523274ca036466fee4985694",
          "name": "Speedway Petroleum",
          "brand": "SPEEDWAY",
          "phone": "0297251816",
          "state": "NSW",
          "prices": {
            "E10": {
              "amount": 157.5,
              "updated": 1783693866275,
              "reported_by": "NSW Gov Open Data Fuel API"
            },
            "DIESEL": {
              "amount": 177.5,
              "updated": 1783693866275,
              "reported_by": "NSW Gov Open Data Fuel API"
            }
          },
          "suburb": "Smithfield",
          "address": "26-28 Cumberland Highway Cnr Victoria St",
          "country": "AU",
          "latitude": -33.851585,
          "open_24h": false,
          "longitude": 150.942796,
          "post_code": "2164",
          "fuel_price": 157.5,
          "has_restrooms": false,
          "is_adblue_available": true
        }
      ],
      "fuel_type": "E10",
      "total_stations": 5
    },
    "status": "success"
  }
}

About the Petrolspy API

The Petrolspy API on Parse exposes 3 endpoints for the publicly available data on petrolspy.com.au. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.