# UK Charity Register — Charities, Income & Trustees (`powerfully_goliath/uk-charity-register`) Actor

Search every registered charity in England & Wales from the Charity Commission's official register: filter by name, postcode, income, cause, beneficiaries, area of operation and contact details. Get income, email, website, trustees and more. No API key. Pay per result.

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

## Pricing

from $2.00 / 1,000 charity returneds

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

## UK Charity Register (Charity Commission) — Charities, Income & Trustees

Search **every charity on the Register of Charities for England and Wales**: about
**186,000 registered charities**, plus 213,000 removed ones if you want them. Filter by
**name, postcode area, income band, cause, who they help, how they work, where they operate,
registration date and contact details**, and get back clean rows with **income, spending,
email, phone, website, address, company number, trustees and the register link**.

The data is the **Charity Commission's own official register**, from the daily data extract
it publishes under the Open Government Licence. **No API key, no subscription, no
scraping**: the run reads the same nightly file the Commission publishes for reuse.

**Pay only for results: $2.00 per 1,000 charities.**

***

### Who uses it

- **Fundraising and grant consultants, bid writers**: charities in your area with income
  between £100k and £1m, with an email address.
- **Suppliers to the sector** (software, insurance, auditors, printers, training): target
  lists by size, cause and region.
- **Grant seekers**: grant-making charities (*How: Makes Grants To Organisations*) that
  operate in your county, sorted by income.
- **Researchers and journalists**: sector snapshots, new registrations, charities in
  administration.
- **Due diligence**: check status, income, filing status and trustees for a list of
  charity numbers.

### Filters

| Filter | Example |
|---|---|
| **Name contains** (any of) | `hospice`, `food bank` |
| **Postcode areas** | `LS` (all of Leeds), `M1`, `SW1A`, `LS1 4`. `LS1` does **not** match `LS10`. |
| **Minimum / maximum latest income** (£) | `100000` to `1000000` |
| **Charity numbers** | `202918` |
| **What they do** | Animals, Education/training, Disability, Poverty, Arts/culture... (17 causes) |
| **Who they help** | Children/young people, Elderly, People with disabilities... (7 groups) |
| **How they work** | Makes grants to organisations, Provides services, Advocacy/advice... (10 ways) |
| **Area of operation contains** | `Leeds`, `Kent`, `Kenya` |
| **Activities contain** | words from the charity's own description of what it does |
| **Registration status** | Registered (default), Removed, or both |
| **Charity types** | CIO, Charitable company, Trust, Other, Previously excepted |
| **Registered on or after / before** | `2026-01-01`, or `90 days` for new charities |
| **Only with email / website / phone** | drop rows with no way to contact them |
| **Include linked charities** | subsidiary charities that share a main charity's number |

Extras you can add to each row:

- **Add trustees**: trustee names, trustee count and chair.
- **Add causes, beneficiaries and areas**: the What / Who / How classifications and areas of
  operation.

**Sort by** charity number (fastest), income (highest or lowest first) or registration
date. Sorted runs read the whole register and return the top *Maximum results*.

#### Example input

Leeds charities with income over £1m and an email address, biggest first, with trustees:

```json
{
  "postcodePrefixes": ["LS"],
  "minIncome": 1000000,
  "requireEmail": true,
  "sortBy": "incomeHighFirst",
  "includeTrustees": true,
  "maxItems": 100
}
```

Grant-making charities working in Yorkshire:

```json
{
  "howTheyWork": ["302"],
  "areasOfOperation": ["Leeds", "Bradford", "Wakefield", "Kirklees", "Calderdale", "York"],
  "includeClassifications": true,
  "maxItems": 500
}
```

### Output

One row per charity. Download it as **CSV, Excel, JSON or XML**, or read it through the API.

```json
{
  "charityNumber": 1120102,
  "organisationNumber": 4033379,
  "charityName": "LEEDS TRINITY UNIVERSITY",
  "registrationStatus": "Registered",
  "registeredOn": "2007-07-17",
  "charityType": "Charitable company",
  "companyNumber": "06305220",
  "address": "Leeds Trinity University, Brownberrie Lane, Horsforth, LEEDS",
  "postcode": "LS18 5HD",
  "phone": "01134673940",
  "email": "hello@leedstrinity.ac.uk",
  "website": "https://www.leedstrinity.ac.uk",
  "latestIncome": 61642196,
  "latestExpenditure": 74077929,
  "financialPeriodEnd": "2025-07-31",
  "reportingStatus": "Submission Received",
  "giftAid": false,
  "trusteeCount": 19,
  "trustees": "(names, separated by '; ')",
  "registerUrl": "https://register-of-charities.charitycommission.gov.uk/en/charity-search/-/charity-details/4033379",
  "extractDate": "2026-10-22"
}
```

(From the 22 Oct 2026 register; your run returns the register as it is that day.)

Every row also carries the organisation and linked-charity numbers, removal date, CIO flag,
financial period start, land ownership, insolvency and administration flags, the charity's
own activities text, and, when you ask for them, the classifications and areas of operation.

The **OUTPUT** record in the key-value store gives the query, rows delivered, rows scanned,
total matches and why the run stopped.

### Pricing

| Event | Price |
|---|---|
| Charity returned | **$0.002** ($2.00 per 1,000) |
| Actor start | Apify's minimum ($0.00005 per run) |

You are charged only for charities delivered to your dataset, never past **Maximum results**
or your run's spending limit.

### Good to know

- Covers **England and Wales**. Scotland (OSCR) and Northern Ireland (CCNI) keep separate
  registers.
- Data is the Commission's nightly extract, so it is at most a day old. `extractDate` on each
  row says which day.
- Contact details are what charities publish on the register. Many small charities list
  none: use the *Only with email* filter for outreach lists.
- Income is the latest figure the charity has filed; it can be a year or more old.
  `financialPeriodEnd` says which year.
- If you use the data for marketing, UK GDPR and PECR apply. Charity contact details are
  usually organisational, but trustee names are personal data.
- Contains public sector information from the Charity Commission for England and Wales,
  licensed under the
  [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).
  This actor is independent and not endorsed by the Charity Commission.

### Related UK open-data actors

- **UK Food Hygiene Ratings (FSA)**: every food business's hygiene rating.
- **UK Government Contracts (Contracts Finder)**: public-sector tenders and awards, with
  buyer contacts.
- **UK Companies House: Companies, Officers & PSCs**: company profiles, directors, owners
  and filings.

# Actor input Schema

## `nameKeywords` (type: `array`):

Charities whose name contains ANY of these words or phrases (not case-sensitive), e.g. 'hospice', 'food bank'.

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

Contact postcode in ANY of these: an area (LS), district (LS1, SW1A), sector (LS1 4) or full postcode. 'LS1' does not match LS10.

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

Latest reported annual income at least this (£). Charities with no reported income are left out when set.

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

Latest reported annual income at most this (£).

## `charityNumbers` (type: `array`):

Look up specific registered charity numbers, e.g. 202918.

## `whatTheyDo` (type: `array`):

Charity Commission 'What' classifications. A charity matches if it has ANY of those picked.

## `whoTheyHelp` (type: `array`):

Charity Commission 'Who' classifications (ANY of those picked).

## `howTheyWork` (type: `array`):

Charity Commission 'How' classifications (ANY of those picked), e.g. 'Makes Grants To Organisations' to find funders.

## `areasOfOperation` (type: `array`):

Where the charity says it operates: a council, region or country name, e.g. 'Leeds', 'Kent', 'Kenya' (ANY of these).

## `activityKeywords` (type: `array`):

Words to find in the charity's own description of its activities (ANY of these).

## `registrationStatus` (type: `string`):

Registered charities only (default), removed ones only, or both.

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

Legal form. Leave empty for all.

## `registeredFrom` (type: `string`):

Date the charity was registered, e.g. 2026-01-01 or '90 days' for newly registered charities.

## `registeredTo` (type: `string`):

Latest registration date.

## `includeLinkedCharities` (type: `boolean`):

Also return linked (subsidiary) charities that share a main charity's number.

## `requireEmail` (type: `boolean`):

Leave out charities with no public contact email.

## `requireWebsite` (type: `boolean`):

Leave out charities with no website.

## `requirePhone` (type: `boolean`):

Leave out charities with no public phone number.

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

Add the trustee names, trustee count and chair to each row.

## `includeClassifications` (type: `boolean`):

Add What / Who / How classifications and areas of operation to each row.

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

Charity number is fastest. Income and date sorts read the whole register and return the top results.

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

Stop after this many charities. You are charged only for results delivered.

## Actor input object example

```json
{
  "nameKeywords": [
    "hospice"
  ],
  "postcodePrefixes": [
    "LS",
    "M1",
    "SW1A"
  ],
  "registrationStatus": "registered",
  "includeLinkedCharities": false,
  "requireEmail": false,
  "requireWebsite": false,
  "requirePhone": false,
  "includeTrustees": false,
  "includeClassifications": false,
  "sortBy": "charityNumber",
  "maxItems": 20
}
```

# Actor output Schema

## `overview` (type: `string`):

Number, name, income and contact details.

## `finance` (type: `string`):

Income, spending, year end, type and registration dates.

## `runSummary` (type: `string`):

The OUTPUT record: query used, results delivered, events charged, rows scanned and why the run stopped.

# 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 = {
    "nameKeywords": [
        "hospice"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("powerfully_goliath/uk-charity-register").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 = {
    "nameKeywords": ["hospice"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("powerfully_goliath/uk-charity-register").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 '{
  "nameKeywords": [
    "hospice"
  ],
  "maxItems": 20
}' |
apify call powerfully_goliath/uk-charity-register --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,powerfully_goliath/uk-charity-register"
        }
    }
}
```

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/AKglBvVKDrbauTqdM/builds/2eB6JbeBmEJsLhk7x/openapi.json
