---
title: "ELIGIBLE / UNCERTAIN / INELIGIBLE verdict for one grant, one project"
method: GET
path: "/v1/grants/{id}/eligibility"
tags: ["wing-3"]
---

# ELIGIBLE / UNCERTAIN / INELIGIBLE verdict for one grant, one project

`GET /v1/grants/{id}/eligibility`

## Request

- Base URL: `https://api.ukintel.uk`
- URL: `https://api.ukintel.uk/v1/grants/{id}/eligibility`
- Auth: none declared

One grant, one project: a deterministic eligibility verdict with the full criteria table - each criterion quoted from the grant's own eligibility text, marked pass/fail/undeclared - plus what is missing to firm it up and indicative funding. Criteria are parsed once at ingest, never guessed at request time; if the full text is not parsed yet the verdict uses Find a Grant's listing fields, flagged PARTIAL_CRITERIA, and criteria_provenance says so.

Returns: result = { grant{name,funder,window,amounts,source_url}, criteria[{code,requirement,pass,detail}], missing[], failed[], indicative_funding, criteria_provenance{source,complete,parsed_at,eligibility_text_available} }, verdict = { score, band eligible|uncertain|ineligible, flags[] }.

## Path parameters

- `id` string, required

## Query parameters

- `org_type` string
- `region` string

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