/api/v1/grantsGrant Registry Search
Paginated full search over NIH RePORTER and EU CORDIS grant RECORDS: full-text search over title/abstract plus indexed filters (source, funding range, start/end dates, exact OpenAlex topic). Returns rich per-grant records with funding amount, dates, organizations and topics. Use this for individual grant listings; use grants.topic-funding / grants.topic-funding-history for aggregated funding totals of a topic and grants.sponsor-funding for an organization's totals. NOT filterable: organizations, partners, abstract (full-text only) and nested objects. Requires a Pro workspace.
When to use it
- find grants by full-text phrase over title/abstract
- list grants filtered by source, funding range or start date
- grants under an exact OpenAlex topic name
Getting started
Base URL
https://app.caelrith.com/api/v1/toolsAuthentication
Include your API key in the x-api-key header.
Parameters
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | No | Full-text search over title and abstract (language-aware analyzer; falls back to slower substring matching when the index is unavailable). |
| source | string | No | Restrict to one funding source: 'NIH' or 'CORDIS'. Allowed values: NIH, CORDIS |
| funding_min | number | No | Minimum total funding amount (inclusive). |
| funding_max | number | No | Maximum total funding amount (inclusive). |
| start_date_after | string | No | YYYY-MM-DD; matches grants with project start date >= this date. |
| end_date_before | string | No | YYYY-MM-DD; matches grants with project end date <= this date. |
| topic | string | No | Exact OpenAlex topic name to filter by (e.g. 'breast cancer'). Fuzzy strings will not match. |
| page | number | No | Page number (default 1). Range: 1 to ∞ |
| limit | number | No | Results per page (1-100, default 20). Range: 1 to 100 |
| sort | string | No | Sort field: start_date (default), funding, or updated. Allowed values: start_date, funding, updated |
| order | string | No | Sort direction (default desc). Allowed values: asc, desc |
Example request
curl -H "x-api-key: YOUR_API_KEY" \ "https://app.caelrith.com/api/v1/grants"
Response envelope
This endpoint returns an implicit 2xx response - there is no success flag in the body.
{
"data": { /* payload */ },
"meta": { /* pagination, totals */ }
}
// No "success" flag on this endpoint - any 2xx JSON is a success.Response shape
Payload: data — Grants
Exact total: meta.totalItems
Pagination: server-side via page and limit
Common row fields
| Field | Description |
|---|---|
| grant_id | Grant ID |
| title | Title |
| source | Source |
| funding_amount | Funding |
| start_date | Start Date |
| end_date | End Date |
Empty results: No matching rows (HTTP 200)
meta.totalItems is the exact total - quote it, never a page length. The topic filter matches an exact OpenAlex topic name. organizations, partners and abstract are NOT filterable server-side (abstract is full-text search only); full-text search falls back to slower substring matching when the index is unavailable - expect higher latency then.
Catalog version 0.0.0-generated · generated from the API source