# FuelWatch WA Official Fuel Price Scraper (`rainminer/fuelwatch-wa-gov-au-scraper`) Actor

Scrape official Western Australia fuel prices from FuelWatch for travel and fleet planners. Extract station names, brands, addresses, GPS, and today or tomorrow unleaded, diesel, LPG, 98 RON, and E10. No login. Schedule runs, export JSON/CSV/Excel, and feed dashboards via API. Pay per station.

- **URL**: https://apify.com/rainminer/fuelwatch-wa-gov-au-scraper.md
- **Developed by:** [rainminer](https://apify.com/rainminer) (community)
- **Categories:** Travel, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.86 / 1,000 fuel station scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![FuelWatch WA](https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/BNQWWUJ8lcaBhP8HG-actor-gVXSPAWyu1Ha3dp4k-fwGqUvtfrb-fuelwatch-wa-gov-au-scraper.png)

### What does FuelWatch WA Official Fuel Price Scraper do?

**FuelWatch WA Official Fuel Price Scraper** extracts **official Western Australia fuel prices** from [FuelWatch.wa.gov.au](https://www.fuelwatch.wa.gov.au/) — the state fuel-price transparency portal. Choose a product (unleaded, diesel, LPG, 98 RON, E10) and optionally a suburb, then export **today or tomorrow's** mandated station prices without writing any code. **No login required.**

Run it on the **Apify platform** to schedule crawls, export JSON/CSV/Excel, monitor failures, and integrate results via API.

***

### What data can you extract from FuelWatch?

| Field | Description |
| --- | --- |
| name | Trading name of the station |
| brand | Brand or banner |
| address | Street address |
| suburb | Suburb or locality |
| priceCentsPerLitre | Price in Australian cents per litre |
| priceAmount | Price in AUD per litre |
| productLabel | Unleaded, diesel, LPG, 98 RON, premium diesel, or E10 |
| priceDate | Trading date for the published price |
| day | `today` or `tomorrow` |
| latitude / longitude | Station coordinates |
| phone | Public phone number when listed |

***

### Why scrape FuelWatch?

Western Australia requires stations to lock in the next day’s prices. Typical jobs:

1. **Tomorrow's fill-up** — See mandated Perth prices before they go live
2. **Fleet planning** — Pick the cheapest depot suburb overnight
3. **Statewide diesel** — Snapshot truck diesel without clicking every town
4. **98 RON / E10** — Track premium and ethanol products separately
5. **LPG maps** — Find Autogas still listed on FuelWatch
6. **Brand spreads** — Compare Ampol, BP, Vibe, and independents
7. **Journalism** — Cite regulator-published prices instead of crowd reports
8. **Alerting** — Notify when tomorrow’s ULP drops below a threshold
9. **Travel weekends** — Check a holiday suburb before leaving Perth
10. **Data pipelines** — Automate WA fuel collection for dashboards
11. **Compliance checks** — Archive official boards for a given date
12. **Regional vs metro** — Run Perth plus an empty-suburb statewide slice

***

### How to scrape FuelWatch Western Australia

1. Open the Actor in [Apify Console](https://console.apify.com/)
2. Keep the default **Start URL** `https://www.fuelwatch.wa.gov.au/` or paste another FuelWatch URL
3. Choose a **Fuel product** (unleaded by default)
4. Optionally set **Suburb** (e.g. Perth). Leave it empty for a statewide snapshot
5. Choose **today** or **tomorrow**
6. Set **Maximum items** and click **Start**. Download the dataset as JSON, CSV, Excel, or HTML

For all input options, see the **Input** tab in Console.

***

### Input

| Field | Description |
| --- | --- |
| Start URLs | FuelWatch.wa.gov.au URLs (the homepage works) |
| Maximum items | Stations to return **per start URL** (default 5) |
| Fuel product | Unleaded, premium unleaded, diesel, LPG, 98 RON, premium diesel, or E10 |
| Suburb | Optional filter (e.g. Perth). Empty = statewide |
| Price day | `today` or `tomorrow` |
| Proxy configuration | Optional. The scraper works without a proxy in most regions |

Supported start URLs:

- Homepage: `https://www.fuelwatch.wa.gov.au/`

***

### Output

Each result is one gas station for the chosen product and day. You can download the dataset in **JSON, HTML, CSV, or Excel**.

```json
{
  "id": "burk|burk mount lawley|791 beaufort st|mount lawley|1|2026-09-01",
  "name": "Burk Mount Lawley",
  "brand": "Burk",
  "address": "791 Beaufort St",
  "suburb": "MOUNT LAWLEY",
  "phone": "(08) 6205 9900",
  "latitude": -31.925887,
  "longitude": 115.880225,
  "product": "1",
  "productLabel": "Unleaded petrol",
  "priceCentsPerLitre": 189.3,
  "priceAmount": 1.893,
  "currency": "AUD",
  "priceUnit": "cents/L",
  "priceDate": "2026-09-01",
  "day": "today",
  "url": "https://www.fuelwatch.wa.gov.au/"
}
```

***

### How much will it cost to scrape FuelWatch?

This Actor is **pay per event**. You pay a tiny start fee plus one charge per station pushed to the dataset. On the FREE plan that is **$2.49 per 1,000 stations** (about $0.0025 per station). GOLD and higher Store plans pay less per station. A five-station test run costs well under a dollar.

The crawler is HTTP-only (no browser) and uses **no proxy by default**, so compute stays low. Larger statewide snapshots scale with **maxItems**.

***

### Tips and advanced options

- Leave **Suburb** empty and raise **maxItems** to capture a statewide product snapshot.
- Set **day** to `tomorrow` for WA's next-day mandated prices.
- Add multiple start URLs if you want several products in one run (set the product field once per run, or run separate tasks).

***

### FAQ, disclaimers, and support

**Is scraping FuelWatch legal?**\
This Actor collects only **public** fuel price data published by FuelWatch Western Australia. You are responsible for complying with applicable laws when processing any data.

**Does it need a FuelWatch login?**\
No. Prices are published on the public site.

**Why are tomorrow’s prices available?**\
Western Australia’s FuelWatch scheme requires retailers to notify the next day’s prices in advance. This Actor reads that public board.

Use the **Issues** tab for feedback. Transfer data via the **API** tab or platform integrations.

***

### Related scrapers

You might also like [Clever-Tanken.de German Fuel Price Scraper](https://apify.com/rainminer/clever-tanken-de-scraper), [PetrolSpy Australia NZ Fuel Price Scraper](https://apify.com/rainminer/petrolspy-com-au-scraper), [Carbu.com France Belgium Fuel Price Scraper](https://apify.com/rainminer/carbu-com-scraper), and [Spritpreisrechner.at Scraper](https://apify.com/rainminer/spritpreisrechner-at-scraper).

### Image Credit

Image credit: [fuelwatch.wa.gov.au](https://www.fuelwatch.wa.gov.au/)

# Actor input Schema

## `startUrls` (type: `array`):

FuelWatch.wa.gov.au URLs. The homepage works. Product, suburb, and day can also come from the fields below.

## `maxItems` (type: `integer`):

Maximum number of gas stations to return per start URL.

## `product` (type: `string`):

FuelWatch product to query.

## `suburb` (type: `string`):

Optional FuelWatch suburb filter (e.g. Perth). Leave empty for a statewide snapshot.

## `day` (type: `string`):

Western Australia publishes tomorrow's mandated prices. Choose today or tomorrow.

## `proxyConfiguration` (type: `object`):

Proxy settings. The scraper works without a proxy in most regions.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.fuelwatch.wa.gov.au/"
    }
  ],
  "maxItems": 5,
  "product": "1",
  "day": "today",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.fuelwatch.wa.gov.au/"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rainminer/fuelwatch-wa-gov-au-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.fuelwatch.wa.gov.au/" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("rainminer/fuelwatch-wa-gov-au-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.fuelwatch.wa.gov.au/"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call rainminer/fuelwatch-wa-gov-au-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rainminer/fuelwatch-wa-gov-au-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gVXSPAWyu1Ha3dp4k/builds/2jhxwihHGOO7WtkvK/openapi.json
