← Back to Blog
EN FR

NSERC Grants API: Query Discovery Grant Data Programmatically

The Natural Sciences and Engineering Research Council (NSERC) funds natural science and engineering research across Canada. It publishes every grant it awards, but the data lives in a search portal built for one-off lookups. There is no public REST API, and the open data files change structure from year to year.

GrantData exposes this data through a clean REST API: NSERC and SSHRC research grants, normalized to a consistent schema, queryable by program, institution, department, keyword, date, and value. Coverage refreshes weekly.

0NSERC and SSHRC grants
0$B awarded since 1998
0requests/day, free tier

Why the native NSERC portal is painful at scale

The NSERC web portal works for a single lookup. It breaks down the moment you need data systematically: for a funding dashboard, a competitive-intelligence tool, an LLM agent, or simply a spreadsheet of one institution's Discovery Grants over ten years.

NSERC portal

  • No REST API, no pagination
  • Open data files with column names that shift year to year
  • Program and institution names not normalized
  • No full-text search across descriptions
  • Hard to roll up all grants for one researcher

GrantData API

  • REST API, JSON responses, cursor pagination
  • Normalized schema, consistent across years
  • Filter by program, department, value, and date
  • Full-text search via ?q=
  • /recipient/{name} rolls up every grant for a recipient

670,000+ NSERC and SSHRC research grants. One endpoint. The Basic plan is free, 25 requests per day.

What NSERC grant data looks like in the API

Each record exposes top-level fields for fast filtering (department, recipient_name, program, value, event_date) plus a data object with the source fields. A grant record:

json
{
  "record_id": "research_grants|nserc|RGPIN-2023-04821",
  "entity_type": "research_grant",
  "department": "Natural Sciences and Engineering Research Council",
  "recipient_name": "University of Toronto",
  "program": "Discovery Grants",
  "value": 52000.00,
  "event_date": "2023-04-01",
  "data": {
    "fiscal_year": "2023-2024",
    "committee": "Evolution and Ecology",
    "province": "Ontario",
    "installment": 1
  }
}

Query examples

NSERC Discovery Grants by keyword

curl
curl -G "https://grantdata-canadian-government-grants-api.p.rapidapi.com/research_grant" \
  --data-urlencode "program_exact=Discovery Grants" \
  --data-urlencode "q=quantum" \
  --data-urlencode "issued_after=2022-01-01" \
  --data-urlencode "limit=20" \
  -H "X-RapidAPI-Key: YOUR_API_KEY" \
  -H "X-RapidAPI-Host: grantdata-canadian-government-grants-api.p.rapidapi.com"

All grants to an institution, largest first

curl
curl -G "https://grantdata-canadian-government-grants-api.p.rapidapi.com/research_grant" \
  --data-urlencode "recipient_name=University of British Columbia" \
  --data-urlencode "sort_by=value" \
  --data-urlencode "sort_order=desc" \
  --data-urlencode "limit=50" \
  -H "X-RapidAPI-Key: YOUR_API_KEY" \
  -H "X-RapidAPI-Host: grantdata-canadian-government-grants-api.p.rapidapi.com"

Aggregate stats by program

The /research_grant/stats endpoint aggregates without pulling records: total by program, by institution, or by period. One call instead of thousands.

curl
curl -G "https://grantdata-canadian-government-grants-api.p.rapidapi.com/research_grant/stats" \
  --data-urlencode "group_by=program" \
  --data-urlencode "sum_field=value" \
  -H "X-RapidAPI-Key: YOUR_API_KEY" \
  -H "X-RapidAPI-Host: grantdata-canadian-government-grants-api.p.rapidapi.com"

Program and department normalization

Source data names the same funder several ways: "NSERC", "CRSNG", "Natural Sciences and Engineering Research Council". The API normalizes these variants. Use department=NSERC and you get every record regardless of the original spelling. For a known program, program_exact=Discovery Grants is faster than a partial match.

This API is the access layer behind our NSERC analysis: the 6x gap between disciplines and 26 years and $28 billion. The same data, raw and queryable.

Frequently asked questions

Does NSERC have a public API?
No. NSERC's awards search portal does not offer a public REST API. GrantData provides a REST API over NSERC and SSHRC research grants, queryable by program, institution, department, keyword, date, and value.
How do I keep only Discovery Grants?
Use /research_grant with ?program_exact=Discovery Grants for an exact match, faster than program=. Add department=NSERC to scope to NSERC only.
How current is the data?
Research grants refresh weekly. Federal proactive disclosure feeds the recent coverage, supplemented by NSERC historical datasets back to 1991.
Is there a free tier?
Yes. Basic plan: free, 25 requests/day via RapidAPI. Pro plan: $49/month, 1,000 requests/day.
Data notes: Volumes as of May 2026. NSERC and SSHRC research grants sourced from federal proactive disclosure and NSERC historical datasets back to 1991. The roughly $28 billion across 670,000+ grants since 1998 figure is from our 26 Years of NSERC analysis. Program and department names are normalized from source variants.

Start querying NSERC grant data with a free API key.

Get API Key on RapidAPI View OpenAPI Spec