---
title: "Search live UK grants"
method: GET
path: "/v1/grants/search"
tags: ["wing-3"]
---

# Search live UK grants

`GET /v1/grants/search`

## Request

- Base URL: `https://api.ukintel.uk`
- URL: `https://api.ukintel.uk/v1/grants/search`
- Auth: none declared

Live UK grant funding calls from GOV.UK Find a Grant in one call: name, funder, amount range, opening/closing dates, who can apply, one-line summary and the official source link. Filter by keywords, nation, applicant type and amount band. Indexed daily from the official listing - the service has no API of its own, so this is the machine-readable version.

Returns: result = { total_matched, returned, grants[] of { id, name, funder, amounts{min,max,text}, window{opens,closes,open_now,days_to_close}, who_can_apply, org_types, regions, summary, criteria_parsed, criteria_basis seed|llm|listing|null, source_url }, excluded{} }.

## Query parameters

- `q` string
- `region` string
- `org_type` string
- `min` integer
- `max` integer
- `open_now` 'true' | 'false'

## Response `200`

Success. The shared response envelope.

- Envelope
  - `query` object, required
  - `result` object, nullable, required
  - `verdict` Verdict, required
    - `score` integer, nullable, required
    - `band` 'low_risk' | 'caution' | 'high_risk' | 'null', nullable, required
    - `flags` Flag[], required
      - `code` string, required
      - `detail` string, required
    - `narrative` string, nullable, required: At most two sentences. Written by a language model, which never affects the score. Null if unavailable.
  - `confidence` 'high' | 'medium' | 'low', required
  - `as_of` string, date-time, required
  - `sources` Source[], required
    - `name` string, required
    - `fetched` string, date-time, nullable, required
    - `url` string, nullable, required
  - `attribution` string, required
  - `notice` 'Information, not advice.', required
  - `cost` object, required
    - `amount` string, required
    - `currency` 'USDC', required

## Other responses

- `400`: Malformed request (for example, an invalid company number).
- `402`: Payment required. The PAYMENT-REQUIRED response carries the accepted payment terms; pay and retry the identical request.
- `404`: Not found on the register.

---

[API](https://skmtc.dev/ukintel/apis/ukintel-uk.md) · [All operations](https://skmtc.dev/ukintel/apis/ukintel-uk/llms.txt) · [OpenAPI document](https://skmtc.dev/ukintel/apis/ukintel-uk/revisions/0eed96aea8af?raw)
