Skip to content

Opportunity

A funding opportunity, such as a grant or loan.

PropertyTypeRequiredDescription
id uuid Yes Globally unique id for the opportunity
title string Yes Title or name of the funding opportunity
status OppStatus Yes Status of the opportunity
description string Yes Description of the opportunity's purpose and scope
funding OppFunding No Details about the funding available
keyDates OppTimeline No Key dates for the opportunity, such as when the application opens and closes
acceptedApplicantTypes array<ApplicantType> No The type of applicant for the opportunity
source url No URL for the original source of the opportunity
customFields record<CustomField> No Additional custom fields specific to this opportunity
createdAt utcDateTime Yes The timestamp (in UTC) at which the record was created.
lastModifiedAt utcDateTime Yes The timestamp (in UTC) at which the record was last modified.

A JSON example of this model.

{
"id": "30a12e5e-5940-4c08-921c-17a8960fcf4b",
"title": "Small business grant program",
"status": {
"value": "open",
"description": "The opportunity is currently accepting applications"
},
"description": "This program provides funding to small businesses to help them grow and create jobs",
"funding": {
"totalAmountAvailable": {
"amount": "1000000.00",
"currency": "USD"
},
"minAwardAmount": {
"amount": "10000.00",
"currency": "USD"
},
"maxAwardAmount": {
"amount": "50000.00",
"currency": "USD"
},
"minAwardCount": 5,
"maxAwardCount": 20,
"estimatedAwardCount": 10
},
"keyDates": {
"postDate": {
"name": "Application posted date",
"eventType": "singleDate",
"date": "2024-01-15T00:00:00.000Z",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31T00:00:00.000Z",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15T00:00:00.000Z",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-01-31T00:00:00.000Z",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-12-31T00:00:00.000Z",
"description": "Period of performance for the grant"
},
"infoSessions": {
"name": "Info sessions",
"eventType": "other",
"details": "Every other Tuesday",
"description": "Info sessions for the opportunity"
}
}
},
"acceptedApplicantTypes": [
{
"value": "individual",
"description": "An individual applicant"
}
],
"source": "http://example.com",
"customFields": {},
"createdAt": "2019-08-24T14:15:22Z",
"lastModifiedAt": "2019-08-24T14:15:22Z"
}
Version Changes
0.2.0
  • Added acceptedApplicantTypes field
0.1.0
  • Added OpportunityBase model

A funding opportunity with additional details, like available competitions.

PropertyTypeRequiredDescription
id uuid Yes Globally unique id for the opportunity
title string Yes Title or name of the funding opportunity
status OppStatus Yes Status of the opportunity
description string Yes Description of the opportunity's purpose and scope
funding OppFunding No Details about the funding available
keyDates OppTimeline No Key dates for the opportunity, such as when the application opens and closes
acceptedApplicantTypes array<ApplicantType> No The type of applicant for the opportunity
source url No URL for the original source of the opportunity
customFields record<CustomField> No Additional custom fields specific to this opportunity
createdAt utcDateTime Yes The timestamp (in UTC) at which the record was created.
lastModifiedAt utcDateTime Yes The timestamp (in UTC) at which the record was last modified.
competitions array<CompetitionBase> No The competitions associated with the opportunity

A JSON example of this model.

{
"competitions": [
{
"id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a",
"opportunityId": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6b",
"title": "Competition 1",
"description": "Competition 1 description",
"instructions": "Competition 1 instructions",
"status": {
"value": "open",
"customValue": "custom",
"description": "Competition is open for applications"
},
"keyDates": {
"openDate": {
"name": "Open Date",
"eventType": "singleDate",
"date": "2025-01-01T00:00:00.000Z"
},
"closeDate": {
"name": "Close Date",
"eventType": "singleDate",
"date": "2025-01-30T00:00:00.000Z"
},
"otherDates": {
"reviewPeriod": {
"name": "Application Review Period",
"eventType": "dateRange",
"startDate": "2025-02-01T00:00:00.000Z",
"endDate": "2025-02-28T00:00:00.000Z"
}
}
},
"forms": {
"forms": {
"formA": {
"id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a",
"name": "Form A",
"description": "Form A description",
"instructions": "Form A instructions",
"jsonSchema": {
"$id": "formA.json",
"type": "object",
"properties": {
"name": {
"first": {
"type": "string"
},
"last": {
"type": "string"
}
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
}
},
"uiSchema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Group",
"label": "Name",
"elements": [
{
"type": "Control",
"scope": "#/properties/name/first"
},
{
"type": "Control",
"scope": "#/properties/name/last"
}
]
},
{
"type": "Control",
"scope": "#/properties/email"
},
{
"type": "Control",
"scope": "#/properties/phone"
}
]
},
"mappingToCommonGrants": {
"name": {
"firstName": {},
"lastName": {}
},
"emails": {
"primary": {}
},
"phones": {
"primary": {}
}
},
"mappingFromCommonGrants": {
"name": {
"first": {},
"last": {}
},
"email": {},
"phone": {}
},
"createdAt": "2025-01-01T17:01:01.000Z",
"lastModifiedAt": "2025-01-02T17:30:00.000Z"
},
"formB": {
"id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a",
"name": "Form A",
"description": "Form A description",
"instructions": "Form A instructions",
"jsonSchema": {
"$id": "formA.json",
"type": "object",
"properties": {
"name": {
"first": {
"type": "string"
},
"last": {
"type": "string"
}
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
}
},
"uiSchema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Group",
"label": "Name",
"elements": [
{
"type": "Control",
"scope": "#/properties/name/first"
},
{
"type": "Control",
"scope": "#/properties/name/last"
}
]
},
{
"type": "Control",
"scope": "#/properties/email"
},
{
"type": "Control",
"scope": "#/properties/phone"
}
]
},
"mappingToCommonGrants": {
"name": {
"firstName": {},
"lastName": {}
},
"emails": {
"primary": {}
},
"phones": {
"primary": {}
}
},
"mappingFromCommonGrants": {
"name": {
"first": {},
"last": {}
},
"email": {},
"phone": {}
},
"createdAt": "2025-01-01T17:01:01.000Z",
"lastModifiedAt": "2025-01-02T17:30:00.000Z"
}
},
"validation": {
"required": [
"formA",
"formB"
]
}
},
"createdAt": "2025-01-01T00:00:00.000Z",
"lastModifiedAt": "2025-01-01T00:00:00.000Z"
}
],
"id": "30a12e5e-5940-4c08-921c-17a8960fcf4b",
"title": "Small business grant program",
"status": {
"value": "open",
"description": "The opportunity is currently accepting applications"
},
"description": "This program provides funding to small businesses to help them grow and create jobs",
"funding": {
"totalAmountAvailable": {
"amount": "1000000.00",
"currency": "USD"
},
"minAwardAmount": {
"amount": "10000.00",
"currency": "USD"
},
"maxAwardAmount": {
"amount": "50000.00",
"currency": "USD"
},
"minAwardCount": 5,
"maxAwardCount": 20,
"estimatedAwardCount": 10
},
"keyDates": {
"postDate": {
"name": "Application posted date",
"eventType": "singleDate",
"date": "2024-01-15T00:00:00.000Z",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31T00:00:00.000Z",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15T00:00:00.000Z",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-01-31T00:00:00.000Z",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-12-31T00:00:00.000Z",
"description": "Period of performance for the grant"
},
"infoSessions": {
"name": "Info sessions",
"eventType": "other",
"details": "Every other Tuesday",
"description": "Info sessions for the opportunity"
}
}
},
"acceptedApplicantTypes": [
{
"value": "individual",
"description": "An individual applicant"
}
],
"source": "http://example.com",
"customFields": {},
"createdAt": "2019-08-24T14:15:22Z",
"lastModifiedAt": "2019-08-24T14:15:22Z"
}
Version Changes
0.2.0
  • Added OpportunityDetails model

The status of an opportunity, such as whether it is accepting applications.

PropertyTypeRequiredDescription
value OppStatusOptions Yes The status of the opportunity, from a predefined set of options
customValue string No A custom value for the status
description string No A human-readable description of the status

A JSON example of this model.

{
"value": "open",
"description": "The opportunity is currently accepting applications"
}
Version Changes
0.1.0
  • Added OppStatus model

The set of values accepted for opportunity status.

ValueDescription
forecasted The opportunity is forecasted and not yet open for applications
open The opportunity is open for applications
closed The opportunity is no longer accepting applications
custom A custom status

A JSON example of this model.

"forecasted"
Version Changes
0.1.0
  • Added OppStatusOptions enum

Details about the funding available for an opportunity.

PropertyTypeRequiredDescription
details string No Details about the funding available for this opportunity that don't fit other fields
totalAmountAvailable Money No Total amount of funding available for this opportunity
minAwardAmount Money No Minimum amount of funding granted per award
maxAwardAmount Money No Maximum amount of funding granted per award
minAwardCount integer No Minimum number of awards granted
maxAwardCount integer No Maximum number of awards granted
estimatedAwardCount integer No Estimated number of awards that will be granted

A JSON example of this model.

{
"totalAmountAvailable": {
"amount": "1000000.00",
"currency": "USD"
},
"minAwardAmount": {
"amount": "10000.00",
"currency": "USD"
},
"maxAwardAmount": {
"amount": "50000.00",
"currency": "USD"
},
"minAwardCount": 5,
"maxAwardCount": 20,
"estimatedAwardCount": 10
}
Version Changes
0.1.0
  • Added OppFunding model

Key dates in the opportunity’s timeline, such as when the application opens and closes.

PropertyTypeRequiredDescription
postDate Event No The date (and time) at which the opportunity is posted
closeDate Event No The date (and time) at which the opportunity closes
otherDates record<Event> No An optional map of other key dates or events in the opportunity timeline Examples might include a deadline for questions, anticipated award date, etc.

A JSON example of this model.

{
"postDate": {
"name": "Application posted date",
"eventType": "singleDate",
"date": "2024-01-15T00:00:00.000Z",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31T00:00:00.000Z",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15T00:00:00.000Z",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-01-31T00:00:00.000Z",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-12-31T00:00:00.000Z",
"description": "Period of performance for the grant"
},
"infoSessions": {
"name": "Info sessions",
"eventType": "other",
"details": "Every other Tuesday",
"description": "Info sessions for the opportunity"
}
}
}
Version Changes
0.1.0
  • Added OppTimeline model