Skip to content

Search opportunities

POST
/common-grants/opportunities/search

Search for opportunities based on the provided filters

Request Body required

object
filters

Filters to apply to the opportunity search

Multiple filter conditions will be combined with AND logic, so that results only include opportunities that match all of the provided filters.

object
status

status.value matches one of the following values

object
operator
required

The operator to apply to the filter value

string
Allowed values: in not_in
value
required

The value to use for the filter operation

Array<string>
[
"value1",
"value2"
]
{
"operator": "in",
"value": [
"forecasted",
"open"
]
}
closeDateRange

keyDates.closeDate is between the given range

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required
Any of:

A date on a calendar in ISO 8601 format YYYY-MM-DD

string format: date
2025-01-01
max
required
Any of:

A date on a calendar in ISO 8601 format YYYY-MM-DD

string format: date
2025-01-01
{
"min": "2021-01-01",
"max": "2021-01-02"
}
{
"operator": "between",
"value": {
"min": "2021-01-01",
"max": "2021-01-02"
}
}
totalFundingAvailableRange

funding.totalAmountAvailable is between the given range

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
minAwardAmountRange

funding.minAwardAmount is between the given range

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
maxAwardAmountRange

funding.maxAwardAmount is between the given range.

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
customFilters

Additional implementation-defined filters to apply to the search

object
key
additional properties

A base filter model that can be used to create more specific filter models

object
operator
required
Any of:

Operators that filter a field based on an exact match to a value

string
Allowed values: eq neq
value
required

The value to use for the filter operation

sorting

The sort order to apply to the results

object
sortBy
required

The field to sort by

string
Allowed values: lastModifiedAt createdAt title status.value keyDates.closeDate funding.maxAwardAmount funding.minAwardAmount funding.totalAmountAvailable funding.estimatedAwardCount custom
lastModifiedAt
pagination

Pagination instructions for the results

object
page

The page to return

integer format: int32
default: 1 >= 1
pageSize

The number of items to return per page

integer format: int32
default: 100 >= 1

Responses

200

A paginated list of items with a filter

A paginated list of items with a filter

object
items
required

Items from the current page

Array<object>

A funding opportunity

object
id
required

Globally unique id for the opportunity

string format: uuid
title
required

Title or name of the funding opportunity

string
status
required

Status of the opportunity

object
value
required

The status value, from a predefined set of options

string
Allowed values: forecasted open closed custom
customValue

A custom status value

string
description

A human-readable description of the status

string
description
required

Description of the opportunity’s purpose and scope

string
funding
required

Details about the funding available

object
totalAmountAvailable

Total amount of funding available for this opportunity

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
minAwardAmount

Minimum amount of funding granted per award

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
maxAwardAmount

Maximum amount of funding granted per award

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
minAwardCount

Minimum number of awards granted

integer
maxAwardCount

Maximum number of awards granted

integer
estimatedAwardCount

Estimated number of awards that will be granted

integer
keyDates
required

Key dates for the opportunity, such as when the application opens and closes

object
appOpens

The date (and time) at which the opportunity begins accepting applications

object
name
required

Human-readable name of the event (e.g., ‘Application posted’, ‘Question deadline’)

string
date
required

Date of the event in in ISO 8601 format: YYYY-MM-DD

string format: date
time

Time of the event in ISO 8601 format: HH:MM:SS

string format: time
description

Description of what this event represents

string
appDeadline

The final deadline for submitting applications

object
name
required

Human-readable name of the event (e.g., ‘Application posted’, ‘Question deadline’)

string
date
required

Date of the event in in ISO 8601 format: YYYY-MM-DD

string format: date
time

Time of the event in ISO 8601 format: HH:MM:SS

string format: time
description

Description of what this event represents

string
otherDates

An optional map of other key dates in the opportunity timeline

Examples might include a deadline for questions, anticipated award date, etc.

object
key
additional properties

Description of an event that has a date (and possible time) associated with it

object
name
required

Human-readable name of the event (e.g., ‘Application posted’, ‘Question deadline’)

string
date
required

Date of the event in in ISO 8601 format: YYYY-MM-DD

string format: date
time

Time of the event in ISO 8601 format: HH:MM:SS

string format: time
description

Description of what this event represents

string
{
"name": "Open Date",
"date": "2024-01-15",
"description": "Applications begin being accepted"
}
source

URL for the original source of the opportunity

string format: uri
customFields

Additional custom fields specific to this opportunity

object
key
additional properties

A custom field on a model

object
name
required

Name of the custom field

string
type
required

The JSON schema type to use when de-serializing the value field

string
Allowed values: string number boolean object array
schema

Link to the full JSON schema for this custom field

string format: uri
value
required

Value of the custom field

description

Description of the custom field’s purpose

string
{
"name": "eligibilityType",
"type": "array",
"value": [
"nonprofit",
"academic"
],
"description": "Types of eligible organizations"
}
createdAt
required

The timestamp (in UTC) at which the record was created.

string format: date-time
lastModifiedAt
required

The timestamp (in UTC) at which the record was last modified.

string format: date-time
paginationInfo
required

Details about the paginated results

object
page
required

Current page number (indexing starts at 1)

integer format: int32
>= 1
1
pageSize
required

Number of items per page

integer
>= 1
20
totalItems

Total number of items across all pages

integer
100
totalPages

Total number of pages

integer
5
status
required
integer format: int32
200
message
required
string
Success
sortInfo
required

The sort order of the items

object
sortBy
required

The field to sort by

string
lastModifiedAt
customSortBy

Implementation-defined sort key

string
customField
sortOrder

The order to sort by

string
Allowed values: asc desc
asc
filterInfo
required

The filters applied to the response items

object
status

status.value matches one of the following values

object
operator
required

The operator to apply to the filter value

string
Allowed values: in not_in
value
required

The value to use for the filter operation

Array<string>
[
"value1",
"value2"
]
{
"operator": "in",
"value": [
"forecasted",
"open"
]
}
closeDateRange

keyDates.closeDate is between the given range

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required
Any of:

A date on a calendar in ISO 8601 format YYYY-MM-DD

string format: date
2025-01-01
max
required
Any of:

A date on a calendar in ISO 8601 format YYYY-MM-DD

string format: date
2025-01-01
{
"min": "2021-01-01",
"max": "2021-01-02"
}
{
"operator": "between",
"value": {
"min": "2021-01-01",
"max": "2021-01-02"
}
}
totalFundingAvailableRange

funding.totalAmountAvailable is between the given range

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
minAwardAmountRange

funding.minAwardAmount is between the given range

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
maxAwardAmountRange

funding.maxAwardAmount is between the given range.

Funding amounts that are denominated in a different currency will be excluded from the search.

object
operator
required

The operator to apply to the filter value

string
Allowed values: between outside
value
required

The value to use for the filter operation

object
min
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
max
required

A monetary amount and the currency in which its denominated

object
amount
required

The amount of money

string
/^-?[0-9]+\.?[0-9]*$/
currency
required

The ISO 4217 currency code in which the amount is denominated

string
{
"amount": "-50.50",
"currency": "USD"
}
{
"min": {
"amount": "1000",
"currency": "USD"
},
"max": {
"amount": "10000",
"currency": "USD"
}
}
{
"operator": "between",
"value": {
"min": {
"amount": "1000000",
"currency": "USD"
},
"max": {
"amount": "2000000",
"currency": "USD"
}
}
}
customFilters

Additional implementation-defined filters to apply to the search

object
key
additional properties

A base filter model that can be used to create more specific filter models

object
operator
required
Any of:

Operators that filter a field based on an exact match to a value

string
Allowed values: eq neq
value
required

The value to use for the filter operation

status
required
integer format: int32
200
message
required
string
Success

401

Access is unauthorized.

A non-2xx response schema

object
status
required
integer format: int32
400
message
required

Human-readable error message

string
Error
errors
required

List of errors

Array