Solar Installer Scraper - EnergySage avatar

Solar Installer Scraper - EnergySage

Pricing

from $3.60 / 1,000 solar costs

Go to Apify Store
Solar Installer Scraper - EnergySage

Solar Installer Scraper - EnergySage

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 $3.60 / 1,000 solar costs

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

17 days ago

Last modified

Share

☀️ Solar cost, panel, news, and installer data from EnergySage

For solar analysts, installers, market researchers, and developers, this Actor collects one selected public EnergySage view per run. It returns structured state and city solar costs, solar panel rankings, solar news articles, or installer profiles. Most rows include a link to the source. 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 list of Solar Installers that hold the EnergySage Approved badge in California.
  • 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. Most rows include a source link, and source update dates are included when EnergySage publishes them.

State and city solar costs

Returns the state or city, installed cost per watt, average system size, average total cost, currency, and source URL when EnergySage has one. Savings and payback years are included when EnergySage shows them.

Solar panel rankings

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

Solar news articles

Returns article title, article URL, and categories.

Installer profiles

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

▶️ Run one public view at a time

How a run works

  1. Choose one target: State and city solar costs, Solar panel rankings, Solar news, or Installer directory. Customer reviews are not available yet.
  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, installerDirectory, or customerReviews. Customer reviews are not available yet. A run with that choice stops without reading EnergySage or charging you, and it returns no results.
panelCategorystringFor Solar panel rankings, choose all, bestOverall, bestValue (Most affordable), mostEfficient, or bestWarranty. Ignored for other views.
installerDiscoverystringFor Installer directory, choose directorySearch (Directory search), rankedByLocation (Ranked by location), or profileLinksOrIds (Profile links or IDs). Ignored for other views.
installerProfilesarray of stringsFor Installer directory with profileLinksOrIds, add one EnergySage installer profile link or profile ID per item. Service type, approved-only, States, and Cities do not apply to these installers.
serviceTypestringOptional. For Installer directory with Directory search or Ranked by location, enter one service type, such as installation, financing, or repair. Only installers whose listed services include this text are kept.
approvedOnlybooleanFor Installer directory with Directory search or Ranked by location, keep only installers marked EnergySage Approved.
statesarray of stringsOptional. Choose one or more two-letter state codes. Used for State and city solar costs and Installer directory. Leave States and Cities empty to use all 46 states and the District of Columbia for State and city solar costs and Ranked by location. For Installer directory with Directory search, leave States empty to search without a state filter.
citiesarray of stringsOptional. Add one city and its two-letter state code per item, such as Clovis, CA. Used for State and city solar costs and Ranked by location.
maxItemsintegerOptional. Stop after this many results. Leave it empty to return all available results until the selected source is exhausted.

Alaska (AK), Nebraska (NE), North Dakota (ND), and South Dakota (SD) are not listed because EnergySage does not publish solar cost data for these states.

Example input

This example is copied from a successful current-beta run with the default input:

{
"target": "solarPanelRankings",
"panelCategory": "all",
"installerDiscovery": "directorySearch",
"installerProfiles": [],
"serviceType": "",
"approvedOnly": false,
"states": [],
"cities": [],
"maxItems": 10
}

🧾 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.
systemSizeKwnumberAverage solar system size in kilowatts for this state.
totalCostnumberAverage total installed cost of a solar system in this state.
savingsnumberEstimated lifetime savings for a solar system in this state, when EnergySage shows it.
paybackPeriodYearsnumberEstimated years to pay back the system cost, when EnergySage shows it.
currencystringCurrency used for cost and savings values.
sourceUrlstring (URL)EnergySage page for this state cost record, when EnergySage has one.
sourceUpdatedAtstring (date)Date shown by EnergySage for the source data, when published.

One genuine row from a successful current-beta run:

{
"recordType": "stateSolarCost",
"state": "AZ",
"installedCostPerWatt": 2.2635852964017737,
"systemSizeKw": 13.419970230390888,
"totalCost": 11318,
"currency": "USD",
"sourceUrl": "https://www.energysage.com/local-data/solar-panel-cost/az/",
"savings": 36817.21580895679,
"paybackPeriodYears": 12.975330054361933,
"sourceUpdatedAt": "2026-10-09"
}

City solar cost

FieldTypeWhat it does
recordTypestringIdentifies this row as citySolarCost.
citystringCity name for this solar cost record. A city name can match more than one county page, so the same city can appear in more than one row.
statestringTwo-letter state code for this city.
installedCostPerWattnumberInstalled solar cost for one watt of system capacity.
systemSizeKwnumberAverage solar system size in kilowatts for this city.
totalCostnumberAverage total installed cost of a solar system in this city.
savingsnumberEstimated lifetime savings for a solar system in this city, when EnergySage shows it.
paybackPeriodYearsnumberEstimated years to pay back the system cost, when EnergySage shows it.
currencystringCurrency used for the cost and savings values.
sourceUrlstring (URL)EnergySage page for this city cost record. When a city matches more than one county page, this link shows which page the row came from.
sourceUpdatedAtstring (date)Date shown by EnergySage for the source data.

One genuine row from a successful current-beta run:

{
"recordType": "citySolarCost",
"city": "Austin",
"state": "TX",
"installedCostPerWatt": 2.17,
"systemSizeKw": 11.99,
"totalCost": 26017,
"currency": "USD",
"sourceUrl": "https://www.energysage.com/local-data/solar-panel-cost/tx/williamson-county/austin/",
"savings": 21772,
"paybackPeriodYears": 15.76,
"sourceUpdatedAt": "2026-10-09"
}

Solar panel ranking

FieldTypeWhat it does
recordTypestringIdentifies this row as solarPanelRanking.
brandstringPanel brand.
modelstringPanel model.
rankintegerPanel rank as EnergySage shows it in its solar panel ranking.
efficiencyPercentnumberPanel efficiency as a percent.
pricePerWattnumberPanel price for one watt of rated power.
warrantystringWarranty terms shown by EnergySage.
wattageWattsnumberPanel power in watts.
panelTypestringPanel type, when EnergySage lists it.
categorystringRanking category EnergySage gives this panel's brand, when EnergySage labels it.
currencystringCurrency used for the price per watt.
sourceUrlstring (URL)EnergySage page for this panel ranking.
sourceUpdatedAtstring (date)Date 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": "mono",
"category": "Best overall",
"currency": "USD",
"sourceUrl": "https://www.energysage.com/solar/best-solar-panels-complete-ranking/",
"sourceUpdatedAt": "2026-07-01"
}

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, when EnergySage lists them.

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"
]
}

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.
profileUpdatedAtstring (date)Date 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.emailstring (email)Installer 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.languagesarray of stringsLanguages the installer speaks, when EnergySage lists them.
installer.ratingsobjectEnergySage ratings for the installer, when EnergySage lists them.
installer.ratings.overallRatingnumberThe installer's overall rating on EnergySage.
installer.ratings.reviewCountintegerNumber of EnergySage reviews for the installer.
installer.ratings.tierstringInstaller tier shown by EnergySage. Approved means the installer holds the EnergySage Approved badge.
installer.ratings.subRatingsarray of objectsThe installer's rating in each category EnergySage lists. Each item has category and rating.
installer.qualificationobjectQualification details listed for the installer.
installer.qualification.licensesarray of stringsLicenses listed for the installer.
installer.qualification.certificationsarray of stringsIndustry certifications listed for the installer, when EnergySage lists them.
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/29302/bluesun-services/",
"installer": {
"name": "Bluesun Services",
"websiteUrl": "https://www.bluesunsvcs.com/",
"contact": {
"phone": "9452150539",
"email": "info@bluesunsvcs.com"
},
"location": {
"address": "609 n britain rd",
"city": "irving",
"state": "TX",
"postalCode": "75061",
"country": "United States"
},
"description": "Bluesun Services is a Texas-based solar and energy company founded in 2022 by professionals whose solar industry experience dates back to 2018. Our leadership spent years working across solar sales, operations, project management, and installation before building Bluesun. Today, we bring that experience together under one team, managing projects from design and permitting through installation, interconnection, and long-term support. Our focus is simple: quality work, honest recommendations, and a better customer experience.",
"services": [
"Installation",
"Construction",
"Roofing",
"Electrical Contracting",
"General Contracting",
"Community Solar",
"Commercial Solar"
],
"serviceAreas": [
"TX"
],
"languages": [
"English",
"Spanish"
],
"ratings": {
"overallRating": 5,
"reviewCount": 5,
"tier": "Elite",
"subRatings": [
{
"category": "Response",
"rating": 5
},
{
"category": "Quality",
"rating": 5
},
{
"category": "Value",
"rating": 5
},
{
"category": "Service",
"rating": 5
}
]
}
}
}

💳 Pricing

How charging works

The Actor charges per successfully saved public row. The view you choose decides which event you pay for. A Customer reviews run stops without a charge and returns no results.

EventFREEBRONZESILVERGOLDDIAMONDPLATINUM
Solar cost$0.0036 fixed$0.0036 fixed$0.0036 fixed$0.0036 fixed$0.0036 fixed$0.0036 fixed
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.00075 fixed$0.00075 fixed$0.00075 fixed$0.00075 fixed$0.00075 fixed$0.00075 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

Why are some states missing from the state list?

EnergySage does not publish solar cost data for Alaska, Nebraska, North Dakota, or South Dakota, so this Actor does not offer those states.

Does this collect EnergySage reviews?

No, not yet. Customer reviews are not available. If you choose Customer reviews, the run stops without reading EnergySage or charging you, and it returns no results. Installer profiles can include the EnergySage rating, review count, and category ratings when EnergySage lists them.

Can I narrow the installer directory?

Yes. For Installer directory with Directory search or Ranked by location, you can choose one or more states, enter one service type, and turn on EnergySage Approved only. With Profile links or IDs, the run uses only the installers you list.

What does the panel category change?

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

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 and city solar costs, also leave States and Cities empty to use all 46 states and the District of Columbia. For Installer directory with Directory search, leave States empty to search without a state filter.

Is this an EnergySage solar calculator?

No. It returns published state and city solar cost records and does not create a personal quote or proposal.

Can one run collect all four EnergySage views?

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

Does it track changes over time?

No. Each run stands alone, and the Actor does not keep history across runs.

Do I need an EnergySage account to run it?

No. The Actor reads supported public EnergySage pages and does not need you to log in or use a private account.

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.

Is this made by EnergySage?

No. This is an independent Apify Actor that reads public EnergySage pages.

📝 Changelog

v1.0 (14-10-2026)

  • Removed the retrievedAt time from every row. If your workflow reads it, update the workflow before you use this version.
  • The sourceUpdatedAt and profileUpdatedAt fields now show only a date, such as 2026-07-01, with no time.
  • Removed installer.qualification.energySageApproved from installer rows. Use installer.ratings.tier instead. Approved means the installer has the EnergySage Approved badge.
  • Panel rows show the category name from EnergySage, such as Best overall, instead of bestOverall. A row has no category field when EnergySage gives its brand no category name.
  • Panel rows may not have a panelType field when EnergySage does not list one.
  • The states field no longer accepts ND or SD. When states is empty, state solar costs no longer include them.
  • State cost rows can now include negative savings and zero payback years, when EnergySage publishes those values.
  • If EnergySage cannot provide one listing, the run skips it and finishes with the other rows. The run log says how many listings were left out.
  • When a run finishes with skipped listings, it saves a list of them in its key-value store under ISSUE_LOG.
  • Added city solar cost rows. Enter cities in the new cities field. A city can have more than one row when it matches more than one county page.
  • Installer directory has two new ways to find installers: Ranked by location and Profile links or IDs. Profile links or IDs uses only the profiles you list.
  • Installer rows include ratings, languages, and certifications when EnergySage lists them.
  • Added a Customer reviews choice. It is not available yet. A run with it stops without reading EnergySage or charging you, and it returns no results.
  • Form labels changed. Target is now Result type. State solar costs is now State and city solar costs. Best value is now Most affordable. Field and value names stay the same.
  • The Store title is now Solar Installer Scraper - EnergySage.
  • Runs can use up to 1024 MB of memory, up from 256 MB.
  • Some installer searches start with more memory. Directory searches with filters start at 512 MB. Ranked-by-location searches with states and cities start at 256 MB.

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é