---
title: "Search funded grants"
method: POST
path: "/api/v1/search_grants"
tags: ["general"]
---

# Search funded grants

`POST /api/v1/search_grants`

## Request

- Base URL: `https://scholarmuse.ai`
- URL: `https://scholarmuse.ai/api/v1/search_grants`
- Auth: HTTP bearer

Search funded research projects at NIH (RePORTER), NSF and UKRI by topic, investigator, institution or year. Returns one record per project with project number, PI, organisation, funder, dates, amount and abstract. Use it to find who funds a topic or what a lab is funded for.

Discipline pack: general. Cost: 2 credits per successful call.

## Request body

- object
  - `query` string, required: Research topic or keywords, e.g. "CAR-T resistance".
  - `funder` 'nih' | 'nsf' | 'ukri': Limit to one funder. Default: all three.
  - `pi_name` string: Principal investigator name, e.g. "Carl June".
  - `organization` string: Awardee institution name, e.g. "Stanford University".
  - `year_from` integer: Earliest fiscal year (NIH) or start year (NSF, UKRI).
  - `year_to` integer: Latest fiscal year (NIH) or start year (NSF, UKRI).
  - `limit` integer: Projects to return (default 10).

## Response `200`

The tool result.

- ToolResult
  - `summary` string, required
  - `billing` CreditStatus
    - `creditsRemaining` integer, nullable, required: Spendable, unexpired balance at checkedAt; null if refresh failed. Credits reserved by pending figures are excluded.
    - `status` 'ok' | 'low' | 'empty' | 'unavailable', required
    - `lowBalanceThreshold` integer, required
    - `topUpUrl` string, uri, required
    - `pricingUrl` string, uri, required
    - `checkedAt` string, date-time, required
    - `notice` string
  - `records` Record[]
    - `id` string, required
    - `type` string, required
    - `source` string, required
    - `title` string
    - `url` string
    - `license` string
    - `attribution` string
    - `retrievedAt` string, date-time, required
    - `data` object, required
  - `partial` boolean
  - `failedSources` object[]
    - `source` string
    - `error` string
  - `files` object[]
    - `name` string
    - `url` string
    - `mimeType` string
  - `extra` object
  - `credits_used` number, required
  - `call_id` string, required

## Other responses

- `400`: The call failed and was not charged.
- `401`: The call failed and was not charged.
- `402`: The call failed and was not charged.
- `429`: The call failed and was not charged.
- `502`: The call failed and was not charged.

---

[API](https://skmtc.dev/scholarmuse/apis/scholarmuse-rest-api.md) · [All operations](https://skmtc.dev/scholarmuse/apis/scholarmuse-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scholarmuse/apis/scholarmuse-rest-api/revisions/beafd92e4bfb?raw)
