GasBuddy Fuel Prices Scraper avatar

GasBuddy Fuel Prices Scraper

Pricing

from $1.15 / 1,000 fuel prices

Go to Apify Store
GasBuddy Fuel Prices Scraper

GasBuddy Fuel Prices Scraper

Collect public US GasBuddy station prices by ZIP, city and state, or exact coordinates. Look up the stations you name by station ID, page link, or street address. Get reported fuel grades, cash and credit prices, station details, and report times in structured rows.

Pricing

from $1.15 / 1,000 fuel prices

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

9

Monthly active users

15 hours

Issues response

2 days ago

Last modified

Share

⛽ GasBuddy fuel prices for local station research

Fuel buyers, fleet teams, station chains, and data builders can search public US GasBuddy station data by ZIP or postal code, city and state, or exact coordinates. They can also look up the stations they name by station ID, GasBuddy page link, or exact street address. Get each station's ID, name, and address, the fuel prices GasBuddy reports for each grade, cash and credit prices, the time each price was reported, ratings, offers, payment methods, and outage status, all in structured dataset rows. Use the rows to compare local prices, map fueling options, or feed a price workflow without copying pages by hand.

Use cases

🧾 Station prices and source details

What you get

The Actor saves one row for each station that an area search finds. It saves one row for each station you name, in the order you entered it, plus a row that explains any station that could not be returned. A row keeps the station ID, name, and address, plus the fuel prices GasBuddy reports and the time each price was reported. Optional values stay absent when the source does not report them.

Why it helps

You can compare cash and credit prices, review report times, and keep station context in one dataset. This cuts down on manual page copying while leaving the source values visible for your own checks.

🔎 Find stations by place or station ID

How to run

  1. Choose how to find stations: ZIP or postal codes, City and state, Exact coordinates, Station IDs or links, or Exact street address.
  2. Add one or more values to the matching field. A run uses one option at a time, and values in the other options are ignored.
  3. For an area search, optionally choose a fuel product, set a maximum report age, or add brand names.
  4. Start the run and open the default dataset.

One run can look up a long list of station IDs, page links, or street addresses, so one saved run can cover a whole station chain.

Result behavior

  • Each saved area row is the first match for a station that passes your filters. If another submitted location finds that station later, the later match is ignored.
  • Each station you name gets its own row, in the order you entered it. A station you name more than once appears once, at its first position, even when the entries use different forms.
  • A station lookup returns only the stations you name. It never adds nearby stations or swaps in a similarly named one.
  • A station that cannot be returned still gets its own row with a status and a short reason. One station that fails does not stop the others from returning.
  • The fuel product focus guides area searches. An area row still includes every fuel grade that GasBuddy reports for that station.
  • Cash and credit prices are kept separately, each with its report time and contributor when GasBuddy gives them.
  • Station IDs or links and exact street addresses keep every price report, even old ones.

Coverage

GasBuddy data is crowd-sourced. Reports may be old, missing, or different from the price at the pump. The Actor does not promise a current pump price, every grade at every station, or a fixed number of rows. It covers public US GasBuddy station data, including the stations you name by ID, page link, or street address.

⚙️ Input

Choose one value for target, then fill in the matching field. Values in the other options are ignored.

Input fields

FieldTypeWhat it does
targetstringRequired. Chooses one way to find stations: zip, cityState, coordinates, station, or streetAddress.
zipCodesarray of stringsFor zip. One or more U.S. ZIP or ZIP+4 values, one per line. A ZIP+4 value searches the whole 5-digit ZIP.
cityStatesarray of stringsFor cityState. One or more city and state values, such as Austin, TX, one per line.
coordinatesarray of objectsFor coordinates. One or more exact search locations. Each object needs a latitude and longitude.
coordinates[].latitudenumberLatitude for a search location, from -90 to 90.
coordinates[].longitudenumberLongitude for a search location, from -180 to 180.
stationsarray of stringsFor station. One GasBuddy station ID or station page link per line, such as 91019 or https://www.gasbuddy.com/station/91019. Each station is returned once, in your order. Nearby or similarly named stations are never added.
streetAddressesarray of stringsFor streetAddress. One full street address per line, such as 123 Main St, Austin, TX 78701. Each address returns only the station at that exact address.
fuelTypestringOptional for area searches: regular (the default), midgrade, premium, diesel, e85, or unleaded88. Keeps only stations that list a price for this fuel product. Each kept station still shows every grade that GasBuddy reports for it. Not used by station or streetAddress.
maxReportAgeHoursintegerOptional for area searches. Keeps only cash and credit prices reported within this many hours. Not used by station or streetAddress, which keep every report, even old ones.
brandNamesarray of stringsOptional for area searches. Keeps only stations whose brand name matches one of these names, ignoring capital letters. One brand name per line.

Example input

This is copied from the successful current beta default-input run.

{
"target": "zip",
"zipCodes": [
"78701"
],
"fuelType": "regular"
}

🧾 Output

Run output

FieldTypeWhat it does
datasetUrlstringLinks to all station results in the Fuel stations view.

The default dataset has one row for each station that an area search finds, and one row for each station you name. Each row matches one of the four shapes below, and each shape has its own table. Fields marked optional are omitted when the source does not provide them.

Area search rows

FieldTypeWhat it does
stationIdstringStable GasBuddy station ID. Its page is https://www.gasbuddy.com/station/ followed by this ID.
stationNamestringStation name reported by GasBuddy.
brandstring, optionalStation brand when GasBuddy reports one.
addressobjectStation address.
address.streetstringStreet address.
address.citystringStation city.
address.statestringStation state.
address.postalCodestring, optionalPostal code when GasBuddy gives one.
searchLocationobjectThe one submitted location value that found the station.
searchLocation.valuestringSubmitted ZIP, city and state value, or coordinate pair.
distanceMilesnumber, optionalDistance from the search location in miles, when GasBuddy reports it.
stationCoordinatesobject, optionalStation latitude and longitude, when GasBuddy reports them.
stationCoordinates.latitudenumberStation latitude.
stationCoordinates.longitudenumberStation longitude.
pricesarray of objectsFuel grades that have a reported cash or credit price.
prices[].fuelTypestringFuel grade: regular, midgrade, premium, diesel, e85, or unleaded88.
prices[].cashobject, optionalCash price for the grade.
prices[].cash.pricenumberCash price in US dollars per gallon.
prices[].cash.reportedAtstring, optionalTime GasBuddy says the cash price was reported.
prices[].cash.contributorstring, optionalContributor GasBuddy reports for the cash price.
prices[].creditobject, optionalCredit price for the grade.
prices[].credit.pricenumberCredit price in US dollars per gallon.
prices[].credit.reportedAtstring, optionalTime GasBuddy says the credit price was reported.
prices[].credit.contributorstring, optionalContributor GasBuddy reports for the credit price.
ratingobject, optionalStation rating when GasBuddy reports one.
rating.scorenumber, optionalRating score, from 0 to 5.
rating.countinteger, optionalNumber of ratings used for the score.
offersarray of objects, optionalOffers and discounts GasBuddy lists for the station.
offers[].namestring, optionalOffer name.
offers[].detailsstring, optionalOffer details.
offers[].discountstring, optionalDiscount wording reported by GasBuddy.
paymentMethodsarray of strings, optionalPayment methods reported as available at the station.
statusobject, optionalStation status when GasBuddy reports one.
status.outagestring, optionalactive or inactive: whether GasBuddy reports an active outage at the station.

Example area row

This genuine row comes from the current beta coordinate run.

{
"stationId": "213879",
"stationName": "Gulf",
"address": {
"street": "522 Main St",
"city": "Ansonia",
"state": "CT",
"postalCode": "06401"
},
"brand": "Gulf",
"stationCoordinates": {
"latitude": 41.336462764498,
"longitude": -73.076245777909
},
"rating": {
"score": 3.9,
"count": 8
},
"offers": [
{
"name": "Flash Deal: Save 2¢ per gallon",
"details": "gasbuddy, strike, sort",
"discount": "Flash Deal: Save 2¢ per gallon"
}
],
"status": {
"outage": "inactive"
},
"prices": [
{
"fuelType": "regular",
"cash": {
"price": 4.22,
"reportedAt": "2026-10-16T02:56:11.825Z",
"contributor": "DataFeed"
},
"credit": {
"price": 4.22,
"reportedAt": "2026-10-16T02:56:11.810Z",
"contributor": "DataFeed"
}
},
{
"fuelType": "midgrade",
"credit": {
"price": 4.99,
"reportedAt": "2026-10-15T02:56:15.899Z",
"contributor": "DataFeed"
}
},
{
"fuelType": "premium",
"credit": {
"price": 5.45,
"reportedAt": "2026-10-16T02:56:11.825Z",
"contributor": "DataFeed"
}
},
{
"fuelType": "diesel",
"credit": {
"price": 6.19,
"reportedAt": "2026-10-16T02:56:11.841Z",
"contributor": "DataFeed"
}
}
],
"searchLocation": {
"value": "41.4879,-73.0512"
},
"distanceMiles": 10.54
}

Stations you name with prices

This table covers a station you name that has at least one reported cash or credit price. The searchLocation and distanceMiles fields do not appear in these rows.

FieldTypeWhat it does
requestedStationstringThe station ID, station page link, or street address you entered for this row, as you entered it.
stationIdstringStable GasBuddy station ID. Its page is https://www.gasbuddy.com/station/ followed by this ID.
stationNamestringStation name reported by GasBuddy.
brandstring, optionalStation brand when GasBuddy reports one.
addressobjectStation address.
address.streetstringStreet address.
address.citystringStation city.
address.statestringStation state.
address.postalCodestring, optionalPostal code when GasBuddy gives one.
stationCoordinatesobject, optionalStation latitude and longitude, when GasBuddy reports them.
stationCoordinates.latitudenumberStation latitude.
stationCoordinates.longitudenumberStation longitude.
pricesarray of objectsEvery fuel grade GasBuddy lists for the station. A grade with no reported price has only its fuel type.
prices[].fuelTypestringFuel grade: regular, midgrade, premium, diesel, e85, or unleaded88.
prices[].cashobject, optionalCash price for the grade.
prices[].cash.pricenumberCash price in US dollars per gallon.
prices[].cash.reportedAtstring, optionalTime GasBuddy says the cash price was reported.
prices[].cash.contributorstring, optionalContributor GasBuddy reports for the cash price.
prices[].creditobject, optionalCredit price for the grade.
prices[].credit.pricenumberCredit price in US dollars per gallon.
prices[].credit.reportedAtstring, optionalTime GasBuddy says the credit price was reported.
prices[].credit.contributorstring, optionalContributor GasBuddy reports for the credit price.
ratingobject, optionalStation rating when GasBuddy reports one.
rating.scorenumber, optionalRating score, from 0 to 5.
rating.countinteger, optionalNumber of ratings used for the score.
offersarray of objects, optionalOffers and discounts GasBuddy lists for the station.
offers[].namestring, optionalOffer name.
offers[].detailsstring, optionalOffer details.
offers[].discountstring, optionalDiscount wording reported by GasBuddy.
paymentMethodsarray of strings, optionalPayment methods reported as available at the station.
statusobject, optionalStation status when GasBuddy reports one.
status.outagestring, optionalactive or inactive: whether GasBuddy reports an active outage at the station.

Example station row

This genuine row comes from the current beta station-ID run. It has every grade with cash and credit prices.

{
"stationId": "97216",
"stationName": "Roadrunners",
"address": {
"street": "469 Rubber Ave",
"city": "Naugatuck",
"state": "CT",
"postalCode": "06770"
},
"stationCoordinates": {
"latitude": 41.489774168181,
"longitude": -73.070631623268
},
"rating": {
"score": 4.6,
"count": 113
},
"offers": [
{
"name": "Flash Deal: Save 2¢ per gallon",
"details": "gasbuddy, strike, sort",
"discount": "Flash Deal: Save 2¢ per gallon"
}
],
"status": {
"outage": "inactive"
},
"prices": [
{
"fuelType": "regular",
"cash": {
"price": 4.03,
"reportedAt": "2026-10-16T18:42:40.359Z",
"contributor": "5f4h2zx44s"
},
"credit": {
"price": 4.13,
"reportedAt": "2026-10-16T18:42:40.375Z",
"contributor": "5f4h2zx44s"
}
},
{
"fuelType": "midgrade",
"cash": {
"price": 4.33,
"reportedAt": "2026-10-16T18:42:40.375Z",
"contributor": "5f4h2zx44s"
},
"credit": {
"price": 4.43,
"reportedAt": "2026-10-16T18:42:40.391Z",
"contributor": "5f4h2zx44s"
}
},
{
"fuelType": "premium",
"cash": {
"price": 4.63,
"reportedAt": "2026-10-16T18:42:40.406Z",
"contributor": "5f4h2zx44s"
},
"credit": {
"price": 4.73,
"reportedAt": "2026-10-16T18:42:40.406Z",
"contributor": "5f4h2zx44s"
}
},
{
"fuelType": "diesel",
"cash": {
"price": 6.07,
"reportedAt": "2026-10-16T18:42:40.422Z",
"contributor": "5f4h2zx44s"
},
"credit": {
"price": 6.07,
"reportedAt": "2026-10-16T18:42:40.437Z",
"contributor": "5f4h2zx44s"
}
}
],
"requestedStation": "https://www.gasbuddy.com/station/97216"
}

Stations you name that are unavailable

This table covers a station you name that GasBuddy shows without fuel prices right now. The row keeps the station ID, and it keeps the name and address when GasBuddy shows them.

FieldTypeWhat it does
requestedStationstringThe station ID, station page link, or street address you entered for this row, as you entered it.
stationIdstringStable GasBuddy station ID.
stationNamestring, optionalStation name, when GasBuddy shows it.
addressobject, optionalStation address, when GasBuddy shows it.
address.streetstringStreet address.
address.citystringStation city.
address.statestringStation state.
address.postalCodestring, optionalPostal code, when GasBuddy gives one.
pricesarray of objects, optionalFuel grades GasBuddy lists for the station, by fuel type only. This row has no cash or credit price.
prices[].fuelTypestringFuel grade.
lookupStatusstringunavailable.
lookupReasonstringShort, plain reason the station has no prices right now.

Example unavailable row

This genuine row comes from the current beta station-ID run.

{
"requestedStation": "24539",
"stationId": "24539",
"stationName": "H-E-B",
"address": {
"street": "7301 N UR-620",
"city": "Austin",
"state": "TX",
"postalCode": "78726"
},
"prices": [
{
"fuelType": "regular"
},
{
"fuelType": "midgrade"
},
{
"fuelType": "premium"
}
],
"lookupStatus": "unavailable",
"lookupReason": "GasBuddy shows no fuel prices for this station right now."
}

Stations you name that could not be returned

This table covers a station you name that could not be returned with a station record. These rows have no station ID, name, address, or prices.

FieldTypeWhat it does
requestedStationstringThe entry you gave, as you entered it.
lookupStatusstringnot_found: no station matches the entry. invalid_input: the entry is not a station ID, station page link, or street address. error: the lookup failed or could not pick one station.
lookupReasonstringShort, plain reason the station was not returned.

Example not-returned row

This genuine row comes from the current beta station-ID run.

{
"requestedStation": "987654321",
"lookupStatus": "not_found",
"lookupReason": "GasBuddy has no station with this ID."
}

💳 Pricing

How charging works

One event is charged for each saved station row that reports fuel prices. The current event price is shown in the Store pricing panel before you run. A row can contain several fuel grades and cash or credit prices. Rows that only explain why a station could not be returned do not contain prices.

🔌 Integrations

Dataset and workflow access

Open the default Apify dataset to review the rows. Use the Apify API, schedules, or available dataset integrations to move repeated searches or station lookups into your workflow.

Video guide

❓ FAQ

Can I look up specific stations?

Yes. Choose Station IDs or links, then enter one station ID or GasBuddy station page link per line. The ID is the number after /station/ in the station's GasBuddy page address. To look up a station by its full address instead, choose Exact street address.

Yes. Enter both forms in the same Station IDs or links field. A station named more than once appears once, at its first position.

Does a station lookup include nearby stations?

No. A station lookup returns only the stations you name. It never adds nearby stations, searches around a named station, or swaps in a similarly named one.

What if a station I name cannot be returned?

It still gets its own row with a lookupStatus and a short lookupReason. not_found means no station matches the entry. unavailable means GasBuddy shows no fuel prices for the station right now. invalid_input means the entry is not a station ID, page link, or street address. error means the lookup failed or could not pick one station. The other stations in the run still return.

Do station lookups drop old price reports?

No. Station IDs or links and exact street addresses keep every price report, even old ones. Each price keeps the time GasBuddy says it was reported, so check that time before you rely on it.

Can I search a city such as Woodlake, Virginia?

Yes. Choose City and state and enter a value such as Woodlake, VA. Results depend on public GasBuddy coverage and the reports available for that location.

Can I check today's prices in a town such as West Hartford, Connecticut?

Yes, if GasBuddy shows public prices for that place. Choose City and state and enter a value such as West Hartford, CT, or look up a station there by ID or page link. Each price shows the time GasBuddy says it was reported. Reports may be older than today, so check those times.

Can I submit several locations in one run?

Yes. Choose one option, then add several values to its matching field, such as several ZIP codes, city and state values, coordinate items, station IDs or links, or street addresses. Values in the other options are ignored.

Does the fuel product option hide other grades?

No. For an area search, it keeps only stations that list a price for the chosen fuel product, and each kept station still includes every grade that GasBuddy reports for it. A station lookup does not use the fuel product option. Its row lists every grade GasBuddy lists for that station.

Can I keep only recent price reports?

Yes, for area searches. Set maxReportAgeHours to keep only cash and credit prices reported within that many hours. A station is left out when it has no price for the chosen fuel product within the limit. Station lookups are not filtered this way.

Why is a price or station field missing?

GasBuddy may not report every grade, payment type, rating, offer, or status for every station. The Actor keeps available source values and does not invent missing ones.

What happens when two locations find the same station?

The first match that passes your filters is saved. A later match for the same station is ignored, so the saved row keeps the first search location that found it.

Does the Actor guarantee a current pump price or a result count?

No. GasBuddy prices are crowd-sourced and can change after a report. Public coverage, missing grades, and your filters can also change the number of rows.

Do I need a GasBuddy login or API key?

No. The Actor uses public station-search data and does not require a GasBuddy login or private API key.

Which fuel products can I choose?

You can focus area searches on Regular, Midgrade, Premium, Diesel, E85, or Unleaded 88. Each row can still include other grades that GasBuddy reports. A station lookup lists every grade GasBuddy lists for each station you name.

Can I run the same station list every day?

Yes. Save the run input as an Apify task, then set a schedule for that task in Apify. Each run returns the prices GasBuddy shows at that time, with the time each price was reported.

📝 Changelog

v1.0 (17-10-2026)

  • Breaking change: rows no longer include stationUrl, extractedAt, searchLocation.type, or status.emergency. To build the station link, add the station ID to https://www.gasbuddy.com/station/. Update any code or tool that reads the removed fields.
  • Breaking change: stations that GasBuddy lists without a postal code now return, and their address leaves out postalCode.
  • Look up the stations you name by GasBuddy station ID or station page link. You can mix both forms in one list.
  • Look up the station at each exact street address you enter. Nearby or similar stations are never added. If more than one station is at an address, no station is returned, and the row says why.
  • Get one row for each station you name, in the order you entered it. A station you name more than once appears once.
  • Each row for a station you name shows the entry you typed, in requestedStation.
  • A station you name that cannot be returned still gets its own row with a status and a short reason.
  • Station lookups list every fuel grade GasBuddy lists for the station. They keep old price reports too. Each price shows its report time when GasBuddy gives one.
  • The fuel product, maximum report age, and brand filters apply only to area searches: ZIP or postal codes, City and state, and Exact coordinates.
  • A location in an area search that GasBuddy places outside the United States returns no stations. The run shows a warning and keeps going with the other locations.
  • A ZIP, city and state, or coordinates search no longer fails when GasBuddy leaves out the country but lists US stations.
  • Zero-dollar prices are no longer returned.
  • Postal codes that GasBuddy shows with four digits now show all five, such as 06770.
  • You can choose from 128 MB to 256 MB of memory. Runs use 128 MB by default.
  • Reliability improvements.

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré