# Charity Register Check

Is this a registered charity, is it in good standing, and what do its accounts say.

Registered or removed, since when and why; CIO or charitable company and its company number; insolvency and interim-manager flags; reporting status; latest income and spend with six years of history; what it does, for whom, where; trustee count; objects and other regulators.

Grant-makers, councils, corporate partners and suppliers all ask the same first questions of a charity: is it on the Charity Commission's register today, since when, is it a CIO or a charitable company (and under which company number), are its accounts in, is it insolvent or under an interim manager, how big is it and which way is its income going, what does it do and for whom, and how many trustees does it have. The register answers all of that, one screen at a time. This endpoint reads it live in one call: by charity number, by company number (matched through the Companies House number the register itself holds), or by name; with up to six years of income and spend broken down (government contracts and grants, donations and legacies, charitable activities, fundraising and governance costs), its classification, areas of operation, governing document and objects, and any other regulator it answers to. Trustees are counted, never named.

- Price: 1 credit
- Page: https://meetkatalis.com/apis/charity-check
- OpenAPI: https://meetkatalis.com/openapi.yaml

## Endpoints

- `GET /api/v1/charity-check?company=…` — A charity number (263710, or 1053467-2 for a group member), a company number, or a charity's name

## Call it

```bash
curl -H "x-api-key: $KATALIS_API_KEY" \
  "https://meetkatalis.com/api/v1/charity-check?company=263710"
```

```javascript
const res = await fetch("https://meetkatalis.com/api/v1/charity-check?company=263710", {
  headers: { "x-api-key": process.env.KATALIS_API_KEY },
});
if (!res.ok) throw new Error(`Katalis ${res.status}: ${await res.text()}`);
console.log(await res.json());
```

```python
import os, requests

r = requests.get(
    "https://meetkatalis.com/api/v1/charity-check?company=263710",
    headers={"x-api-key": os.environ["KATALIS_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

## Example response (a real reply)

```json
{
  "query": "263710",
  "registered": true,
  "summary": "SHELTER, NATIONAL CAMPAIGN FOR HOMELESS PEOPLE LIMITED is a registered charity (no. 263710) since 1972-03-16, a charitable company; latest income £77.0m (year to 2025-03-31).",
  "charities": [{ "charityNumber": 263710, "name": "SHELTER, NATIONAL CAMPAIGN FOR HOMELESS PEOPLE LIMITED", "status": "registered", "companyNumber": "01038133", "reportingStatus": "Submission Received", "latestAccounts": { "yearEnd": "2025-03-31", "income": 76960000, "expenditure": 79906000 }, "trustees": { "count": 11, "hasChair": false, "latestAppointment": "2026-09-23" } }]
}
```

## What you'd build with it

- **Grant and funding due diligence.** Registered, accounts in, no interim manager, income trend over six years: the first screen of any grant assessment, as JSON.
- **Corporate partnerships and payroll giving.** Before a partnership or a donation page goes live: the charity exists, under this number, and this is its real name.
- **Suppliers and councils.** A charity as a customer or a contractor: its size, its government income, and whether it is in good standing.

## Why this one

- **Matched to the company.** A charitable company is found by its Companies House number, through the number the register itself records: never a look-alike name.
- **The whole register entry in one read.** Details, trustees, six years of accounts, governing document and other regulators are five screens on the register and one call here.
- **Counted, not named.** Trustees are a count and a chair flag. The register's people stay on the register.

## Conventions

- Auth: `x-api-key: kat_live_…` on every request (free key at https://meetkatalis.com/developers: a verified email and mobile, 100 credits a month, no card).
- One credit balance across every API; each endpoint's price is on its page and in `x-credits` in https://meetkatalis.com/openapi.yaml.
- Keys are camelCase everywhere. A registered company is `company: { name, number, status, statusDetail?, filingsOverdue? }` on the register endpoints; the enrichment family (enrich, score, assess, brand-kit, ai-visibility, tender-match) keeps `business` / `profile` with `companyNumber`.
- Every error has `code` and `requestId`; every reply an `x-request-id` header; a charged reply `x-credits-remaining`; a reply that gave credits back `x-credits-refunded`. Missing = 404 with `query`.
- Burst ceiling 60 requests a minute per key (429, `Retry-After`, no credits used). A failure on our side (5xx) gives the call's credits back.
- Company data contains public sector information licensed under the Open Government Licence v3.0.

Provided "as is"; results come from public sources and, in places, AI, and may be inaccurate or out of date; not legal, professional or credit advice. Terms: https://meetkatalis.com/apis/terms