# Secured Borrowing

A company's registered charges in plain English: how many outstanding, which lenders, what's secured, how recent.

Charges total and outstanding, the lenders, what each secures and over what, fixed or floating, a floating charge over everything, the latest creation date; from the Companies House register.

Every charge a lender takes over a company's assets is registered at Companies House, and the register is the only public record of who has security over what. Read raw, it's a list of filings; read together, it's a credit controller's picture: how many charges are outstanding, which lenders hold them, whether a floating charge covers everything the company owns, what each one secures, and how recently new security was given. This endpoint reads the register and gives that picture in one call, lenders named where they're companies and banks, never where they're individuals. A charge isn't a sign of trouble by itself; the reply says what the register shows and leaves the judgement to you.

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

## Endpoints

- `GET /api/v1/charges?company=…` — A company number or name

## Call it

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

```javascript
const res = await fetch("https://meetkatalis.com/api/v1/charges?company=00502851", {
  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/charges?company=00502851",
    headers={"x-api-key": os.environ["KATALIS_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

## Example response (a real reply)

```json
{
  "company": { "name": "GREGGS PLC", "number": "00502851", "status": "active" },
  "summary": { "total": 40, "outstanding": 0, "partSatisfied": 0, "satisfied": 40, "lenders": [], "latestCreated": "1985-01-30", "floatingChargeOverEverything": false },
  "reading": "GREGGS PLC has 40 charges on the register, all satisfied; the latest was created 1985-01-30.",
  "outstanding": [],
  "satisfiedCharges": [
    { "number": 40, "kind": "Mortgage", "created": "1985-01-30", "status": "Fully satisfied", "satisfied": "1994-04-23", "inFavourOf": ["Investors in Industry PLC"], "secures": "All monies due or to become due from the company to the chargee on any account whatsoever", "over": "F/H premises at parrott street and bromlon street clayton city of manchester. Title no. Gm 127603." }
  ]
}
```

## What you'd build with it

- **Credit control.** Before extending terms: who already has security over this customer's assets, and is a floating charge over everything in place?
- **Supplier vetting.** New security given in the last few months, read alongside distress signals and payment practices.
- **Lenders and brokers.** A borrower's existing charges and lenders, by company number, in seconds.

## Why this one

- **The picture, not the list.** Outstanding count, lenders, a floating charge over everything, the latest date: what a credit controller actually reads.
- **Lenders named, people not.** Banks and companies are named as the register names them; an individual lender is 'an individual'.
- **Reads with the rest.** The same company number as Distress Signals, Payment Practices and the Change Feed.

## 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