Data
Charity data is public data, so we keep it easy to reuse. There's no API key and nothing to sign up for: every link below is a plain HTTP GET.
Every charity
A single CSV listing every charity across the three UK registers, one row per main charity record:
It has three columns, 422,311 rows and is about 20MB.
countrycode,charitynumber,name
ew,1188192,GIVE FOOD
sc,SC000001,The Highland Hospice
ni,100001,Cancer Focus Northern Ireland
countrycode is ew (England & Wales), sc (Scotland) or ni (Northern Ireland), and name is the charity's registered name.
A single charity
Use a row from the CSV to build the URL for any charity: /{countrycode}/{charitynumber} (the country code is case-insensitive). Each charity page is also available in several formats by adding an extension:
.json- Full structured record: details, financial history, trustees, documents and nearby charities.
.md- The same information as Markdown, handy for feeding to an LLM.
.csv- The charity's financial history, one row per reporting year.
.pdf- A printable summary with its filed documents attached.
.zip- A bundle of the summary plus the original filed documents.
For example, for England & Wales charity 1188192:
/ew/1188192
/ew/1188192.json
/ew/1188192.md
/ew/1188192.csv
/ew/1188192.pdf
/ew/1188192.zip
Search
Any search is also available as JSON at /search.json, with the same parameters: q, country (ew, sc or ni), status (active or removed), income_min, income_max, postcode with radius in miles (0.25, 0.5, 1, 3, 5, 10, 15 or 25), has_website=1, has_accounts=1, registered_after (one of the search page's years: this year minus 1, 3, 5, 10 or 20), legal_form (a value from the search page's legal structure list), sort and page. A radius outside these falls back to 1 mile; any other value outside these is ignored, and left out of filters, which echoes the filters applied.
/search.json?q=oxfam
/search.json?postcode=SW1A 1AA&radius=0.25
Results come 25 to a page: follow next for more. Counts stop at 1,000, and count_capped says when they did. A search too broad to finish in time comes back with the reason in error. Each result has its url and json_url, and distance_miles when searching near a postcode. A result's status is removed when the register gives a removal date, as the status filter has it; register_status is the register's own status text, which for some Northern Ireland charities is the only sign of a removal.
MCP server
OpenCharities is also available as a Model Context Protocol (MCP) server, so AI assistants such as Claude, ChatGPT, Cursor and VS Code can search charities and read their finances, trustees, filed documents and websites directly. It is read-only, needs no key or sign-in, and serves the same data as these pages. Add this URL to your assistant as a connector:
https://opencharities.uk/mcp
Opened in a browser, the same URL is the MCP page: how to connect, every tool it offers and its limits.
Map
Every charity with a known location, as a single JSON payload used by our map: /map/data.json.
OpenCharities is an independent project and is not affiliated with any regulator. The official registers remain the authoritative source: where a figure here looks wrong or out of date, the regulator's own entry takes precedence.