# Green Claims Checker: EU Greenwashing Ban & FTC (`ultimatemc/green-claims-checker`) Actor

Check product copy and ads for greenwashing risk under the EU ban on generic environmental claims (Directive 2024/825, from 27 Sep 2026), FTC Green Guides and UK CMA Code. Flags eco-friendly, carbon neutral, recyclable and biodegradable wording with quote, rule link and fix.

- **URL**: https://apify.com/ultimatemc/green-claims-checker.md
- **Developed by:** [Ultimate Foresight Inc](https://apify.com/ultimatemc) (community)
- **Categories:** E-commerce, Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

**Green Claims Checker** scans product descriptions, ad copy and packaging text for **greenwashing risk** under the **EU ban on generic environmental claims** (Directive (EU) 2024/825, applying from **27 September 2026**), the **US FTC Green Guides** (16 CFR Part 260) plus key California rules, and the **UK CMA Green Claims Code**. Each finding comes with the **exact quote**, a **risk level per jurisdiction**, a **link to the rule** and a **suggested fix**. Click **Start** with the prefilled example to check three product texts in a few seconds.

> **Wording pre-check only. Not legal advice and not a compliance determination.** The tool flags wording that the public rules listed below treat as risky. It cannot see your evidence, certificates or lifecycle data, and it never says a text is "compliant". Have flagged claims reviewed by someone qualified before you publish or change packaging.

### What does the Green Claims Checker do?

- ✅ Flags **generic environmental claims** like "eco-friendly", "green", "planet-friendly", "sustainable" and "environmentally friendly". In the EU these are banned from 27 Sep 2026 unless you can show recognised excellent environmental performance. The risk drops to low when a concrete specification (for example "70% recycled polyester") or a recognised label sits in the same sentence.
- ✅ Flags **carbon neutral, climate neutral, CO2-compensated and climate positive** claims. When offsets are mentioned, the EU risk is high: product claims based on offsetting are banned outright.
- ✅ Flags **future claims** such as "net zero by 2030" with no visible plan, **whole-brand claims** ("we are a sustainable brand"), **home-made sustainability labels**, and **legal requirements sold as a feature**.
- ✅ Flags **recyclable, recycled content, biodegradable, compostable, oxo-degradable, non-toxic and renewable** wording that needs qualification under the FTC Green Guides. It also notes California rules (SB 343 recyclability labels, PRC 42357 ban on "biodegradable" for plastics).
- ✅ Ignores common false friends: green tea, forest green, sustainable weight loss, eco mode, pH neutral, gender neutral, plant-based and more.
- ✅ Takes plain texts, product objects, or a whole **Apify dataset** (for example a Shopify, Amazon or Etsy scraper's output). Title, description, bullet and HTML body fields are found automatically and HTML is stripped.

**Risk levels:** `high`, `medium`, `low`, `none` overall, plus `riskByJurisdiction` for `eu`, `us` and `uk`.

### Who is it for?

- **E-commerce brands and marketplace sellers** selling into the EU who need to clean up catalog copy for the 27 Sep 2026 ban.
- **Marketing and content teams** checking ads, landing pages and emails before launch.
- **Agencies and compliance consultants** who want a fast, repeatable first pass over thousands of SKUs, with rule links in the file.
- **Packaging and sustainability teams** reviewing recyclable, compostable and carbon claims.

### How to check product copy for greenwashing

1. Click **Start** with the prefilled example to see the output.
2. Paste your own copy into **Texts to check** (one text per line item), or add **Items** with your own IDs.
3. Or pick an Apify **dataset** from a product scraper. Leave **Text fields** empty to auto-detect title, description and bullets.
4. Choose the **jurisdictions** (EU, US, UK) and, if you like, turn on **Only flagged** to keep just the risky rows.
5. Download as JSON, CSV or Excel and work through the rows sorted by `riskLevel`.

### Input example

```json
{
  "texts": [
    "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
    "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
    "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included."
  ],
  "jurisdictions": ["eu", "us", "uk"],
  "minSeverity": "low",
  "onlyFlagged": false
}
```

### Output example

Real output from the prefill run on 2026-10-23 (shortened; every finding has full references and a suggestion):

```json
[
  {
    "itemNo": 1,
    "ref": null,
    "textPreview": "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
    "fieldsChecked": [
      "text"
    ],
    "riskLevel": "high",
    "riskByJurisdiction": {
      "eu": "high",
      "us": "medium",
      "uk": "medium"
    },
    "claimCount": 3,
    "issues": [
      {
        "ruleId": "offset_based_neutrality",
        "category": "Carbon / climate neutral or positive claim",
        "severity": "high",
        "severityByJurisdiction": {
          "eu": "high",
          "us": "medium",
          "uk": "medium"
        },
        "field": "text",
        "quote": "carbon neutral",
        "context": "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects.",
        "specificationFound": null,
        "note": "Mentions offsetting/compensation ('offset'). In the EU, neutral/reduced/positive GHG-impact claims based on offsetting are banned in all circumstances from 27 Sep 2026.",
        "references": [
          {
            "jurisdiction": "eu",
            "title": "Directive (EU) 2024/825, Annex point 4c: claims based on GHG offsetting that a product has a neutral, reduced or positive impact",
            "url": "https://eur-lex.europa.eu/eli/dir/2024/825/oj"
          },
          {
            "jurisdiction": "eu",
            "title": "European Commission ECGT Directive FAQ",
            "url": "https://commission.europa.eu/document/download/3c257883-bb2a-4dd9-a6dc-501d587bb34f_en"
          },
          {
            "jurisdiction": "us",
            "title": "FTC Green Guides 16 CFR 260.5 (carbon offsets); California AB 1305 (voluntary carbon market disclosures)",
            "url": "https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-260/section-260.5"
          },
          {
            "jurisdiction": "us",
            "title": "California AB 1305 bill text",
            "url": "https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202320240AB1305"
          },
          {
            "jurisdiction": "uk",
            "title": "CMA Green Claims Code (claims must be truthful, accurate, clear and substantiated)",
            "url": "https://www.gov.uk/government/publications/green-claims-code-making-environmental-claims"
          }
        ],
        "suggestion": "Replace with a specific, evidenced statement about actual reductions (e.g. 'production emissions cut 32% vs 2022, verified by X'). Describe any offset funding separately, never as making the product neutral."
      },
      {
        "...": "2 more findings (generic_environmental_claim: 'eco-friendly' (high), recyclable: 'Fully recyclable' (medium))"
      }
    ],
    "jurisdictionsChecked": [
      "eu",
      "us",
      "uk"
    ],
    "checkedAt": "2026-10-23T18:14:30+00:00",
    "disclaimer": "Automated wording pre-check based on public rules (EU Direct..."
  },
  {
    "itemNo": 2,
    "textPreview": "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
    "riskLevel": "none",
    "claimCount": 0,
    "issues": []
  },
  {
    "itemNo": 3,
    "textPreview": "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included.",
    "riskLevel": "medium",
    "riskByJurisdiction": {
      "eu": "medium",
      "us": "medium",
      "uk": "medium"
    },
    "claimCount": 1,
    "issues": [
      {
        "ruleId": "biodegradable",
        "severity": "medium",
        "quote": "biodegradable",
        "severityByJurisdiction": {
          "eu": "medium",
          "us": "medium",
          "uk": "medium"
        },
        "suggestion": "State the conditions and timeframe with a test standard (e.g. 'biodegrades in industrial composting within 12 weeks, EN 13432'), or drop the claim. Landfilled items rarely qualify under FTC rules."
      }
    ]
  }
]
```

### How much does it cost to check product copy?

Pay per result: **$0.008 per text or product checked**, plus a $0.00005 start fee per run and small Apify platform usage paid by you (the 3-text prefill run used about $0.0001 of platform usage). 100 products cost about $0.80 and 1,000 products about $8.00, plus platform usage. Turn on **Only flagged** to save only risky rows, and cap spend with the maximum cost per run setting.

### Use it through the API, integrations or AI agents

- Run and get results in one call: `https://api.apify.com/v2/acts/ultimatemc~green-claims-checker/run-sync-get-dataset-items`
- MCP for AI agents: `https://mcp.apify.com?tools=ultimatemc/green-claims-checker`
- Schedule it on your catalog, add a webhook, or chain it after a product scraper and pass that run's dataset ID.

### Rules and sources

Checked against these public texts on 2026-10-23:

- [Directive (EU) 2024/825](https://eur-lex.europa.eu/eli/dir/2024/825/oj) (Empowering Consumers for the Green Transition): Annex I points 2a (unofficial sustainability labels), 4a (generic claims), 4b (whole-product claims about one aspect), 4c (offset-based neutrality), 10a (legal requirements as a feature), and Article 6(2)(d) on future performance. Applies from 27 Sep 2026.
- [European Commission ECGT FAQ](https://commission.europa.eu/document/download/3c257883-bb2a-4dd9-a6dc-501d587bb34f_en).
- [FTC Green Guides, 16 CFR Part 260](https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-260): general claims, carbon offsets, certifications, compostable, degradable, non-toxic, recyclable, recycled content, renewable.
- California: [SB 343 recyclability labeling](https://calrecycle.ca.gov/wcs/recyclinglabels/) (applies to products made from 4 Oct 2026; a court order of 14 Jul 2026 limits Attorney General enforcement), Public Resources Code 42357 (no "biodegradable" on plastic products), AB 1305 (carbon-neutral claim disclosures).
- [UK CMA Green Claims Code](https://www.gov.uk/government/publications/green-claims-code-making-environmental-claims).
- [EU Single-Use Plastics Directive 2019/904](https://eur-lex.europa.eu/eli/dir/2019/904/oj) (oxo-degradable plastics).

### How the checking works

The text is split into sentences and matched against a fixed rule set with exclusions for false friends. Each rule has a severity per jurisdiction. Severity goes up when a claim is unqualified or tied to offsets, and down when the same sentence has a specific figure (a percentage, a CO2 quantity, a "compared to" baseline) or names a recognised label such as EU Ecolabel, Nordic Swan, Blue Angel, FSC, GOTS, GRS, Cradle to Cradle or B Corp. "100% green" or "100% carbon neutral" does not count as a specification. No AI and no external calls, so the same input always gives the same output.

### FAQ

#### Does "none" mean my text is compliant?

No. It means none of the rule patterns matched. Specific claims still need evidence, and rules outside this list (sector rules, national laws, the proposed EU Green Claims Directive) are not checked.

#### Is "carbon neutral" always banned?

In the EU, product claims of neutral, reduced or positive climate impact **based on offsetting** are banned from 27 Sep 2026. Claims based on your own verified reductions are not covered by that ban, but are still flagged for review. In the US and UK they need clear substantiation and disclosure.

#### Can it read images or packaging artwork?

No. Give it text: product copy, ad text, OCR output or alt text.

#### Which languages are supported?

English wording only for now.

#### Is it AI?

No. Deterministic rules, so results are repeatable and auditable.

### Limitations

- English only; claims in images, video or other languages are not seen.
- It checks wording, not evidence. A flagged claim may be fine if you hold the right proof, and an unflagged one may still mislead.
- Recognised-label detection is name-based; it cannot verify that you hold the certificate.
- Rules and court orders change; check the dates in the sources section.

### Other tools by Ultimate Foresight

- [Ad Copy Policy Checker for Meta, Google & TikTok](https://apify.com/ultimatemc/ad-copy-policy-checker): checks ad text against Facebook, Instagram, Google Ads and TikTok ad policies before you submit.
- [H-1B Visa Sponsor Checker & Score for Job Listings](https://apify.com/ultimatemc/h1b-visa-sponsor-score): adds Department of Labor H-1B sponsorship history and a 0-100 score to company names or job listings.
- [Chain vs Independent Labeler for Google Maps Leads](https://apify.com/ultimatemc/chain-vs-independent-labeler): labels local businesses as chain, franchise or independent.
- [YouTube Monetization Checker for Scripts & Titles](https://apify.com/ultimatemc/youtube-script-monetization-checker): pre-checks titles, descriptions and scripts for wording that leads to limited or no ads.
- [Etsy & eBay Listing Policy & Banned Item Checker](https://apify.com/ultimatemc/etsy-ebay-listing-policy-checker): pre-checks marketplace listings for prohibited items, counterfeit wording and off-platform contact.
- [Job Scam Detector & Trust Score for Job Postings](https://apify.com/ultimatemc/job-posting-trust-score): scores job postings 0-100 for scam and ghost-job signals.
- [SAM.gov Amendment & Opportunity Change Tracker](https://apify.com/ultimatemc/sam-gov-opportunity-change-detector): shows what changed between versions of a SAM.gov notice: deadlines, set-asides, NAICS and attachments.
- [Product Recall Checker for Brands, UPCs & Products](https://apify.com/ultimatemc/product-recall-matcher): matches your brands, products, UPCs or model numbers against CPSC, FDA and NHTSA recalls.
- [App Store & Google Play Listing Policy Checker](https://apify.com/ultimatemc/app-store-listing-policy-checker): pre-checks app names, subtitles and descriptions against Apple and Google Play metadata rules.
- [Company Name Normalizer & Deduplicator for CRM](https://apify.com/ultimatemc/company-name-canonicalizer): cleans company names (Inc, LLC, d/b/a, aliases) and groups duplicates in CRM, lead or vendor lists.
- [FCC Covered List & Section 889 Bulk Screener](https://apify.com/ultimatemc/fcc-covered-list-screener): screens FCC IDs and brand names against the public FCC Covered List, with sources and timestamps (screening aid only).
- [Influencer #ad Disclosure Checker: FTC & ASA](https://apify.com/ultimatemc/influencer-ad-disclosure-checker): flags influencer posts with missing or unclear #ad labels under FTC, ASA/CAP and CMA rules.
- [Job Title to SOC Code Mapper with O\*NET Data](https://apify.com/ultimatemc/job-title-soc-code-mapper): maps job titles to SOC and O\*NET-SOC codes in bulk, with seniority and tech skills found in the posting.

Missed claim or false alarm? Open an issue on the **Issues** tab with the text, and we'll review the rule.

# Actor input Schema

## `texts` (type: `array`):

Product descriptions, ad copy, packaging text or web copy, one per line. The prefill has three examples; replace them with your own.

## `items` (type: `array`):

One object per product or ad with your own "id" and any of "title", "text", "description", "packaging". Example: \[{"id": "sku-1", "title": "Eco tote", "description": "Made from recycled cotton"}]

## `datasetId` (type: `string`):

Check the output of another Actor, e.g. a Shopify, Amazon or e-commerce product scraper. Title and description fields are detected automatically (HTML is stripped).

## `textFields` (type: `array`):

Field names to read from dataset items, e.g. "title", "description". Leave empty to use common title/description/bullet fields.

## `jurisdictions` (type: `array`):

EU = Directive (EU) 2024/825 (applies from 27 Sep 2026). US = FTC Green Guides plus California rules. UK = CMA Green Claims Code.

## `minSeverity` (type: `string`):

Hide findings below this level. 'low' shows everything, including claims that already have a specific qualifier next to them.

## `onlyFlagged` (type: `boolean`):

Skip rows with no flagged wording (you are only charged for saved rows).

## `maxItems` (type: `integer`):

Stop after this many texts.

## Actor input object example

```json
{
  "texts": [
    "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
    "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
    "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included."
  ],
  "jurisdictions": [
    "eu",
    "us",
    "uk"
  ],
  "minSeverity": "low",
  "onlyFlagged": false,
  "maxItems": 1000
}
```

# Actor output Schema

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

No description

# 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 = {
    "texts": [
        "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
        "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
        "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included."
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ultimatemc/green-claims-checker").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 = { "texts": [
        "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
        "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
        "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included.",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ultimatemc/green-claims-checker").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 '{
  "texts": [
    "Our eco-friendly water bottle is 100% carbon neutral thanks to certified offset projects. Fully recyclable!",
    "Made with 70% recycled polyester (GRS certified). Packaging: 100% recycled cardboard.",
    "Bamboo toothbrush with a biodegradable handle. Green tea flavour toothpaste included."
  ]
}' |
apify call ultimatemc/green-claims-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ultimatemc/green-claims-checker"
        }
    }
}
```

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/cF8FeHSc1mlf9d4B4/builds/eEWLgDOf34lDg6fhF/openapi.json
