EnergySage Solar Data Scraper avatar

EnergySage Solar Data Scraper

Pricing

from $2.70 / 1,000 solar costs

Go to Apify Store
EnergySage Solar Data Scraper

EnergySage Solar Data Scraper

Choose one public EnergySage view per run: state solar costs, solar panel rankings, solar news, or installer profiles. Get structured fields and source links for solar research, cost comparisons, and installer lists.

Pricing

from $2.70 / 1,000 solar costs

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

☀️ EnergySage solar data for every run

For solar analysts, installers, market researchers, and developers, this Actor collects one selected public EnergySage view per run. It returns structured state solar costs, solar panel rankings, solar news articles, or installer profiles with source links and retrieval times. Use the data to compare panel prices, review state costs, follow solar news, or build installer lists.

  • Find Solar Installers California with public installer names, contacts, services, and locations.
  • Build a state-aware installer list with Solar Installers from the EnergySage directory.
  • Collect EnergySage source articles with Solar News and their links and categories.
  • Compare state-level solar costs with Solar Panel Cost using installed cost, savings, and payback values.
  • Compare panel prices with Solar Panel Prices using price-per-watt and warranty data.
  • Review top choices with Best Solar Panels from the selected best-overall category.
  • Compare brands and models with Solar Panel Rankings across EnergySage categories.

📦 Four EnergySage data views

What this Actor returns

Choose one view for each run. Rows include a recordType value so you can tell which view produced them. Source links and retrieval times are included; source update times are included when EnergySage publishes them.

State solar costs

Returns state, installed cost per watt, system size, total cost, estimated savings, estimated payback period, currency, source URL, and retrieval time.

Solar panel rankings

Returns brand, model, rank, efficiency, price per watt, warranty, power, panel type, category, currency, source URL, and retrieval time.

Solar news articles

Returns article title, article URL, categories, and retrieval time.

Installer profiles

Returns the EnergySage marketplace link, update and retrieval times, and the listed installer name, website, contact, location, description, services, service areas, equipment brands, financing partners, and qualification details.

▶️ Run one public view at a time

How a run works

  1. Choose one target: State solar costs, Solar panel rankings, Solar news, or Installer directory.
  2. Set the options that apply to that view. Fields for other views are ignored.
  3. Set Maximum results if you want a bound. Leave it empty to return all available results until the selected source is exhausted.
  4. Run the Actor and open the dataset link in the output.

Each run reads supported public EnergySage pages. It does not request quotes, create personalized solar proposals, or use private account data.

⚙️ Input

Input fields

FieldTypeWhat it does
targetstringRequired. Select one public EnergySage view: stateSolarCosts, solarPanelRankings, solarNews, or installerDirectory.
panelCategorystringFor Solar panel rankings, choose all, bestOverall, bestValue, mostEfficient, or bestWarranty. Ignored for other views.
serviceTypestringOptional. For Installer directory, enter one service type to filter profiles. Ignored for other views.
approvedOnlybooleanFor Installer directory, keep only profiles marked EnergySage Approved. Ignored for other views.
statesarray of stringsOptional. For State solar costs, choose one or more supported state codes, or leave empty for all 49 supported states except Nebraska. For Installer directory, choose one or more supported state codes. Ignored for Solar panel rankings and Solar news.
maxItemsintegerOptional. Stop after this many results. Leave it empty to return all available results until the selected source is exhausted.

Nebraska (NE) is not a supported state-cost choice because EnergySage does not publish the required state-cost fields for it.

Example input

This is a smallest common input from a successful current-beta run:

{
"target": "solarPanelRankings",
"maxItems": 1,
"panelCategory": "all",
"serviceType": "",
"approvedOnly": false,
"states": []
}

🧾 Output

Output link

FieldTypeWhat it does
resultsstring (URL)Links to the rows in the default dataset overview.

State solar cost

FieldTypeWhat it does
recordTypestringIdentifies this row as stateSolarCost.
statestringState code for the solar cost data.
installedCostPerWattnumberInstalled solar cost for one watt of system capacity.
systemSizeKwnumberSolar system size in kilowatts.
totalCostnumberTotal installed cost of the system.
savingsnumberEstimated savings for the system.
paybackPeriodYearsnumberEstimated years to pay back the system cost.
currencystringCurrency used for cost and savings values.
sourceUrlstring (URL)EnergySage page for this state cost.
retrievedAtstring (date-time)Time when the Actor retrieved the row.
sourceUpdatedAtstring (date-time)Time shown by EnergySage for the source data, when published.

One genuine row from a successful current-beta run:

{
"recordType": "stateSolarCost",
"state": "AL",
"installedCostPerWatt": 3.8080396475770937,
"systemSizeKw": 14.11214757709251,
"totalCost": 19040,
"savings": 25359.893392070484,
"paybackPeriodYears": 19.647797356828196,
"currency": "USD",
"sourceUrl": "https://www.energysage.com/local-data/solar-panel-cost/al/",
"retrievedAt": "2026-08-09T00:12:34.102Z",
"sourceUpdatedAt": "2026-07-31T00:00:00.000Z"
}

Solar panel ranking

FieldTypeWhat it does
recordTypestringIdentifies this row as solarPanelRanking.
brandstringPanel brand.
modelstringPanel model.
rankintegerPanel rank in the selected category.
efficiencyPercentnumberPanel efficiency as a percent.
pricePerWattnumberPanel price for one watt of rated power.
warrantystringWarranty terms shown by EnergySage.
wattageWattsnumberPanel power in watts.
panelTypestringPanel type.
categorystringRanking category used for the panel.
currencystringCurrency used for the price per watt.
sourceUrlstring (URL)EnergySage page for this panel ranking.
retrievedAtstring (date-time)Time when the Actor retrieved the row.
sourceUpdatedAtstring (date-time)Time shown by EnergySage for the ranking data, when published.

One genuine row from a successful current-beta run:

{
"recordType": "solarPanelRanking",
"brand": "REC",
"model": "Alpha Pure-RX",
"rank": 1,
"efficiencyPercent": 22.1,
"pricePerWatt": 2.45,
"warranty": "Product 25 years; performance 25 years",
"wattageWatts": 460,
"panelType": "Bifacial duo",
"category": "all",
"currency": "USD",
"sourceUrl": "https://www.energysage.com/solar/best-solar-panels-complete-ranking/",
"retrievedAt": "2026-08-09T00:00:31.867Z",
"sourceUpdatedAt": "2026-07-01T00:00:00.000Z"
}

Solar news article

FieldTypeWhat it does
recordTypestringIdentifies this row as solarNewsArticle.
titlestringArticle title.
articleUrlstring (URL)Link to the article.
categoriesarray of stringsCategories assigned to the article.
retrievedAtstring (date-time)Time when the Actor retrieved the article.

One genuine row from a successful current-beta run:

{
"recordType": "solarNewsArticle",
"title": "Solar panels can boost home values by up to $79,000",
"articleUrl": "https://www.energysage.com/news/solar-power-as-a-home-improvement-strategy/",
"categories": [
"Home solar"
],
"retrievedAt": "2026-08-08T23:55:21.999Z"
}

Installer profile

The installer object keeps profile details nested. Fields that EnergySage does not publish for a profile may be absent.

FieldTypeWhat it does
recordTypestringIdentifies this row as installerProfile.
marketplaceUrlstring (URL)Link to the installer in the EnergySage marketplace.
retrievedAtstring (date-time)Time when the Actor retrieved the profile.
profileUpdatedAtstring (date-time)Time when the profile was last updated on EnergySage, when published.
installerobjectInstaller details shown by EnergySage.
installer.namestringInstaller name.
installer.websiteUrlstring (URL)Installer website link.
installer.contactobjectListed contact details.
installer.contact.phonestringInstaller phone number, when listed.
installer.contact.emailstringInstaller email address, when listed.
installer.locationobjectListed installer location.
installer.location.addressstringStreet address, when listed.
installer.location.citystringCity, when listed.
installer.location.statestringState, when listed.
installer.location.postalCodestringPostal code, when listed.
installer.location.countrystringCountry, when listed.
installer.descriptionstringInstaller description, when listed.
installer.foundedYearintegerYear the installer was founded, when listed.
installer.servicesarray of stringsServices listed for the installer.
installer.serviceAreasarray of stringsAreas where the installer offers service.
installer.equipmentBrandsarray of stringsEquipment brands supported by the installer.
installer.financingPartnersarray of stringsFinancing partners listed for the installer.
installer.qualificationobjectApproval and qualification details.
installer.qualification.energySageApprovedbooleanWhether EnergySage marks the installer as Approved.
installer.qualification.licensesarray of stringsLicenses listed for the installer.
installer.qualification.workmanshipWarrantystringWorkmanship warranty listed for the installer.
installer.qualification.insurancestringInsurance information listed for the installer.

One genuine row from a successful current-beta run:

{
"recordType": "installerProfile",
"marketplaceUrl": "https://www.energysage.com/supplier/29287/roi-solar-inc/",
"retrievedAt": "2026-08-09T00:05:09.961Z",
"profileUpdatedAt": "2026-08-07T00:00:00.000Z",
"installer": {
"name": "R.O.I. Solar Inc.",
"websiteUrl": "https://roisolarpower.com/",
"contact": {
"phone": "(209) 600-4433",
"email": "marvin.w@roisolarpower.com"
},
"location": {
"address": "2000 W Turner Rd",
"city": "Lodi",
"state": "CA",
"postalCode": "95242",
"country": "United States"
},
"description": "R.O.I. Solar Inc. is a licensed solar, battery storage, and roofing contractor serving California's Central Valley and greater Sacramento region, including Lodi, Stockton, Modesto, Atwater, Sacramento, and Fairfield. As a licensed roofing contractor as well as a solar installer, we can address the whole roof — not just the panels on top of it. That means when a roof needs work before solar, we handle both under one roof, on one timeline, with one point of accountability. We install across PG&E, SMUD, and community-choice territories and offer multiple ways to go solar: power purchase agreements, cash purchase, and financing. Our goal is straightforward — a system sized to your actual usage, installed to code, that does what we said it would do.",
"services": [
"Installation",
"Financing",
"Energy Auditing",
"Construction",
"Roofing",
"Electrical Contracting",
"General Contracting",
"Solar Repair & Maintenance",
"Commercial Solar"
],
"serviceAreas": [
"CA"
],
"qualification": {
"energySageApproved": true,
"licenses": [
"CSLB #1082435 — California solar and roofing contractor"
],
"workmanshipWarranty": "10-year workmanship guarantee and 25 year product warranty"
}
}
}

💳 Pricing

How charging works

The Actor charges per successfully saved public row. The selected view determines which buyer-facing event is used.

Buyer-facing eventFREEBRONZESILVERGOLDDIAMONDPLATINUM
Solar cost$0.0045$0.00385$0.0033$0.0027$0.0027$0.0027
Panel ranking$0.0045$0.00385$0.0033$0.0027$0.0027$0.0027
News article$0.0045$0.00385$0.0033$0.0027$0.0027$0.0027
Installer profile$0.0009 fixed$0.0009 fixed$0.0009 fixed$0.0009 fixed$0.0009 fixed$0.0009 fixed

🔌 Integrations

Apify dataset

The output link opens the default Apify dataset view. You can use the dataset link with Apify's dataset tools or API.

Video guide

❓ FAQ

Can one run collect all four EnergySage views?

No. Choose one target for each run, then start another run for a different view.

How do I collect all available state costs or installer profiles?

Leave maxItems empty to return all available results until the selected source is exhausted. For State solar costs, also leave states empty to use all 49 supported states except Nebraska.

Why is Nebraska not in the state list?

EnergySage does not publish the required state-cost fields for Nebraska, so this Actor does not offer NE for the State solar costs view.

Can I narrow the installer directory?

Yes. For Installer directory, you can choose one or more states, enter one service type, and turn on EnergySage Approved only. These options apply to Installer directory; fields for other views are ignored.

What does the panel category change?

It selects the ranking view for Solar panel rankings: all panels, best overall, best value, most efficient, or best warranty.

Does this Actor return quotes or private EnergySage data?

No. It collects supported data from public EnergySage pages. It does not request quotes, create personalized proposals, or use account-only data.

Do I need an EnergySage account to run it?

No. The Actor reads supported public EnergySage pages and does not require buyer login or private account access.

📝 Changelog

0.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é