# ENERGY STAR Certified Products & Manufacturers Scraper (`rel8ble/energy-star-products-scraper`) Actor

Use this to list ENERGY STAR certified products and their manufacturers from the official EPA data API. Input: category, words, brand, maker, date. One result = one model (or one supplier): maker, brand, model name and number, type, certified date, markets, UPC. $0.50 per 1,000.

- **URL**: https://apify.com/rel8ble/energy-star-products-scraper.md
- **Developed by:** [Giovanni Rich](https://apify.com/rel8ble) (community)
- **Categories:** Lead generation, E-commerce, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## ENERGY STAR Certified Products & Manufacturers Scraper

This **ENERGY STAR certified products scraper** turns the EPA's official **ENERGY STAR Model Index** into clean **product and supplier lists**: pick a category such as `Commercial Ice Machines`, `Commercial Refrigerators and Freezers`, `Heat Pumps`, `Displays` or `Furnaces`, add brand or model words, and get one row per certified model with the **manufacturer, brand, model name and number, product type, certification date, markets (US, Canada, Japan, Taiwan, Switzerland), Most Efficient flag and UPC** where filed.

Use it as an **ENERGY STAR product finder API**, a **certified manufacturer list** for sourcing and procurement, a **new-certification monitor** (which makers certified new models this month), a **rebate eligibility list** for utilities and retailers, or a **competitor line-up tracker**, from your own code, Make, Zapier, n8n or an AI agent.

It reads the public ENERGY STAR open-data API (`data.energystar.gov`), with **no browser and no login**. The prefilled demo returns 20 rows in a few seconds. **$0.50 per 1,000 results, no start fee.**

**What goes in:** product categories, optional search words (matched on model name, model number, brand and manufacturer), manufacturer and brand names, markets, a certified-after date, a Most Efficient switch. **What comes out:** one row per certified model, or one row per manufacturer + brand + category with a switch. **When to use it:** you need to know who makes certified equipment of a type, under which brands, which models, and since when.

**What it does not have:** **no prices, no minimum order quantities, no e-mails and no phone numbers.** It is a certification list, not a catalogue.

### What you get

- **Supplier**: ENERGY STAR partner (manufacturer or brand owner) and brand name.
- **Model**: model name, model number (variants shown with `*`), product type, additional model information, UPC when filed, ENERGY STAR ID and long model identifier.
- **Certification**: date certified, date available on the market, markets, Most Efficient flag.
- **Supplier mode** (optional switch): one row per manufacturer + brand + category with the number of certified models, how many meet Most Efficient, and the first and newest certification dates, biggest line-ups first.

Size of the index on 6 November 2026: **about 1.8 million certified model rows from 1,198 partners in 47 categories** (central air conditioners and air source heat pumps alone hold about 1.75 million model combinations; most other categories have a few hundred to a few thousand). Fill rates in a 1,834-row test (all commercial refrigerators and freezers, 51 makers): manufacturer, brand, model name and number, type, certification date and markets 100%; additional model information 27%. UPC is filed on only about 12,000 rows in the whole index.

### Sample output

Real rows from the prefilled run (`Commercial Ice Machines`, newest first, 6 November 2026):

| manufacturer | brand | model | model number | certified | markets | Most Efficient |
|---|---|---|---|---|---|---|
| Hoshizaki America, Inc. | Hoshizaki | KM-522MAK | KM-522MAK | 2025-11-20 | United States, Canada | no |
| Hoshizaki America, Inc. | Hoshizaki | F-822MAK | F-822MAK | 2025-11-20 | United States, Canada | no |
| Hoshizaki America, Inc. | Hoshizaki | F-330BAK | F-330BAK | 2025-11-20 | United States, Canada | no |
| Hoshizaki America, Inc. | Hoshizaki | C-80BAK | C-80BAK-ADDS | 2025-11-20 | United States, Canada | no |

Supplier mode (`Displays`, word `dell`, Japan market): Dell Inc. / DELL / Displays, 116 certified models, 2 Most Efficient, first certified 2019-07-15, newest 2025-09-11.

### Use cases

- **Supplier sourcing and procurement**: every certified maker of commercial kitchen equipment, HVAC, IT or appliances, with their brands
- **Utility rebate and incentive programs**: export the certified model numbers of a category for eligibility checks
- **Retail and distribution**: which brands and models in a category are certified, and which are Most Efficient
- **Competitor tracking**: schedule a run with "Certified on or after" to see new models from rivals
- **Lead generation for suppliers to manufacturers**: lists of equipment makers per category (company data only)

### Pricing

**$0.50 per 1,000 results** (pay per result, $0.0005 each), no start fee, platform usage included. A result is one row saved to your dataset. Searches that find nothing, duplicates and failed requests are never charged. Set **Max results per search** to cap the cost of a run.

The data comes from a free public API. You pay for the ready rows, the filters and the supplier mode, not for access. If you prefer, query the API yourself.

No Apify Store actor covered the ENERGY STAR product lists in the 21 October 2026 Store snapshot.

### FAQ

**Where does the data come from?** The ENERGY STAR Model Index on data.energystar.gov, published by the U.S. Environmental Protection Agency. It is U.S. government data. ENERGY STAR and the ENERGY STAR mark are registered trademarks of the EPA; this actor is not affiliated with or endorsed by the EPA and uses the name only to say where the data comes from. The portal runs on Tyler Technologies' open-data platform; the actor follows the portal's robots.txt (one request a second).

**How fresh is it?** Each run queries the live API. On 6 November 2026 the index was updated the same day.

**Why are there so many heat pump rows?** Central air conditioners and heat pumps are certified as combinations of outdoor and indoor units, so one product family gives many rows. Use filters or the supplier switch for that category.

**Does it include phone numbers or e-mails?** No. Only company, brand and model data.

**How are search words matched?** Each word or phrase is matched anywhere in the model name, model number, brand or manufacturer, ignoring case. Each search word runs as its own search, so `Hoshizaki` and `Manitowoc` give two lists.

**Can I get the detailed specs (kWh, capacity)?** Not in this version: specs live in a separate dataset per category with different columns. The model number and ENERGY STAR ID let you join them.

**Known gaps**: the "manufacturer" is the ENERGY STAR partner that certified the model, which can be a brand owner rather than the factory; model numbers with `*` cover several variants; dates are as filed; no prices or MOQs.

### How to use

1. Open the actor and pick one or more categories, e.g. `Commercial Ice Machines`.
2. Optional: add search words, manufacturer or brand names, markets or a certified-after date.
3. Set **Max results per search** (start with 20). Turn on **One row per supplier** for a supplier list.
4. Click **Start**, then export the dataset as CSV, Excel or JSON.

### Input

| Field | What it does |
|---|---|
| `categories` | ENERGY STAR product categories (47). Empty = all. |
| `searchTerms` | Words on model name / number, brand, manufacturer; each runs as its own search. |
| `manufacturers`, `brands` | Keep rows whose manufacturer or brand contains one of these. |
| `markets` | United States, Canada, Japan, Taiwan, Switzerland. |
| `certifiedAfter` | Certified on or after this date (YYYY-MM-DD). |
| `mostEfficientOnly` | Only Most Efficient models. |
| `uniqueSuppliers` | One row per manufacturer + brand + category instead of per model. |
| `maxResultsPerSearch` | Rows per search, newest first; 0 = all. |

Invalid values are ignored and listed in the run summary. A filter where no value is valid stops the run instead of widening the search.

### Input example

```json
{
    "categories": ["Commercial Refrigerators and Freezers", "Commercial Ice Machines"],
    "markets": ["Canada"],
    "certifiedAfter": "2025-01-01",
    "uniqueSuppliers": true,
    "maxResultsPerSearch": 500
}
```

### Output example

One real row from the prefilled run (6 November 2026):

```json
{
    "rowType": "model",
    "manufacturer": "Hoshizaki America, Inc.",
    "brand": "Hoshizaki",
    "category": "Commercial Ice Machines",
    "energyStarId": "4515288",
    "modelName": "KM-522MAK",
    "modelNumber": "KM-522MAK",
    "productType": "Commercial Ice Machines",
    "additionalModelInfo": null,
    "upc": null,
    "dateAvailableOnMarket": "2025-11-01",
    "dateCertified": "2025-11-20",
    "markets": ["United States", "Canada"],
    "mostEfficient": false,
    "energyStarModelIdentifier": "ES_1003024_KM-522MAK_11122025003156_08217992327",
    "modelCount": null,
    "mostEfficientCount": null,
    "firstCertified": null,
    "latestCertified": null,
    "searchTerm": null,
    "position": 1,
    "scrapedAt": "2026-11-06T18:31:32.954Z"
}
```

A `RUN_SUMMARY` record in the key-value store lists, per search, how many rows were saved, why the search stopped and any input that was ignored.

### Integrations

Export the dataset as JSON, CSV, Excel, XML or HTML, or pull it with the Apify API and the JavaScript / Python clients. Connect it to Make, Zapier, n8n, Google Sheets, HubSpot or Slack with Apify integrations and webhooks, schedule it with `certifiedAfter` to catch new models, or let an AI agent call it through the Apify MCP server.

Need a custom scraper or a ready dataset? Hire me on Fiverr: https://www.fiverr.com/rel8ble

# Actor input Schema

## `categories` (type: `array`):

ENERGY STAR product categories to search. Leave empty for all 47. Central air conditioners and heat pumps alone hold about 1.75 million model combinations.

## `searchTerms` (type: `array`):

Words matched on model name, model number, brand and manufacturer, e.g. "Hoshizaki" or "KM-". Each runs as its own search. Leave empty to search on the filters only.

## `manufacturers` (type: `array`):

Keep products whose ENERGY STAR partner (manufacturer) name contains one of these, e.g. "Whirlpool".

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

Keep products whose brand contains one of these.

## `markets` (type: `array`):

Keep models certified for one of these markets.

## `certifiedAfter` (type: `string`):

YYYY-MM-DD. Use it to watch for newly certified models and new suppliers.

## `mostEfficientOnly` (type: `boolean`):

Keep only models that meet the ENERGY STAR Most Efficient criteria.

## `uniqueSuppliers` (type: `boolean`):

On: one row per manufacturer + brand + category with its model count, Most Efficient count and first / newest certification date. Gives a supplier list instead of a model list; biggest line-ups first.

## `maxResultsPerSearch` (type: `integer`):

Rows to save per search. 0 = everything that matches. Newest certifications come first. You pay per row saved, so start small.

## `maxRequestRetries` (type: `integer`):

Retries per failed request.

## Actor input object example

```json
{
  "categories": [
    "Commercial Ice Machines"
  ],
  "mostEfficientOnly": false,
  "uniqueSuppliers": false,
  "maxResultsPerSearch": 20,
  "maxRequestRetries": 5
}
```

# Actor output Schema

## `results` (type: `string`):

One row per certified model (or per manufacturer + brand + category): manufacturer, brand, model name and number, type, certification date, markets, Most Efficient flag, UPC.

## `summary` (type: `string`):

Counts per search, stop reasons and any ignored input.

# 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 = {
    "categories": [
        "Commercial Ice Machines"
    ],
    "maxResultsPerSearch": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("rel8ble/energy-star-products-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 = {
    "categories": ["Commercial Ice Machines"],
    "maxResultsPerSearch": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("rel8ble/energy-star-products-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 '{
  "categories": [
    "Commercial Ice Machines"
  ],
  "maxResultsPerSearch": 20
}' |
apify call rel8ble/energy-star-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rel8ble/energy-star-products-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/hE9zg2ErikF2IAdQt/builds/ixG6KcBxfoV6pbYBu/openapi.json
