# UK Charity Commission Leads Scraper (Charities & Trustees) (`scrapesage/uk-charity-commission-leads`) Actor

Scrape the official UK Charity Commission register (England & Wales): every registered charity with name, type, latest income & expenditure, phone, email, website, address, company number, activities & trustees + lead score. Filter by income, region, type & cause. Keyless. Monitor mode.

- **URL**: https://apify.com/scrapesage/uk-charity-commission-leads.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 charity lead records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## UK Charity Commission Leads Scraper — Charities, Income, Contacts & Trustees

Turn the **official UK Charity Commission register (England & Wales)** into a clean, contact-bearing B2B lead list. This actor reads the Commission's public bulk register extract and ships **every registered charity** with **name, charity number, type, latest annual income & expenditure, contact phone, email & website, full address, Companies House number, activities, trustees and classification** — plus an income band, a 0–100 lead score and a direct register link.

No API key, no login, no browser — straight from the official keyless data download.

### Why this Charity Commission scraper?

Most "charity" tools are thin search wrappers that need an API key and return a handful of fields. This actor reads the **complete official bulk register** and ships the **richest charity dataset in the category** — the whole register of ~170,000 active charities, filterable by income, region, type and cause, with the fields that actually drive outreach:

| Data | Thin search scrapers | This actor |
|---|---|---|
| Every registered charity in England & Wales | ❌ (per-query) | ✅ full register |
| Latest income & expenditure + income band | partial | ✅ ~99% |
| Contact phone | ❌ | ✅ ~100% |
| Contact email | ❌ | ✅ ~86% |
| Website | ❌ | ✅ ~74% |
| Full address & postcode | partial | ✅ ~98% |
| Companies House number (link to company) | ❌ | ✅ where applicable |
| Activities / "what the charity does" text | ❌ | ✅ ~99% |
| Trustees (names, chair) | ❌ | ✅ opt-in |
| Classification (what / how / who) | ❌ | ✅ opt-in |
| CIO / Gift-Aid / insolvency flags | ❌ | ✅ |
| Lead score (0–100) | ❌ | ✅ |
| Filter by income band & region | ❌ | ✅ |
| Monitoring (only new / changed) | ❌ | ✅ |

### Use cases

- **B2B lead generation** — charities buy fundraising platforms, CRMs, payroll, insurance, audit & accountancy, IT, print and consultancy. Target them by **income band** and **region** and reach them with phone/email/website.
- **Fundraising & grant prospecting** — find charities by cause (`activitiesKeyword`), size (`minIncome`) and location, and approach the right trustees.
- **Accountancy & audit firms** — charities over income thresholds need independent examination or audit; filter by `minIncome` and region to build a prospect list.
- **Market & sector research** — analyze the charity sector by income band, type (CIO vs charitable company vs trust), geography and activity.
- **Due diligence & enrichment** — match charities to their Companies House company, check insolvency/administration flags, and pull trustees.
- **Fresh-lead monitoring** — schedule the actor with `monitorMode` to capture newly-registered charities and new financial filings as they appear.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **UK Charity Commission Leads Scraper**, set your filters (income, region, type, cause), and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "minIncome": 100000,
    "postcodePrefixes": ["SW", "EC", "WC"],
    "activitiesKeyword": "education",
    "withEmailOnly": true,
    "sortBy": "incomeHigh",
    "maxResults": 1000,
    "includeTrustees": true
}
```

- **statuses** *(default `["Registered"]`)* — registration statuses to keep; add `"Removed"` for historical charities.
- **mainCharitiesOnly** *(default true)* — drop linked subsidiary records.
- **minIncome / maxIncome** — filter by latest reported annual income (GBP).
- **incomeBands** — `"Under £10k"`, `"£10k–£100k"`, `"£100k–£500k"`, `"£500k–£1M"`, `"£1M–£10M"`, `"Over £10M"`.
- **charityTypes** — e.g. `["Charitable company", "CIO", "Trust"]`.
- **postcodePrefixes / addressContains** — target a region or town.
- **nameQuery / activitiesKeyword** — target by name or cause (`"homeless"`, `"mental health"`, `"animal"`).
- **withEmailOnly / withPhoneOnly / withWebsiteOnly** — contact filters.
- **registeredCompaniesOnly / cioOnly / giftAidOnly** — structure filters.
- **registeredAfter / registeredBefore** — newly-registered charities as fresh leads.
- **includeTrustees / includeClassification** *(default false)* — attach trustees and what/how/who classification (downloads an extra register table).
- **sortBy / maxResults / minLeadScore** — ranking & limits.
- **monitorMode / monitorKey** — return only new / changed charities since the last run with the same key.

### Output

One record per charity (`recordType: "charity"`):

```json
{
    "recordType": "charity",
    "charityNumber": 1004145,
    "organisationNumber": "5054337",
    "charityName": "National Numeracy",
    "charityType": "Charitable company",
    "registrationStatus": "Registered",
    "isActive": true,
    "dateOfRegistration": "1996-04-15",
    "latestIncome": 2175513,
    "latestExpenditure": 1980004,
    "incomeBand": "£1M–£10M",
    "latestFinancialPeriodEnd": "2025-03-31",
    "phone": "01273915044",
    "email": "enquiries@nationalnumeracy.org.uk",
    "website": "https://www.nationalnumeracy.org.uk",
    "addressLines": ["12 Old Steine"],
    "postcode": "BN1 1EJ",
    "postcodeArea": "BN",
    "fullAddress": "12 Old Steine, BN1 1EJ",
    "companyNumber": "03240898",
    "isCharitableCompany": true,
    "isCIO": false,
    "giftAidRegistered": true,
    "activities": "Education and research…",
    "trustees": [{ "name": "Jane Smith", "isChair": true, "type": "Individual", "appointed": "2019-09-01" }],
    "trusteeCount": 9,
    "registerUrl": "https://register-of-charities.charitycommission.gov.uk/charity-search/-/charity-details/5054337",
    "leadScore": 88,
    "leadSignals": ["Email on file", "Phone on file", "Website on file", "Large charity (£2,175,513 income)", "Registered company"],
    "scrapedAt": "2026-06-22T00:00:00.000Z"
}
```

#### What to expect (field coverage)

Across registered, actively-reporting charities you can typically expect: **phone ~100%, income ~99%, activities ~99%, postcode ~98%, email ~86%, website ~74%**. Smaller, dormant or very old charities publish less. Fields are empty only when the Commission doesn't publish them — never because the scraper skipped them. With `includeRawFields` the original register row is attached under `sourceFields`.

### Automate & schedule

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it monthly (the register refreshes monthly) with `monitorMode` to capture new charities and fresh financial filings.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger CRM import, Slack alerts or email sequences the moment a run finishes.

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/uk-charity-commission-leads').call({
    minIncome: 250000,
    postcodePrefixes: ['M', 'OL', 'BL'],
    withEmailOnly: true,
    maxResults: 1000,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} charity leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new charity leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new charities.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find education charities in Manchester with over £250k income and an email" and let it run the scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **UK & nonprofit lead-gen stack**:

- **[Companies House Scraper](https://apify.com/scrapesage/companies-house-scraper)** — UK company profiles, officers & filings (link by company number).
- **[UK CQC Care Provider Leads](https://apify.com/scrapesage/uk-cqc-care-provider-leads)** — care homes, GPs & dentists with managers & ratings.
- **[US Nonprofit 990 Scraper](https://apify.com/scrapesage/nonprofit-990-scraper)** — US nonprofits, financials & people from IRS 990 data.
- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly registered companies & LLCs.
- **[USAspending Scraper](https://apify.com/scrapesage/usaspending-scraper)** — federal awards, grants & recipient leads.
- **[Form 5500 ERISA Scraper](https://apify.com/scrapesage/form-5500-erisa-scraper)** — US retirement & benefit plan sponsors.
- **[Eventbrite Scraper](https://apify.com/scrapesage/eventbrite-scraper)** — events plus organizer leads (emails & socials).

### Tips

- **Target by size** — `minIncome` is the single best filter; £100k+ charities are the ones with budgets to spend.
- **Target by region** — `postcodePrefixes` accepts postcode areas (`SW`, `M`, `B`) or districts (`SW1`, `M14`).
- **Target by cause** — `activitiesKeyword` searches the charity's own "what we do" text (e.g. `education`, `homeless`, `hospice`, `arts`).
- **Trustees & classification are opt-in** — they download an extra register table and only enrich the charities you actually return, keeping base runs fast.
- **Recurring monitoring** — the register refreshes monthly; combine a monthly [Schedule](https://docs.apify.com/platform/schedules) with `monitorMode` to capture new registrations and fresh filings.

### FAQ

**Where does the data come from?** The official Charity Commission for England & Wales **public register bulk extract** (the same data behind the online register), downloaded directly with no API key or login.

**Does it cover Scotland and Northern Ireland?** This actor covers **England & Wales** (the Charity Commission register). Scotland (OSCR) and Northern Ireland (CCNI) maintain separate registers.

**Why is an email/website blank for some charities?** The Commission only publishes contact details a charity chooses to provide. Phone and income are near-universal; email is published for ~86% of actively-reporting charities and website for ~74%.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I get only newly-registered charities?** Set `registeredAfter` to a date, or turn on `monitorMode` and run on a monthly [Schedule](https://docs.apify.com/platform/schedules).

**Is this legal?** This actor uses publicly available official open data. You are responsible for using it in compliance with applicable laws (e.g. UK GDPR / PECR for outreach) and the Charity Commission's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests — including Scotland (OSCR) and Northern Ireland (CCNI) — are welcome; this actor is actively maintained.

# Actor input Schema

## `statuses` (type: `array`):

Keep only charities with these registration statuses (e.g. \["Registered"], or add "Removed" for historical charities). Leave empty to default to Registered (active) only.

## `mainCharitiesOnly` (type: `boolean`):

Keep only main charity records (drop linked subsidiary records that share a charity number). Recommended.

## `minIncome` (type: `integer`):

Keep only charities whose latest reported annual income is at least this many GBP (e.g. 100000 for £100k+). Great for targeting larger charities.

## `maxIncome` (type: `integer`):

Keep only charities whose latest reported annual income is at most this many GBP.

## `incomeBands` (type: `array`):

Keep only charities in these income bands. Allowed: "Under £10k", "£10k–£100k", "£100k–£500k", "£500k–£1M", "£1M–£10M", "Over £10M".

## `charityTypes` (type: `array`):

Keep only these charity types (case-insensitive), e.g. \["Charitable company", "CIO", "Trust", "Other"]. Leave empty for all.

## `postcodePrefixes` (type: `array`):

Keep only charities whose contact postcode starts with one of these (postcode area/district), e.g. \["SW", "M", "B", "LS"] for London SW, Manchester, Birmingham, Leeds.

## `addressContains` (type: `string`):

Keep only charities whose address contains this text (case-insensitive), e.g. a town or county.

## `nameQuery` (type: `string`):

Keep only charities whose name contains this text (case-insensitive).

## `activitiesKeyword` (type: `string`):

Keep only charities whose activities description (what the charity does) or name contains this text — use it to target a cause, e.g. "education", "homeless", "mental health", "animal".

## `withEmailOnly` (type: `boolean`):

Keep only charities that publish a contact email.

## `withPhoneOnly` (type: `boolean`):

Keep only charities that publish a contact phone number.

## `withWebsiteOnly` (type: `boolean`):

Keep only charities that publish a website.

## `registeredCompaniesOnly` (type: `boolean`):

Keep only charities that are also registered companies (have a Companies House number) — charitable companies & most CIOs.

## `cioOnly` (type: `boolean`):

Keep only Charitable Incorporated Organisations (CIOs).

## `giftAidOnly` (type: `boolean`):

Keep only charities registered for Gift Aid.

## `registeredAfter` (type: `string`):

Keep only charities registered on or after this date (YYYY-MM-DD) — newly-registered charities as fresh leads.

## `registeredBefore` (type: `string`):

Keep only charities registered on or before this date (YYYY-MM-DD).

## `minLeadScore` (type: `integer`):

Keep only charities with a lead score at or above this value (0-100).

## `includeTrustees` (type: `boolean`):

Attach the trustee list (names, chair flag, individual/organisation) to each selected charity. Downloads an extra register table (slower).

## `includeClassification` (type: `boolean`):

Attach the charity's classification (What it does / How it works / Who it helps) to each selected charity. Downloads an extra register table (slower).

## `sortBy` (type: `string`):

Order of the output.

## `maxResults` (type: `integer`):

Maximum number of charities to return.

## `includeRawFields` (type: `boolean`):

Attach the raw register row (all original columns) under sourceFields on each record.

## `monitorMode` (type: `boolean`):

Only return charities that are new or whose status, income, financial period or contact changed since the last run with the same monitor key. Ideal on a Schedule to catch newly-registered charities and fresh financial filings as leads.

## `monitorKey` (type: `string`):

Namespace for monitoring mode so independent monitors don't collide. Use a distinct key per saved configuration.

## `proxyConfiguration` (type: `object`):

Optional. The Charity Commission register is public open data and usually needs no proxy, so leave this off for the fastest downloads.

## Actor input object example

```json
{
  "statuses": [
    "Registered"
  ],
  "mainCharitiesOnly": true,
  "withEmailOnly": false,
  "withPhoneOnly": false,
  "withWebsiteOnly": false,
  "registeredCompaniesOnly": false,
  "cioOnly": false,
  "giftAidOnly": false,
  "includeTrustees": false,
  "includeClassification": false,
  "sortBy": "leadScore",
  "maxResults": 1000,
  "includeRawFields": false,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped registered-charity records in the default dataset, each with firmographics, financials, contacts and a lead score.

# 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 = {
    "statuses": [
        "Registered"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/uk-charity-commission-leads").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 = { "statuses": ["Registered"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/uk-charity-commission-leads").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "statuses": [
    "Registered"
  ]
}' |
apify call scrapesage/uk-charity-commission-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesage/uk-charity-commission-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RgtlrEyqcZJbsSfxj/builds/fIdBpGmTnZG820JWt/openapi.json
