# GasBuddy Fuel Prices Scraper - Every Station & Grade (`clearpath/gasbuddy-fuel-prices-scraper`) Actor

Every GasBuddy station in a ZIP code, city, county, whole state or along a route, US and Canada, with every fuel grade's cash and credit price, report time and reporter. Plus address, coordinates, brand, ratings, amenities, hours, deals and fleet-card programs such as WEX and Fuelman.

- **URL**: https://apify.com/clearpath/gasbuddy-fuel-prices-scraper.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Travel, E-commerce
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.69 / 1,000 stations

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![2,000+ gas stations. Under 30 seconds. Houston, TX, station details off.](https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/gasbuddy-fuel-prices-scraper-readme-hero-speed-v1-eab1ab772c03.png)](https://console.apify.com/actors/G7o5ykKVKZQ4GOMSm/input)

From **Clearpath**, creators of [Coles Scraper](https://apify.com/clearpath/coles-scraper) and [Zillow Scraper](https://apify.com/clearpath/zillow-bulk-search-unlimited-scraper). **25,000+ combined lifetime runs** across these store-price and property scrapers.

### GasBuddy prices at city scale

**A city of stations in seconds.** A recorded Houston, TX run saved **2,136 unique stations in 22.3 seconds** with station details off. Addresses, coordinates, reported fuel prices, amenities and fleet-card programs remain included.

**Cash and credit, grade by grade.** Compare the reported prices for regular, midgrade, premium, diesel, E85 and UNL88 where available. Each price includes its report time, reporter and source label. Unreported prices stay empty.

**Expand from a city to a whole state.** One Texas search saved **15,542 unique stations in about 2 minutes 16 seconds**, also with station details off. Search ZIP codes, cities, states and routes across the US and Canada.

The hero shows a generated price panel using recorded Houston values. The times describe measured runs; results and runtime vary by search. Optional station details and reviews take longer: a recorded Houston run with default details took about 4 minutes.

<a href="https://console.apify.com/actors/G7o5ykKVKZQ4GOMSm/input" data-demo-cta="true"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/gasbuddy-fuel-prices-scraper-readme-cta-speed-v1-f73839fd8c43.png" width="248" height="52" alt="Search GasBuddy prices" /></a>

### Quick input

Try Houston with station details off, capped at 100 stations:

```json
{
  "locations": [
    "Houston, TX"
  ],
  "includeStationDetails": false,
  "maxItems": 100
}
```

[Open actor input](https://console.apify.com/actors/G7o5ykKVKZQ4GOMSm/input) to enter your locations. Remove `maxItems` for the full city search and set a spending limit. The 100-station trial does not reproduce the bulk benchmark.

Enable `includeStationDetails` for rating highlights, top reporters and additional opening information; enable `includeReviews` for written reviews. Both add no extra station charge. Export JSON, CSV or Excel; JSON keeps all nested price reports.

<table>
<tr><td style="padding:10px 14px;background:#0097A9;border:none;border-radius:4px 4px 0 0"><span style="color:#071D2B;font-size:14px;font-weight:700">Clearpath price &amp; location data</span></td></tr>
<tr><td style="padding:6px;border:1px solid #B5DCDF;border-top:none;border-radius:0 0 4px 4px;background:#E0F2F1"><span style="display:inline-block;vertical-align:top;width:140px;margin:4px;padding:8px 12px;border:1px solid #B5DCDF;border-radius:4px;background:#C9E8E6"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-G7o5ykKVKZQ4GOMSm-fJGfgJk6mw-gasbuddy-fuel-prices-scraper.jpg" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://console.apify.com/actors/G7o5ykKVKZQ4GOMSm/input" style="color:#00414A;text-decoration:none;font-weight:700;font-size:13px">GasBuddy</a></span><br><span style="color:#365A60;font-size:12px">&#10148; You are here</span></span>
<span style="display:inline-block;vertical-align:top;width:140px;margin:4px;padding:8px 12px;border:1px solid #B5DCDF;border-radius:4px;background:#E0F2F1"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-FzxNShGGntfilAEDe-9OiAyL7bAA-coles-scraper-icon-v1.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/coles-scraper" style="color:#00414A;text-decoration:none;font-weight:700;font-size:13px">Coles</a></span><br><span style="color:#365A60;font-size:12px">Prices &amp; stock by store</span></span>
<span style="display:inline-block;vertical-align:top;width:140px;margin:4px;padding:8px 12px;border:1px solid #B5DCDF;border-radius:4px;background:#E0F2F1"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-cfmAVd7XDm7dWNSPg-RS0c2sB7Ol-woolworths-scraper-icon-v3.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/woolworths-scraper" style="color:#00414A;text-decoration:none;font-weight:700;font-size:13px">Woolworths AU</a></span><br><span style="color:#365A60;font-size:12px">Prices &amp; stock by store</span></span>
<span style="display:inline-block;vertical-align:top;width:140px;margin:4px;padding:8px 12px;border:1px solid #B5DCDF;border-radius:4px;background:#E0F2F1"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-o7HmXfwKe2eunRYXI-9A6dajayVT-zillow-bulk-search-unlimited-scraper-logo.png.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/zillow-bulk-search-unlimited-scraper" style="color:#00414A;text-decoration:none;font-weight:700;font-size:13px">Zillow</a></span><br><span style="color:#365A60;font-size:12px">Rentals, sales &amp; sold homes</span></span></td></tr>
</table>

#### Copy to your AI assistant

```text
clearpath/gasbuddy-fuel-prices-scraper on Apify returns GasBuddy gas stations in the US and Canada as one row per station, each with every fuel grade's cash and credit price in prices (price, postedAt, reportedBy, reportSource) plus flat cashPrice and creditPrice for fuelType (default regular). Inputs, mixable in one run: locations (ZIP or postal code, "City, ST", "Name County, ST", a state or province code such as TX, or "lat, lng"; a bare city name means its metro area), routes ("Houston, TX to Austin, TX" returns the stations along the drive, roughly in travel order, with routeProgressMiles (exact mile on the route) and routeDetourMiles), stations (GasBuddy station links or numbers). Rows from locations also carry searchLocation.priceTrends: GasBuddy's average and lowest price today and trend (up, stable, down) for the city, state or province and country. A ZIP, city or county returns its own stations (inSearchArea true) and then the nearest stations around its center, up to about 18 miles and 1,500 stations (a county or ZIP listing more than 1,500 stations of its own says so in the run log); a state, province or city returns every station in it (Texas about 15,500, takes a few minutes). For nearby stations only, set radiusMiles, which also covers circles beyond 18 miles. maxItems (whole run) and maxStationsPerLocation default to no limit; the filters fuelTypes, brands and maxPriceAgeHours are off by default. includeStationDetails (default true) adds hoursStatus, nextOpenIntervals, ratingHighlights, topReporters, isFuelmanSite and reviewsCount and makes large runs slower (about 4 to 5 minutes per 2,000 stations); set it false for speed. Written reviews need includeReviews=true (maxReviewsPerStation, default 10). Unreported prices are null, never 0, and about 4 in 10 stations have no current price at a given moment. Canadian prices are CAD cents per liter. Pricing: one Station charge per saved station, $0.99 per 1,000 on the Free plan down to $0.69 on Gold, details and reviews at no extra charge, plus Apify's platform start fee. Every input and output field: the Input and Output tabs at https://apify.com/clearpath/gasbuddy-fuel-prices-scraper. Current pricing: https://apify.com/clearpath/gasbuddy-fuel-prices-scraper To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### How to scrape GasBuddy gas prices

Enter places, routes or stations, one per line. Mix them freely in one run; a station found by two searches is saved once.

| What you enter | Example | What you get |
|---|---|---|
| ZIP or postal code | `77002`, `M5V 2T6` | The stations GasBuddy lists for that code, then the nearest stations around it (up to about 18 miles out) |
| City with state or province | `Houston, TX`, `Toronto, ON` | The city's stations, then the nearest around its center |
| County | `Harris County, TX` | The county's stations, then the nearest around its center |
| Whole state or province | `TX`, `Ontario` | Every station listed there; large states take a few minutes |
| Coordinates | `29.76, -95.37` | The nearest stations around that point, up to about 18 miles out |
| Bare city name | `Houston` | The metro area |
| Route | `Houston, TX to Austin, TX` | Stations along the drive, roughly in travel order, with the exact mile on the route |
| Station link or number | `https://www.gasbuddy.com/station/68540`, `6258` | Exactly those stations, for repeat checks |

`inSearchArea` tells you whether a station belongs to the place you searched (`true`) or is one of the nearby stations around it (`false`).

`searchLocation.priceTrends` adds GasBuddy's own area figures for each searched place: today's average and lowest price and whether prices are up, stable or down, for the city where GasBuddy tracks one, its state or province, and the whole country. Compare any station against its area average without a second source. It is one figure per area, not per grade, and it is empty for routes and station lists.

#### Options

| Parameter | Type | Default | Meaning |
|---|---|---|---|
| `locations` | list | none | Places to search, see the table above. Up to 1,000 per run. |
| `routes` | list | none | Trips as `start to end`. Up to 200 per run. |
| `stations` | list | none | Station links or numbers. Up to 10,000 per run. |
| `maxItems` | number | no limit | Stop the whole run after this many stations. |
| `maxStationsPerLocation` | number | no limit | Stop each location, route or state after this many stations. |
| `fuelType` | choice | `regular` | The grade copied into the flat `cashPrice` and `creditPrice` columns. Every grade is always in `prices`. |
| `includeStationDetails` | yes/no | yes | Opening state and next opening times, rating highlights, top price reporters, Fuelman flag, outage status, review count. |
| `includeReviews` | yes/no | no | Written reviews with rating, date, author and owner replies. |
| `maxReviewsPerStation` | number | 10 | Reviews per station when reviews are on, newest first. |
| `includeSponsoredCampaigns` | yes/no | no | The advertising campaign tags GasBuddy attaches to a station. |
| `fuelTypes` | list | none | Only stations selling one of these grades. |
| `brands` | list | none | Only these brands, for example `Shell` or `Costco`. |
| `maxPriceAgeHours` | number | none | Only stations with a price reported within this many hours. |
| `radiusMiles` | number | none | Only stations within this distance of each location's center; the whole circle is covered even beyond 18 miles (up to 200). |

Filters are all off by default, so an empty filter never hides a station.

#### More examples

Every station in a state, fast, without the extra details:

```json
{
  "locations": ["RI"],
  "includeStationDetails": false
}
```

Diesel stations along a trip:

```json
{
  "routes": ["Houston, TX to Austin, TX"],
  "fuelType": "diesel",
  "fuelTypes": ["diesel"]
}
```

Shell and Costco within 5 miles of two ZIP codes, prices from the last day only:

```json
{
  "locations": ["90012", "60601"],
  "brands": ["Shell", "Costco"],
  "radiusMiles": 5,
  "maxPriceAgeHours": 24
}
```

### What data can you extract from GasBuddy?

One row per station:

- **Prices:** every grade the station sells, each with cash and credit price, report time, the reporting member, the report source (member, station owner, data feed) and the price range GasBuddy accepts there. Flat `cashPrice` and `creditPrice` columns for your main grade.
- **Station:** GasBuddy station number and link, name, brand and every brand at the site with logos, full address with cross street, coordinates, phone, time zone, open or closed, opening hours.
- **Amenities and payment:** convenience store, pay at pump, restrooms, air, car wash, truck stop, propane and more; payment options and Pay with GasBuddy.
- **Deals and programs:** current deals with per-grade discounts, reward programs such as Fuel Rewards, and partner programs that list the station (WEX, Fuelman, Mastercard, Upside and others) with the station's id there.
- **Ratings:** star rating and count; with details on, what reviewers praise and warn about, the review count and the most active price reporters; with reviews on, the reviews themselves.
- **Search context:** what you searched, how it was read, the place's center, distance from it, and for routes the mile on the trip and the distance from the route line.
- **Emergencies:** gas, diesel and power availability during a declared emergency, and outage status.

A real row from the Houston, TX search. Arrays are shortened here: the station has 4 grades in `prices`, 8 amenities, 4 deal discounts, 6 partner programs, 5 top reporters and 7 next opening times, and the hidden entries have the same shape:

```json
{
  "stationId": 36257,
  "stationUrl": "https://www.gasbuddy.com/station/36257",
  "name": "Circle K",
  "alias": "Valero",
  "brandId": 142,
  "brandName": "Valero",
  "brandLogoUrl": "https://images.gasbuddy.io/b/142.png",
  "brands": [
    {
      "brandId": 32,
      "name": "Circle K",
      "brandingType": "cstore",
      "brandingTypeLabel": "Convenience store brand",
      "logoUrl": "https://images.gasbuddy.io/b/32.png"
    },
    {
      "brandId": 142,
      "name": "Valero",
      "brandingType": "fuel",
      "brandingTypeLabel": "Fuel brand",
      "logoUrl": "https://images.gasbuddy.io/b/142.png"
    }
  ],
  "address": {
    "line1": "959 Pineloch Dr",
    "line2": "",
    "city": "Clear Lake",
    "state": "TX",
    "postalCode": "77062",
    "country": "US",
    "crossStreet": "El Camino Real",
    "crossStreetAlias": null,
    "atIntersection": true,
    "nearbyStreet": null,
    "addressAlias": null,
    "description": null
  },
  "fullAddress": "959 Pineloch Dr, Clear Lake, TX 77062",
  "latitude": 29.576556633431,
  "longitude": -95.141190513968,
  "distanceMiles": 24.36,
  "phone": "281-286-2656",
  "timezone": "America/Chicago",
  "openStatus": "open",
  "openingHours": "Mo-Fr 5:00-0:00, Sa 6:00-1:00, Su 6:00-0:00",
  "stationStatus": "active",
  "listingPriority": "normal",
  "enterprise": false,
  "starRating": 3.8,
  "ratingsCount": 144,
  "priceUnit": "dollars_per_gallon",
  "currency": "USD",
  "primaryFuel": "Regular",
  "cashPrice": null,
  "cashPostedAt": null,
  "creditPrice": 3.79,
  "creditPostedAt": "2026-10-06T23:35:40.172Z",
  "prices": [
    {
      "fuelType": "regular_gas",
      "fuelName": "Regular",
      "shortName": "Reg",
      "fuelId": 1,
      "sortOrder": 1,
      "unit": "dollars_per_gallon",
      "unitLabel": "US dollars per gallon",
      "currency": "USD",
      "discount": 0,
      "cash": null,
      "credit": {
        "price": 3.79,
        "postedAt": "2026-10-06T23:35:40.172Z",
        "reportedBy": "paulcab877",
        "reportSource": "member",
        "reportSourceLabel": "GasBuddy member",
        "priceId": 851498242,
        "minValidPrice": 3.25,
        "maxValidPrice": 4.69
      }
    },
    {
      "fuelType": "midgrade_gas",
      "fuelName": "Midgrade",
      "shortName": "Mid",
      "fuelId": 2,
      "sortOrder": 2,
      "unit": "dollars_per_gallon",
      "unitLabel": "US dollars per gallon",
      "currency": "USD",
      "discount": 0,
      "cash": null,
      "credit": {
        "price": 4.39,
        "postedAt": "2026-10-08T01:22:04.442Z",
        "reportedBy": "DataFeed",
        "reportSource": "data-feed",
        "reportSourceLabel": "Data feed",
        "priceId": 853708631,
        "minValidPrice": 3.75,
        "maxValidPrice": 5.49
      }
    }
  ],
  "fuelTypesOffered": [
    {
      "code": "regular_gas",
      "name": "Regular"
    },
    {
      "code": "midgrade_gas",
      "name": "Midgrade"
    },
    {
      "code": "premium_gas",
      "name": "Premium"
    },
    {
      "code": "diesel",
      "name": "Diesel"
    }
  ],
  "amenities": [
    {
      "code": "propane",
      "name": "Propane"
    },
    {
      "code": "c_store",
      "name": "C-Store"
    },
    {
      "code": "carwash",
      "name": "Car Wash"
    },
    {
      "code": "pay_at_pump",
      "name": "Pay At Pump"
    },
    {
      "code": "restrooms",
      "name": "Restrooms"
    }
  ],
  "carCare": [],
  "paymentMethods": [
    "Pay At Pump",
    "ATM",
    "Pay with GasBuddy",
    "Credit cards"
  ],
  "payWithGasBuddy": true,
  "payDetails": null,
  "brandAcceptsCreditCards": true,
  "brandAcceptsPayWithGasBuddy": true,
  "offers": [
    {
      "offerId": "G0-f1359fd7-0c97-48a7-9954-5aebd3055f24",
      "type": "external",
      "use": [
        "banner"
      ],
      "highlight": "Flash Deal: Earn up to 24¢ per gallon",
      "duration": 14400,
      "siteId": "",
      "discounts": [
        {
          "grades": [
            {
              "code": "regular_gas",
              "name": "Regular"
            }
          ],
          "discount": 0.01,
          "receiptDiscount": 0.01,
          "highlight": "Flash Deal: Earn 1¢ GasBack per gallon"
        },
        {
          "grades": [
            {
              "code": "midgrade_gas",
              "name": "Midgrade"
            }
          ],
          "discount": 0.22,
          "receiptDiscount": 0.22,
          "highlight": "Flash Deal: Earn 22¢ GasBack per gallon"
        }
      ]
    }
  ],
  "rewards": [],
  "partnerPrograms": [
    {
      "organization": "wex",
      "organizationName": "WEX",
      "id": "AC008284"
    },
    {
      "organization": "txlottery",
      "organizationName": "Texas Lottery",
      "id": "225570"
    },
    {
      "organization": "getupside",
      "organizationName": "Upside",
      "id": "2569598d-f6a0-48f6-87b2-1a4b19984af5"
    }
  ],
  "emergencyStatus": null,
  "hasActiveOutage": false,
  "searchQuery": "Houston, TX",
  "searchType": "city",
  "searchLocation": {
    "name": "Houston, TX",
    "latitude": 29.848584222970253,
    "longitude": -95.39935317132708,
    "state": "TX",
    "country": "US",
    "routeTo": null,
    "priceTrends": [
      {
        "area": "Houston",
        "country": "US",
        "averagePrice": 3.81,
        "lowestPrice": 3.33,
        "trend": -1,
        "trendLabel": "Prices are down",
        "unit": "dollars_per_gallon",
        "unitLabel": "US dollars per gallon",
        "currency": "USD"
      },
      {
        "area": "Texas",
        "country": "US",
        "averagePrice": 3.84,
        "lowestPrice": 3.33,
        "trend": -1,
        "trendLabel": "Prices are down",
        "unit": "dollars_per_gallon",
        "unitLabel": "US dollars per gallon",
        "currency": "USD"
      },
      {
        "area": "United States",
        "country": "US",
        "averagePrice": 4.34,
        "lowestPrice": null,
        "trend": 0,
        "trendLabel": "Prices are stable",
        "unit": "dollars_per_gallon",
        "unitLabel": "US dollars per gallon",
        "currency": "USD"
      }
    ]
  },
  "inSearchArea": true,
  "scrapedAt": "2026-10-08T05:32:57Z",
  "ratingHighlights": {
    "bestBets": [
      "Customer Service"
    ],
    "watchOuts": [
      "Coffee"
    ],
    "categories": [
      {
        "name": "Customer Service",
        "highlight": "best_bet",
        "imageUrl": "https://images.gasbuddy.com/di/shared/RatingCategories/Customer-Service.png"
      },
      {
        "name": "Coffee",
        "highlight": "watch_out",
        "imageUrl": "https://images.gasbuddy.com/di/shared/RatingCategories/Coffee-2.png"
      }
    ]
  },
  "topReporters": [
    {
      "memberName": "cwdisco",
      "isChampion": true,
      "consecutiveDaysReported": 3,
      "daysReportedLast30": 3,
      "lastReportedAt": "2026-10-06T05:23:05.44Z",
      "imageUrl": "https://images.gasbuddy.com/images/websites/gasbuddy/default-avatar.jpg",
      "homeArea": "Houston",
      "joinedAt": "2010-10-26T18:17:23.34Z",
      "overallRank": 55302,
      "rankLast30Days": 0,
      "totalPoints": 521650,
      "memberConsecutiveDays": 0,
      "pointsBalance": 482650,
      "pointsToday": 0,
      "carImage": "greycar.gif",
      "photoKey": ""
    }
  ],
  "hoursStatus": "closed",
  "nextOpenIntervals": [
    {
      "opensAt": "2026-10-08T05:00:00.000-05:00",
      "closesAt": "2026-10-09T00:00:00.000-05:00"
    },
    {
      "opensAt": "2026-10-09T05:00:00.000-05:00",
      "closesAt": "2026-10-10T00:00:00.000-05:00"
    }
  ],
  "isFuelmanSite": true,
  "reviewsCount": 23
}
```

Route searches add two fields to every row (values from a real stop in Brenham, TX on the Houston to Austin search):

```json
{
  "routeProgressMiles": 64.83,
  "routeDetourMiles": 0.03
}
```

`routeProgressMiles` is how far along the trip the station sits; `routeDetourMiles` is the approximate distance between the station and the route line.

### How much does it cost to scrape GasBuddy?

You pay per station saved. Station details and reviews add no charge per station; they only make a run take longer.

| Event | When charged | Price |
|---|---|---|
| Station | Once for each station saved | $0.99 per 1,000 |

The Free plan pays $0.99 per 1,000 stations, Bronze $0.89, Silver $0.79, Gold and above $0.69.

Station charges for a few typical runs on the Free plan: one ZIP code stopped at 100 stations, $0.10; all of Houston, TX (about 2,100 stations), about $2.08; all of Texas (about 15,500 stations), about $15.35. Set `maxItems` or a spending limit to cap any run.

### FAQ

**Is there an official GasBuddy data feed I could use instead?**
GasBuddy does not offer its station prices for public download. This actor gives you them as rows you can export or pull into your own tools.

**How fresh are the prices?**
They are GasBuddy's current crowd-reported prices. Each price carries `postedAt` and `reportedBy`, so you can judge freshness yourself, or keep only recent prices with `maxPriceAgeHours`.

**Why do some stations have no price?**
Nobody has reported a current price there. In Houston, about 4 in 10 stations have no current report at a given moment. Those prices stay empty rather than zero, and the station's other facts are still delivered.

**Can I get historical gas prices?**
Only current prices are available. Schedule the actor (hourly or daily) and every run adds a dated snapshot, which builds your own history.

**Does it cover Canada?**
Yes. Canadian stations come in Canadian cents per liter, with `currency` set to `CAD`.

**How many stations does one search return? Can I get a whole state?**
A ZIP, city or county returns its own stations plus the nearest stations around it, up to 1,500 nearby. A city returns all of its own stations; a county or ZIP listing more than 1,500 stations of its own says so in the run log, and the state search covers the rest. A state or province returns every station listed there; Texas returns about 15,500.

**Can I see which stations take fleet cards?**
`partnerPrograms` lists programs such as WEX and Fuelman with the station's id, and `isFuelmanSite` marks Fuelman stations when details are on.

**Why does a run take longer with details on?**
Details need one more look per station. About 2,000 stations with details take around 4 to 5 minutes; without details a whole state of 15,500 takes about 2.

**Do I need a GasBuddy account, cookie or proxy?**
No. Just enter places and run.

**How do I use it from my own code or automation?**
Run it from the Apify Console, on a schedule, from n8n, Make or Zapier, or with the Apify client for Python and JavaScript, and read the dataset when the run finishes.

### Support

Found a bug or need a field? Open an issue in the Issues tab, or email max@mapa.slmail.me.

This actor is independent and not affiliated with GasBuddy. It collects prices and station details that GasBuddy shows publicly; you are responsible for how you use the data.

# Actor input Schema

## `locations` (type: `array`):

<b>Quickstart:</b> enter a ZIP code or a city with its state and run.<br>One place per line, in the US or Canada: a ZIP or postal code (<code>77002</code>, <code>M5V 2T6</code>), a city with its state or province (<code>Houston, TX</code>, <code>Toronto, ON</code>), a county (<code>Harris County, TX</code>), a whole state or province (<code>TX</code>, <code>Ontario</code>) or coordinates (<code>29.76, -95.37</code>).<br>A ZIP, city or county returns its own stations first, then the nearest stations around it, up to about 18 miles out. A bare city name without a state searches its metro area. A whole state returns every station in it and can take several minutes for large states. Up to 1,000 lines.

## `routes` (type: `array`):

One trip per line, start and end separated by <code>to</code>, for example <code>Houston, TX to Austin, TX</code>. Returns the stations along the way, roughly in travel order, with the exact mile along the route and miles off it. Each end can be a city with its state, a ZIP code or coordinates. Up to 200 lines.

## `stations` (type: `array`):

GasBuddy station links or station numbers, one per line, for example <code>https://www.gasbuddy.com/station/68540</code> or <code>68540</code>. Use this to check the same stations on every run. Up to 10,000 lines.

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

Stop the whole run after this many stations, across all locations, routes and stations. Each station is one result. Leave empty for no limit.

## `maxStationsPerLocation` (type: `integer`):

Stop each location, route or state after this many stations. Leave empty for all of them.

## `fuelType` (type: `string`):

The grade copied into the flat price columns (<code>cashPrice</code>, <code>creditPrice</code>) for easy spreadsheets. Every row always carries every grade the station reports in <code>prices</code>; this setting removes nothing.

## `includeStationDetails` (type: `boolean`):

Adds each station's weekly opening hours, outage status, rating highlights (what reviewers praise or warn about) and its most active price reporters. Makes runs longer on large searches.

## `includeReviews` (type: `boolean`):

Adds the station's written reviews with rating, date, author and owner replies. Off by default because it makes rows much larger.

## `maxReviewsPerStation` (type: `integer`):

Only used with reviews switched on. Newest first.

## `includeSponsoredCampaigns` (type: `boolean`):

Adds the list of advertising campaign tags attached to each station. Rarely needed; often 20 or more tags per station.

## `fuelTypes` (type: `array`):

Keep only stations that sell at least one of these grades. Leave empty to keep every station.

## `brands` (type: `array`):

Keep only stations of these brands, for example <code>Shell</code> or <code>Costco</code>. Leave empty to keep every brand.

## `maxPriceAgeHours` (type: `integer`):

Keep only stations with at least one price reported within this many hours. Leave empty to keep every station, however old its prices.

## `radiusMiles` (type: `number`):

Keep only stations within this distance of each location's center, and cover that whole circle even beyond the usual 18 miles (up to 200). Leave empty for the default reach.

## `feedback` (type: `string`):

For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns.

## Actor input object example

```json
{
  "locations": [
    "77002"
  ],
  "maxItems": 100,
  "fuelType": "regular",
  "includeStationDetails": true,
  "includeReviews": false,
  "maxReviewsPerStation": 10,
  "includeSponsoredCampaigns": false
}
```

# Actor output Schema

## `stations` (type: `string`):

Every station this run returned, with all fuel prices.

# 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 = {
    "locations": [
        "77002"
    ],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/gasbuddy-fuel-prices-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 = {
    "locations": ["77002"],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/gasbuddy-fuel-prices-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 '{
  "locations": [
    "77002"
  ],
  "maxItems": 100
}' |
apify call clearpath/gasbuddy-fuel-prices-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/gasbuddy-fuel-prices-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/G7o5ykKVKZQ4GOMSm/builds/bL9KX14OMU2xgqq38/openapi.json
