NSF Awards
The NSF Awards API allows users to build a query based on any of the parameters below.
Notice: Notifications of scheduled downtime, service disruption, or unexpected downtime can be found at http://www.research.gov. NSF uses reasonable efforts to minimize any disruption, inaccessibility or inoperability of the services in connection with the scheduled downtime or other interruptions of service. Scheduled downtime is typically on weekends starting at 10PM Friday through 12PM Sunday. When additional maintenance time is required by NSF, the maintenance window will be extended.
- Request URLs
- Sample Requests
- Resource Parameters
- Request Parameters
- Output Print Fields
- Sample Output: XML
- Sample Output: JSON
- Sample Output: JSONP
- Sample ERROR Output: XML
- Sample ERROR Output: JSON
- Sample ERROR Output: JSONP
Request URLs
GET http://api.nsf.gov/services/v1/awards.{format}?parameters
GET http://api.nsf.gov/services/v1/awards/{id}.{format}
GET http://api.nsf.gov/services/v1/awards/{id}/projectoutcomes.{format}
Sample Requests
- Searches for all awards containing the keyword term 'water' [XML Format]:
http://api.nsf.gov/services/v1/awards.xml?keyword=water
- Searches for all awards containing the keyword term 'water' [JSON Format]:
http://api.nsf.gov/services/v1/awards.json?keyword=water
- Searches for all awards containing the keyword term 'water' [JSONP Format]:
http://api.nsf.gov/services/v1/awards.json?callback=processJson&keyword=water
- Retrieves a specific award information using unique award identifier [XML Format]:
http://api.nsf.gov/services/v1/awards/1052893.xml
- Retrieves a specific award information using unique award identifier [JSON Format]:
http://api.nsf.gov/services/v1/awards/1052893.json
- Retrieves a specific award information using unique award identifier [JSONP Format]:
http://api.nsf.gov/services/v1/awards/1052893.json?callback=processJson
- Retrieves Project Outcomes Report for an award [XML Format]:
http://api.nsf.gov/services/v1/awards/1052893/projectoutcomes.xml
- Retrieves Project Outcomes Report for an award [JSON Format]:
http://api.nsf.gov/services/v1/awards/1052893/projectoutcomes.json
- Retrieves Project Outcomes Report for an award [JSONP Format]:
http://api.nsf.gov/services/v1/awards/1052893/projectoutcomes.json?callback=processJson
Resource Parameters
Parameter | Required | Variable Name | Value |
---|---|---|---|
Output Format | Yes | {format} | Enter the output format. Supported values are "xml" and "json" |
Award Unique Identifier | Yes | {id} | Enter the award unique identifier number. |
Request Parameters
Parameter | Required | Argument | Value |
---|---|---|---|
Keyword | No | keyword | Free text search across all the available awards data |
Results Per Page | No | rpp | Value in the range of 1 to 25. Default Value is set to 25 & it's the upper limit as well. |
Record Offset | No | offset |
Enter the record offset (always starts with 1). This is used in conjunction with results per page to fetch large data sets in chunks. For example, if a search produces 82 results and the result per page is set to 25, this will generate 4 set of pages. 3 pages will have 25 results and the last page will have 7 results. Record offset value will be Page 1: offset=1 Page 2: offset=26 Page 3: offset=51 Page 4: offset=76 |
JSONP Callback | No | callback | Provide the name of the callback function (ex. processJson) |
Print Fields | No | printFields | Comma separated output print field names required in the output (ex. awardeeName,id,pdPIName). Click Output Fields to see the complete list of print fields |
Award Unique Identifier | No | id | An award unique identifier to retrieve the information (ex. 1336650). This field is required, if ProjectOutcomes is requested for an award resource. |
Agency Name | No | agency | NSF |
Awardee City Name | No | awardeeCity | Awardee city name(ex. Arlington) |
Awardee Country Code | No | awardeeCountryCode | AU BD BR CA GM SW SZ UK US USA |
Awardee Congressional District Code | No | awardeeDistrictCode | Awardee congressional district code. Appended value of state abbreviation and congressional district code (ex. VA01,NY22) |
Awardee Name | No | awardeeName |
Name of the entity receiving award (ex, "university+of+south+florida") Instructions to narrow your results: Description Notes |
Awardee State Code | No | awardeeStateCode | Abbreviation of the awardee state (ex. VA) |
Awardee Zip Code | No | awardeeZipCode | 9 digit awardee zip code with the pattern of 5 digit + 4. This is an exact match search (ex. 231730001) |
Catalog of Federal Domestic Assistance (CFDA) | No | cfdaNumber | Catalog of Federal Domestic Assistance (CFDA) number is the classification of the Federal agency providing the award (ex. 47.084, 47.041) |
Co- Principal Investigator Name | No | coPDPI | Co- Principal Investigator Name (ex. Christopher) |
Start Date For Award Date (Initial Amendment Beginning Date) | No | dateStart | Start date for award date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
End Date for Award Date (Initial Amendment End Date) | No | dateEnd | End date for award date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
Start Date for Award Start Date | No | startDateStart | Start date for award start date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
End Date For Award Start Date | No | startDateEnd | End date for award start date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
Start Date for Award Expiration Date | No | expDateStart | Start date for award expiration date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
End Date For Award Expiration Date | No | expDateEnd | End date for award expiration date to search. Accepted date format is mm/dd/yyyy (ex.12/31/2012) |
Estimated Total From Amount | No | estimatedTotalAmtFrom | Estimated total from amount. This implies that you are searching for values greater than this amount. Results returned will be for values GREATER than the specified estimated amount (ex. 50000). For a range, you need to specify both the estimatedTotalAmtFrom and estimatedTotalAmtTo parameters |
Estimated Total To Amount | No | estimatedTotalAmtTo | Estimated total to amount. This implies that you are searching for values less than this amount. Results returned will be for values LESS than the specified estimated amount (ex. 500000). For a range, you need to specify both the estimatedTotalAmtFrom and estimatedTotalAmtTo parameters |
Funds Obligated From Amount | No | fundsObligatedAmtFrom | Funds obligated from amount. This implies that you are searching for values greater than this amount. Results returned will be for values GREATER than the specified obligated amount (ex. 50000). For a range, you need to specify both the fundsObligatedAmtFrom and fundsObligatedAmtTo parameters |
Funds Obligated To Amount | No | fundsObligatedAmtTo | Funds obligated to amount. This implies that you are searching for values less than this amount. Results returned will be for values LESS than the specified obligated amount (ex. 500000). For a range, you need to specify both the fundsObligatedAmtFrom and fundsObligatedAmtTo parameters |
Unique Entity Identifier (UEI) | No | ueiNumber | Unique Identifier of Entity (ex. F2VSMAKDH8Z7) |
Fund Program Name | No | fundProgramName |
Fund Program Name (ex. "ANTARCTIC+COORDINATION") Instructions to narrow your results: Description Notes |
Parent UEI Number | No | parentUeiNumber | Unique Identifier of Parent Entity (if applicable ex. JBG7T7RXQ2B7) |
Project Director/Principal Investigator Name | No | pdPIName | Project Director - Program Director, a CSREES term equivalent to an NSF Principal Investigator (PI) PI - Principal Investigator or Project Director (ex. "SUMNET+STARFIELD") Instructions to narrow your results: Description Notes |
Performance City | No | perfCity | Performance City Name (ex. Arlington) |
Performance Country Code | No | perfCountryCode | AU BD BR CA GM SW SZ UK US USA |
Performance Congressional District Code | No | perfDistrictCode | Performance congressional district code. Appended value of state abbreviation and congressional district code (ex. VA01,NY22) |
Performance Location | No | perfLocation | Performance location name (ex. "university+of+south+florida") Instructions to narrow your results: Description Notes |
Performance State Code | No | perfStateCode | Performance State Code (ex. VA) |
Performance Zip Code | No | perfZipCode | 9 digit performance zip code with the pattern of 5 digit + 4. This is an exact match search (ex. 231730001) |
Program Officer Name | No | poName | Program Officer Name (ex. "Hamos+Rick") Instructions to narrow your results: Description Notes |
Primary Program Source | No | primaryProgram | Comma separated numbers that include FUND_SYMB_ID to return FUND Code + FUND Name (ex. 040106, 040107) |
Transaction Type | No | transType | Standard Grant GAA Continuing Grant Cooperative Agreement Interagency Agreement Contract Fixed Amount Award Fellowship Award Contract-BOA/Task Order Contract Interagency Agreement |
Output Print Fields
Parameter | Required | Variable Name | Value |
---|---|---|---|
Print Fields | No | printFields | Comma separated print field names expected in the response. Fields marked as (*) are default print fields rpp offset id (*) agency (*) awardeeCity (*) awardeeCountryCode awardeeDistrictCode awardeeName (*) awardeeStateCode (*) awardeeZipCode cfdaNumber coPDPI date (*) startDate expDate estimatedTotalAmt fundsObligatedAmt (*) ueiNumber fundProgramName parentUeiNumber pdPIName perfCity perfCountryCode perfDistrictCode perfLocation perfStateCode perfZipCode poName primaryProgram transType title (*) awardee poPhone poEmail awardeeAddress perfAddress publicationResearch publicationConference fundAgencyCode awardAgencyCode projectOutComesReport abstractText piFirstName (*) piMiddeInitial piLastName (*) piEmail |
Request Parameters - Description Notes
For free text searches, there are different ways to search.
1) Use + sign for the spaces (ex. university+of+south+florida)
2) To match all the words in the phrase, use double quotes in the value (ex. "university+of+south+florida")
3) For single word you can use the word as is, however it is recommended to use phrases to narrow down the search.
4) The API will accept alphabetic and numeric characters, as well as spaces and these punctuation marks: " , ( ) - / . ' ; < > % plus the use of th e wildcard characters * and ? as well as the @ symbol for email addresses. Quotation marks are used to search for an exact match of the values within the quotation marks.
Sample Output: XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<award>
<agency>NSF</agency>
<awardeeCity>MISSOULA</awardeeCity>
<awardeeName>University of Montana</awardeeName>
<awardeeStateCode>MT</awardeeStateCode>
<date>09/20/2010</date>
<fundsObligatedAmt>99911</fundsObligatedAmt>
<id>1052893</id>
<piFirstName>Penelope</piFirstName>
<piLastName>Kukuk</piLastName>
<title>Indigenous Women in Science Network (IWSN) Third Annual Meeting</title>
</award>
</response>
Sample Output: JSON
{
"response" : {
"award" : [ {
"agency" : "NSF",
"awardeeCity" : "MISSOULA",
"awardeeName" : "University of Montana",
"awardeeStateCode" : "MT",
"fundsObligatedAmt" : "99911",
"id" : "1052893",
"piFirstName" : "Penelope",
"piLastName" : "Kukuk",
"date" : "09/20/2010",
"title" : "Indigenous Women in Science Network (IWSN) Third Annual Meeting"
} ]
}
}
Sample Output: JSONP
processJson({
"response" : {
"award" : [ {
"agency" : "NSF",
"awardeeCity" : "MISSOULA",
"awardeeName" : "University of Montana",
"awardeeStateCode" : "MT",
"fundsObligatedAmt" : "99911",
"id" : "1052893",
"piFirstName" : "Penelope",
"piLastName" : "Kukuk",
"date" : "09/20/2010",
"title" : "Indigenous Women in Science Network (IWSN) Third Annual Meeting"
} ]
}
});
Sample Error Output: XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<serviceNotification>
<notificationCode>AwardAPI-004</notificationCode>
<notificationMessage>There was an error processing your request. If the problem persists, go to www.research.gov and click the Contact Us link to report your issue to the NSF IT Service Desk for further assistance.
</notificationMessage>
<notificationType>FATAL</notificationType>
</serviceNotification>
</response>
Sample Error Output: JSON
{
"response" : {
"serviceNotification" : [ {
"notificationType" : "ERROR",
"notificationCode" : "AwardAPI-002",
"notificationMessage" : "Invalid parameter(s) sent in the request. Invalid Parameter(s) {keyword1}"
} ]
}
}
Sample Error Output: JSONP
processJson({
"response" : {
"serviceNotification" : [ {
"notificationType" : "ERROR",
"notificationCode" : "AwardAPI-002",
"notificationMessage" : "Invalid parameter(s) sent in the request. Invalid Parameter(s) {keyword1}"
} ]
}
});