GasBuddy Scraper | Gas Prices by Station avatar

GasBuddy Scraper | Gas Prices by Station

Pricing

from $1.21 / 1,000 stations

Go to Apify Store
GasBuddy Scraper | Gas Prices by Station

GasBuddy Scraper | Gas Prices by Station

GasBuddy scraper for gas prices by station: regular, midgrade, premium and diesel, cash and credit, with when and by whom each price was posted. Search by ZIP code, city or coordinates, or paste GasBuddy links and station ids. 40 stations in 6 seconds, 33 fields each. US and Canada, no account.

Pricing

from $1.21 / 1,000 stations

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 minutes ago

Last modified

Share

GasBuddy Scraper | Gas Prices by Station, Every Fuel Grade (2026)

1 search. 40 GasBuddy stations. 33 fields per station.

From SilentFlow. Creators of Pinterest Scraper and Leboncoin Scraper, with 420,000+ combined lifetime runs.

GasBuddy's pump prices as a clean table: one row per gas station with regular, midgrade, premium and diesel in their own columns, cash and credit prices, when each price was posted and by whom, plus the station's brand, address, coordinates, phone, opening hours, ratings and amenities. Type a ZIP code or a city, paste a GasBuddy link, or list the station ids you track, and get rows you can sort, map, chart or load into a spreadsheet. United States and Canada, no GasBuddy account.

Why choose this actor?

Checking GasBuddy station by station every morning to see what the competition charges? Reshaping a nested price object before your spreadsheet can read a single diesel price? Typing the same city again when all you want is the twelve stations you already watch?

  • 32 data fields on every station row, against the 19 data keys the most used GasBuddy scraper shows. Each row carries the four common grades as plain number columns (regularPrice, midgradePrice, premiumPrice, dieselPrice), every grade in full with its cash price, credit price, posting time and reporting member, the price unit and currency, the brand and its logo, the street address, city, state, postal code and country code, the station's latitude and longitude, its phone number, opening hours and open status, its star rating and number of ratings, the fuels it sells, its amenities, its current offers and whether it takes Pay with GasBuddy. The output example of the most used GasBuddy scraper has 19 data keys, with every price nested under one object and no station coordinates, phone or opening hours.
  • Three ways in, not one: places, GasBuddy links and station ids. The most used GasBuddy scraper only takes place names. Here you can also paste the links you already have open: a station page, a search results page or a city price page such as gasbuddy.com/gasprices/texas/dallas, mixed in one run with places and ids, every station delivered once.
  • Track the exact stations you care about, by id. List the station ids around your own sites (the number at the end of gasbuddy.com/station/100163) and schedule the run: every morning you get the same stations, in the same order, with their latest prices and posting times, ready to build a price history or trigger an alert when a competitor moves.

Try GasBuddy Scraper

Paste this input into the Input tab (JSON view) and press Start. It is the default input of the form: the 40 stations GasBuddy lists first for Austin, Texas, searched by regular gas.

{
"search": ["Austin, TX"],
"maxItems": 40,
"fuelType": "regular"
}

The Apify Free plan is enough to run it and to try the actor on your own ZIP codes, cities and stations: no credit card, no GasBuddy account, no setup. Each station becomes one row of the dataset, which you can export as JSON, CSV or Excel, open in Google Sheets, or read from the Apify API.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full context of this actor:

You have access to the GasBuddy Scraper on Apify: silentflow/gasbuddy-scraper
It reads public station fuel prices from GasBuddy (gasbuddy.com), United States and Canada.
One dataset row per gas station. No field is required; the form's default searches "Austin, TX".
Input:
- search (array of strings): places typed as on GasBuddy, one per entry: ZIP or postal code ("77002", "T2G 2H7"),
city ("Austin, TX", "Calgary"), address, or a point "latitude,longitude" ("30.2672,-97.7431").
GasBuddy lists stations nearest first.
- startUrls (array of {url}): gasbuddy.com links. A station page (https://www.gasbuddy.com/station/100163)
returns that station; a search page (https://www.gasbuddy.com/home?search=77002&fuel=4) or a city or state
price page (https://www.gasbuddy.com/gasprices/texas/dallas) returns every station it lists.
- stationIds (array of strings): GasBuddy station ids, the number in gasbuddy.com/station/{id}.
- maxItems (integer, default 100): most stations for the whole run, all entries together. No other limit.
- fuelType (string, default "regular"): "regular", "midgrade", "premium", "diesel", "e85" or "unl88",
the grade GasBuddy searches by. Every row still carries every grade the station reports.
- brand (string): keep only one brand, spelled as on GasBuddy ("Costco", "Shell", "Circle K").
Applies to places and links, not to station ids.
Output per row (34 fields; absent values are null, never an empty string):
- id (string, GasBuddy station id), url (string, station page), name, brand, brandLogoUrl (strings)
- regularPrice, midgradePrice, premiumPrice, dieselPrice (numbers, the posted price of each grade)
- priceUnit (string: "dollars_per_gallon" in the US, "cents_per_liter" in Canada), currency (string: USD or CAD)
- priceUpdatedAt (string, RFC 3339 UTC, the latest posted price), priceReportedBy (string, GasBuddy member)
- prices (array of objects): fuelType, fuelName, price, cashPrice, creditPrice, reportedAt (RFC 3339), reportedBy
- starRating (number, 0 to 5), ratingsCount (integer)
- address, city, state, postalCode, countryCode (strings), latitude, longitude (numbers),
distanceMiles (number, only for a latitude,longitude search)
- phone, openStatus, openingHours (strings)
- fuels (array: regular, midgrade, premium, diesel, e85, unl88), amenities (array of strings),
offers (array of strings), isPayAvailable (boolean), hasActiveOutage (boolean)
- searchQuery (string, the entry that produced the row), scrapedAt (string, RFC 3339 UTC)
Use apify-client for Python or JavaScript to run it and read the dataset.

How to scrape GasBuddy gas prices

Get gas prices for a ZIP code

One ZIP code, the stations nearest to it, every grade on each row.

{
"search": ["77002"],
"maxItems": 50
}

List diesel stations in two Texas cities

Search by diesel, as with the fuel selector on GasBuddy, across two cities. A station that shows up in both searches is saved once.

{
"search": ["Dallas, TX", "Fort Worth, TX"],
"fuelType": "diesel",
"maxItems": 150
}

Find Costco gas prices around a point

A latitude and longitude instead of a place name, kept to one brand. Each row then also carries its distance from that point, in miles.

{
"search": ["30.2672,-97.7431"],
"brand": "Costco",
"maxItems": 30
}

Input parameters

FieldTypeDefaultWhat it does
searcharray["Austin, TX"] in the formPlaces to search, typed as on GasBuddy: ZIP or postal code, city, "City, ST", address, or latitude,longitude.
startUrlsarrayemptyGasBuddy links: station pages, search results pages, city or state price pages.
stationIdsarrayemptyGasBuddy station ids, the number at the end of a station page link.
maxItemsinteger100Most stations for the whole run, all places, links and ids together. There is no other limit.
fuelTypestringregularThe grade GasBuddy searches by: regular, midgrade, premium, diesel, E85, Unleaded 88.
brandstringemptyKeep only one brand, spelled as on GasBuddy. Empty keeps every brand.

No field is required: any one of search, startUrls or stationIds is enough, and they can be mixed in one run.

Accepted formats

  • ZIP and postal codes: US ZIP codes (77002, 90210) and Canadian postal codes (T2G 2H7, M5V 2T6).
  • Cities: a city alone (Calgary) or with its state or province (Austin, TX, Toronto, ON, Fort Worth, Texas).
  • Points: latitude,longitude in decimal degrees (30.2672,-97.7431), spaces allowed. Rows then carry distanceMiles.
  • Station links: https://www.gasbuddy.com/station/100163, with or without https://www., and their sub-pages (/reviews).
  • Search links: https://www.gasbuddy.com/home?search=77002&fuel=4. The fuel of the link is kept for that search.
  • City and state price pages: https://www.gasbuddy.com/gasprices/texas/dallas, https://www.gasbuddy.com/gasprices/british-columbia/vancouver, https://www.gasbuddy.com/gasprices/texas.
  • Station ids: digits only (100163), or a station link pasted in the same field.
  • Fuel types: regular, midgrade, premium, diesel, e85 and unl88 (Unleaded 88, also sold as E15).

What data can you extract from GasBuddy?

Every row has the same 34 fields, in six groups: 32 data fields and 2 that say where the row came from. Absent values are null, never an empty string.

GroupFieldsWhat you get
Stationid, url, name, brand, brandLogoUrlThe GasBuddy station id and its permanent page, the station name, the fuel brand on the pump (Esso rather than the 7-Eleven shop it sits in) and its logo.
PricesregularPrice, midgradePrice, premiumPrice, dieselPrice, priceUnit, currency, priceUpdatedAt, priceReportedBy, pricesThe posted price of each common grade as a number, the unit and currency, the time and member of the latest report, and every grade in full: cash price, credit price, posting time and reporting member, E85 and Unleaded 88 included when sold.
RatingsstarRating, ratingsCountGasBuddy's star rating of the station and how many members rated it.
Locationaddress, city, state, postalCode, countryCode, latitude, longitude, distanceMilesThe street address, city, two-letter state or province, postal code, ISO country code, coordinates, and the distance from your point for a coordinate search.
Contact and hoursphone, openStatus, openingHoursThe station's phone number, whether it is open now, and its opening hours as GasBuddy shows them.
Station featuresfuels, amenities, offers, isPayAvailable, hasActiveOutageThe grades the station sells, its amenities (C-Store, Car Wash, Pay At Pump, Restrooms, ATM, Air Pump), current GasBuddy deals, Pay with GasBuddy availability and outage reports.
RunsearchQuery, scrapedAtThe place, link or id that produced the row, and when it was read.

Good to know before you build on the data:

  • id and url are stable: the same station keeps the same id run after run, which is what makes price histories possible.
  • Prices are crowd-reported by GasBuddy members and station feeds. Each one carries its own reportedAt and reportedBy, so you can keep only the prices posted in the last few hours.
  • A grade nobody has reported is null and left out of prices, never shown as zero.
  • US prices are in dollars per gallon; Canadian prices are in cents per liter, as GasBuddy shows them.
  • cashPrice is filled only when the station posts a separate cash price; price is the posted (credit) price, or the cash price when that is the only one.
  • brandLogoUrl is the brand image GasBuddy shows on the station page, one image per brand.

Output example

One row as the actor writes it, here a Circle K in Buckeye, Arizona, from a search on ZIP 85396:

{
"id": "110402",
"url": "https://www.gasbuddy.com/station/110402",
"name": "Circle K",
"brand": "Circle K",
"brandLogoUrl": "https://images.gasbuddy.io/b/8.png",
"regularPrice": 3.29,
"midgradePrice": 3.57,
"premiumPrice": 3.9,
"dieselPrice": 3.49,
"priceUnit": "dollars_per_gallon",
"currency": "USD",
"priceUpdatedAt": "2024-11-19T19:47:09Z",
"priceReportedBy": "AZ1234OH",
"prices": [
{
"fuelType": "regular",
"fuelName": "Regular",
"price": 3.29,
"cashPrice": null,
"creditPrice": 3.29,
"reportedAt": "2024-11-19T19:47:09Z",
"reportedBy": "AZ1234OH"
},
{
"fuelType": "midgrade",
"fuelName": "Midgrade",
"price": 3.57,
"cashPrice": null,
"creditPrice": 3.57,
"reportedAt": "2024-11-18T21:40:14Z",
"reportedBy": "DataFeed"
},
{
"fuelType": "premium",
"fuelName": "Premium",
"price": 3.9,
"cashPrice": null,
"creditPrice": 3.9,
"reportedAt": "2024-11-18T21:40:14Z",
"reportedBy": "DataFeed"
},
{
"fuelType": "diesel",
"fuelName": "Diesel",
"price": 3.49,
"cashPrice": null,
"creditPrice": 3.49,
"reportedAt": "2024-11-18T21:40:14Z",
"reportedBy": "DataFeed"
}
],
"starRating": 3.5,
"ratingsCount": 15,
"address": "721 N 195th Ave",
"city": "Buckeye",
"state": "AZ",
"postalCode": "85396",
"countryCode": "US",
"latitude": 33.45521911375,
"longitude": -112.47843503952,
"distanceMiles": 1.5,
"phone": null,
"openStatus": "open",
"openingHours": "Open 24 Hours",
"fuels": ["regular", "midgrade", "premium", "diesel"],
"amenities": ["C-Store", "Pay At Pump"],
"offers": null,
"isPayAvailable": true,
"hasActiveOutage": false,
"searchQuery": "85396",
"scrapedAt": "2026-10-10T12:00:00Z"
}

Advanced usage

Track a fixed list of competitor stations every morning

List the stations around your own sites once, then schedule this input daily from the Schedules tab. Every run returns the same stations with their latest prices and posting times, so appending each dataset to a table gives you a price history per station and per grade.

{
"stationIds": ["100163", "26593", "89269", "60386", "68389"],
"maxItems": 50
}

Read the GasBuddy city pages you already use

Paste city or state price pages straight from your browser. Each one returns the stations GasBuddy lists for that city, nearest first, and a station page in the same list returns that one station.

{
"startUrls": [
{ "url": "https://www.gasbuddy.com/gasprices/texas/houston" },
{ "url": "https://www.gasbuddy.com/gasprices/florida/orlando" },
{ "url": "https://www.gasbuddy.com/station/100163" }
],
"maxItems": 200
}

Compare Canadian pump prices across provinces

Canadian searches work the same way, with postal codes or cities. Rows come in cents per liter with CAD as the currency, ready to compare city against city.

{
"search": ["Toronto, ON", "Vancouver, BC", "Calgary, AB", "Montreal, QC"],
"maxItems": 160
}

Map diesel prices along a truck route

Give one point per stop of the route and search by diesel. Every row carries the station's coordinates and its distance from the stop, so you can plot the cheapest diesel within a few miles of each stop.

{
"search": ["35.4676,-97.5164", "35.2220,-101.8313", "35.0844,-106.6504", "35.1983,-111.6513"],
"fuelType": "diesel",
"maxItems": 120
}

Feed a Google Sheet or a dashboard every day

Run the input below on a schedule and read the prices view of the dataset, one column per grade, from the Apify API (https://api.apify.com/v2/datasets/{DATASET_ID}/items?view=prices&format=csv) or with the Apify Google Sheets integration. Keep brand empty for the whole market or set it to follow one chain.

{
"search": ["Phoenix, AZ", "Mesa, AZ", "Scottsdale, AZ"],
"fuelType": "regular",
"brand": "Circle K",
"maxItems": 300
}

FAQ

What is GasBuddy? GasBuddy is the fuel price app and website used by drivers in the United States and Canada. Members and station feeds post the prices they see at the pump, and GasBuddy shows them per station, per grade, with the time they were posted.

What does this GasBuddy scraper extract? One row per gas station: the posted price of regular, midgrade, premium and diesel, every grade in full with cash and credit prices and who posted them when, the brand, the address and coordinates, the phone number, the opening hours and open status, the star rating, the amenities, the current offers and Pay with GasBuddy availability. The table in "What data can you extract" lists all 34 fields.

Which places can I search? Any place GasBuddy knows in the United States and Canada: a ZIP or postal code, a city with or without its state or province, an address, or a point given as latitude and longitude. You can also paste GasBuddy links or station ids, and mix all three in one run.

How fresh are the prices? They are read from GasBuddy when the run starts, with no caching on our side. Each price is as fresh as the last GasBuddy report for that grade, and its reportedAt time tells you exactly how old it is, so you can drop anything older than the window you trust.

Why is a grade missing for some stations? Either the station does not sell it (check fuels) or no one has reported a price for it yet. In both cases the price column is null and the grade is left out of prices; it is never written as zero.

What is the difference between cash and credit prices? Some stations charge less when you pay cash. GasBuddy then shows two prices, and the row keeps both: cashPrice and creditPrice in prices. The grade columns such as regularPrice hold the posted (credit) price, or the cash price when the station posts only that one.

Do I need a GasBuddy account? No. The actor reads the station pages GasBuddy shows to any visitor. No login, no GasBuddy account and no setup.

Can I scrape many cities in one run? Yes. Put every ZIP code, city or point in search, add links and ids if you have them, and set maxItems for the whole run. A station that several searches return is saved once.

How many stations does one search return? GasBuddy lists stations nearest first and the actor follows its list page after page until maxItems is reached or the list ends. A large city has several hundred stations; a rural ZIP code has fewer.

What does the fuel type change? It is the same choice as the fuel selector on GasBuddy: the grade the search is made for. Whatever you pick, each row still carries every grade the station reports.

Can I combine a fuel type and a brand? Yes. "fuelType": "diesel" with "brand": "Shell" and "search": ["Houston, TX"] returns the Shell stations GasBuddy lists for a Houston diesel search, each with all of its prices.

Are station ids and links permanent? Yes. A GasBuddy station keeps its id and its gasbuddy.com/station/{id} page, which is why you can schedule the same ids every day and join the runs on id.

More SilentFlow scrapers

πŸ›’ E-commerce

πŸ’Ό Jobs

🏠 Real estate

πŸ“£ Social media

🏒 Business data

✈️ Travel

🎯 Lead generation

πŸ”Ž SEO

πŸ“ˆ Marketing

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This actor extracts publicly available data from gasbuddy.com: station details and the fuel prices GasBuddy shows to any visitor. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with GasBuddy's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). Rows include the public nicknames of the GasBuddy members who reported a price; handle that data accordingly. Prices are crowd-reported and informational: verify them at the pump before any regulated or contractual use.

GasBuddy Scraper by SilentFlow: every station's pump prices, every grade, with who posted them and when.