Skip to content

Opportunity

A funding opportunity, such as a grant or loan. It shares its identity fields with OppRef, including the OppIds collection under identifiers added in v0.5. Since v0.5 it also records who is offering the money under funders, an OrgRefCollection, which replaces the deprecated agency custom field for opportunities.

PropertyTypeRequiredDescription
iduuidYesGlobally unique id for the opportunity
titlestringYesTitle or name of the funding opportunity
identifiersOppIdsNoSystem and registry-specific identifiers for the opportunity
statusOppStatusYesStatus of the opportunity
descriptionstringYesDescription of the opportunity's purpose and scope
fundingOppFundingNoDetails about the funding available
fundersOrgRefCollectionNoOrganization(s) offering the funding for this opportunity
keyDatesOppTimelineNoKey dates for the opportunity, such as when the application opens and closes
acceptedApplicantTypesarray<ApplicantType>NoThe type of applicant for the opportunity
sourceurlNoURL for the original source of the opportunity
customFieldsrecord<CustomField>NoAdditional custom fields specific to this opportunity
createdAtutcDateTimeYesThe timestamp (in UTC) at which the record was created.
lastModifiedAtutcDateTimeYesThe 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",
"identifiers": {
"systemId": {
"registry": {
"code": "opp:grants.gov:system"
},
"id": "018f2e77-3a4b-7c1d-9e2f-abcdef123456"
},
"opp:us:fon": {
"registry": {
"code": "opp:us:fon",
"url": "https://commongrants.org/registries/opp-us-fon"
},
"id": "HHS-2026-ACF-OCC-YD-0001"
},
"opp:us:aln": {
"registry": {
"code": "opp:us:aln",
"url": "https://commongrants.org/registries/opp-us-aln"
},
"id": "93.575"
}
},
"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
},
"funders": {
"primary": {
"id": "018f2e77-4b5c-7d2e-9f3a-bcdef1234567",
"name": "Health Resources and Services Administration",
"identifiers": {
"otherIds": {
"org:grants.gov:agency": {
"registry": {
"code": "org:grants.gov:agency"
},
"id": "HRSA"
}
}
}
}
},
"keyDates": {
"postDate": {
"name": "Opportunity posted date",
"eventType": "singleDate",
"date": "2024-01-15",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"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"
}
VersionChangesSchema
0.5.0
  • Added identifiers field
  • Added funders field
OpportunityBase.yaml
0.2.0
  • Added acceptedApplicantTypes field
OpportunityBase.yaml
0.1.0
  • Added OpportunityBase model
OpportunityBase.yaml

A funding opportunity with additional details, like available competitions. Since v0.5 it also lists the awards the opportunity produced under awards, a list of AwdRef entries, so a consumer can see what an opportunity funded without searching awards by opportunityId.

An entry is a reference, not the award record: GET /awards/<id> is the canonical record only where an implementation serves the award routes, and otherwise the entry’s identifiers, where the publisher supplies them, are the key for joining the award in another system. A consumer must not assume a reference can be dereferenced through this API. An absent awards means the implementation does not publish this link for the record, while an empty array means it does and no awards are known. Entries carry no ordering guarantee.

PropertyTypeRequiredDescription
iduuidYesGlobally unique id for the opportunity
titlestringYesTitle or name of the funding opportunity
identifiersOppIdsNoSystem and registry-specific identifiers for the opportunity
statusOppStatusYesStatus of the opportunity
descriptionstringYesDescription of the opportunity's purpose and scope
fundingOppFundingNoDetails about the funding available
fundersOrgRefCollectionNoOrganization(s) offering the funding for this opportunity
keyDatesOppTimelineNoKey dates for the opportunity, such as when the application opens and closes
acceptedApplicantTypesarray<ApplicantType>NoThe type of applicant for the opportunity
sourceurlNoURL for the original source of the opportunity
customFieldsrecord<CustomField>NoAdditional custom fields specific to this opportunity
createdAtutcDateTimeYesThe timestamp (in UTC) at which the record was created.
lastModifiedAtutcDateTimeYesThe timestamp (in UTC) at which the record was last modified.
competitionsarray<CompetitionBase>NoThe competitions associated with the opportunity
awardsarray<AwdRef>NoAwards that resulted from this opportunity, as references. Each entry references an award that resulted from this opportunity; the award's `opportunity.id`, when it is published, is this record's `id`. An entry is a reference, not the award record: `GET /awards/<id>` is the canonical record only where an implementation serves the award routes, and otherwise the entry's `identifiers`, where the publisher supplies them, are the key for joining the award in another system. A consumer must not assume a reference can be dereferenced through this API. Absent means the implementation does not publish this link for the record, and an empty array means the link is published and no awards are known. Entries carry no ordering guarantee.

A JSON example of this model.

{
"competitions": [
{
"id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a",
"opportunity": {
"id": "30a12e5e-5940-4c08-921c-17a8960fcf4b",
"title": "Small business grant program"
},
"title": "Competition 1",
"description": "Competition 1 description",
"instructions": "Competition 1 instructions",
"status": {
"value": "open",
"description": "Competition is open for applications"
},
"keyDates": {
"openDate": {
"name": "Open Date",
"eventType": "singleDate",
"date": "2025-01-01"
},
"closeDate": {
"name": "Close Date",
"eventType": "singleDate",
"date": "2025-01-30"
},
"otherDates": {
"reviewPeriod": {
"name": "Application Review Period",
"eventType": "dateRange",
"startDate": "2025-02-01",
"endDate": "2025-02-28"
}
}
},
"forms": {
"forms": {
"formA": {
"id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"title": "Form A",
"createdAt": "2025-01-01T00:00:00Z",
"lastModifiedAt": "2025-01-01T00:00:00Z"
},
"formB": {
"id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e60",
"title": "Form B",
"createdAt": "2025-01-01T00:00:00Z",
"lastModifiedAt": "2025-01-01T00:00:00Z"
}
},
"validation": {
"required": [
"formA"
]
}
},
"createdAt": "2025-01-01T00:00:00Z",
"lastModifiedAt": "2025-01-01T00:00:00Z"
}
],
"awards": [
{
"id": "01912a8b-7c3d-7894-abcd-ef1234567890",
"title": "Community Health Center Capital Improvement Grant",
"identifiers": {
"systemId": {
"registry": {
"code": "awd:grants.gov:system"
},
"id": "01912a8b-7c3d-7894-abcd-ef1234567890"
},
"awd:us:fain": {
"registry": {
"code": "awd:us:fain",
"url": "https://commongrants.org/registries/awd-us-fain"
},
"id": "H80CS00001"
}
}
}
],
"id": "30a12e5e-5940-4c08-921c-17a8960fcf4b",
"title": "Small business grant program",
"identifiers": {
"systemId": {
"registry": {
"code": "opp:grants.gov:system"
},
"id": "018f2e77-3a4b-7c1d-9e2f-abcdef123456"
},
"opp:us:fon": {
"registry": {
"code": "opp:us:fon",
"url": "https://commongrants.org/registries/opp-us-fon"
},
"id": "HHS-2026-ACF-OCC-YD-0001"
},
"opp:us:aln": {
"registry": {
"code": "opp:us:aln",
"url": "https://commongrants.org/registries/opp-us-aln"
},
"id": "93.575"
}
},
"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
},
"funders": {
"primary": {
"id": "018f2e77-4b5c-7d2e-9f3a-bcdef1234567",
"name": "Health Resources and Services Administration",
"identifiers": {
"otherIds": {
"org:grants.gov:agency": {
"registry": {
"code": "org:grants.gov:agency"
},
"id": "HRSA"
}
}
}
}
},
"keyDates": {
"postDate": {
"name": "Opportunity posted date",
"eventType": "singleDate",
"date": "2024-01-15",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"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"
}
VersionChangesSchema
0.5.0
  • Added awards field
OpportunityDetails.yaml
0.2.0
  • Added OpportunityDetails model
OpportunityDetails.yaml

A reference to an opportunity, previewing the key fields a consumer needs to identify it and look it up or join it to another response. Appears wherever another record points to an opportunity, such as the opportunity an award resulted from. Since v0.5 it also carries OppIds under identifiers, so a consumer can match the opportunity on a published registry code rather than the hosting system’s own id.

PropertyTypeRequiredDescription
iduuidYesGlobally unique id for the opportunity
titlestringYesTitle or name of the funding opportunity
identifiersOppIdsNoSystem and registry-specific identifiers for the opportunity

A JSON example of this model.

{
"id": "018f2e77-3a4b-7c1d-9e2f-abcdef123456",
"title": "Health Center Capital Improvement Program",
"identifiers": {
"opp:us:fon": {
"registry": {
"code": "opp:us:fon",
"url": "https://commongrants.org/registries/opp-us-fon"
},
"id": "HHS-2026-ACF-OCC-YD-0001"
}
}
}
VersionChangesSchema
0.5.0
  • Added identifiers field
OppRef.yaml
0.1.0
  • Added OppRef model
OppRef.yaml

A collection of identifiers associated with an opportunity, keyed by registry code. It extends the generic IdentifierCollection with the base identifiers CommonGrants defines for opportunities. Additional registries can be published under otherIds.

PropertyTypeRequiredDescription
systemIdSystemIdNoThe hosting system's own identifier for this record.
otherIdsrecord<Identifier>NoAdditional identifiers keyed by their registry code, for registries the protocol does not define as a base identifier on the model.
opp:us:fonOppIdFonNoThe opportunity's Funding Opportunity Number (FON).
opp:us:alnOppIdAlnNoThe opportunity's Assistance Listing Number (ALN).

A JSON example of this model.

{
"systemId": {
"registry": {
"code": "opp:grants.gov:system"
},
"id": "018f2e77-3a4b-7c1d-9e2f-abcdef123456"
},
"opp:us:fon": {
"registry": {
"code": "opp:us:fon",
"url": "https://commongrants.org/registries/opp-us-fon"
},
"id": "HHS-2026-ACF-OCC-YD-0001"
},
"opp:us:aln": {
"registry": {
"code": "opp:us:aln",
"url": "https://commongrants.org/registries/opp-us-aln"
},
"id": "93.575"
}
}
VersionChangesSchema
0.5.0
  • Added OppIds model
OppIds.yaml

An opportunity’s Federal Opportunity Number (FON), assigned by the awarding agency and published on the notice of funding opportunity. It pins registry.code to opp:us:fon.

PropertyTypeRequiredDescription
registryrecordNoRegistry-level facts shared by every record in this registry.
idstringNoThe primary identifier string, when the registry has a single canonical value. May be omitted for registries with no natural primary; consumers should read `allIds` in that case.
allIdsarray<object>NoEvery known identifier for this record in this registry, including archived values.

A JSON example of this model.

{
"registry": {
"code": "opp:us:fon",
"url": "https://commongrants.org/registries/opp-us-fon"
},
"id": "HHS-2026-ACF-OCC-YD-0001"
}
VersionChangesSchema
0.5.0
  • Added OppIdFon model
OppIdFon.yaml

An opportunity’s Assistance Listing Number (ALN), formerly the CFDA number, which ties it to its federal assistance program. It pins registry.code to opp:us:aln.

PropertyTypeRequiredDescription
registryrecordNoRegistry-level facts shared by every record in this registry.
idstringNoThe primary identifier string, when the registry has a single canonical value. May be omitted for registries with no natural primary; consumers should read `allIds` in that case.
allIdsarray<object>NoEvery known identifier for this record in this registry, including archived values.

A JSON example of this model.

{
"registry": {
"code": "opp:us:aln",
"url": "https://commongrants.org/registries/opp-us-aln"
},
"id": "93.575"
}
VersionChangesSchema
0.5.0
  • Added OppIdAln model
OppIdAln.yaml

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

PropertyTypeRequiredDescription
valueOppStatusOptionsYesThe selected value, from a predefined set of options
customValuestringNoA custom value, used when the selected value is the `custom` option
descriptionstringNoA human-readable description of the value

A JSON example of this model.

{
"value": "open",
"description": "The opportunity is currently accepting applications"
}
VersionChangesSchema
0.1.0
  • Added OppStatus model
OppStatus.yaml

The set of values accepted for opportunity status.

ValueDescription
forecastedThe opportunity is forecasted and not yet open for applications
openThe opportunity is open for applications
closedThe opportunity is no longer accepting applications
customA custom status

A JSON example of this model.

"forecasted"
VersionChangesSchema
0.1.0
  • Added OppStatusOptions enum
OppStatusOptions.yaml

Details about the funding available for an opportunity.

PropertyTypeRequiredDescription
detailsstringNoDetails about the funding available for this opportunity that don't fit other fields
totalAmountAvailableMoneyNoTotal amount of funding available for this opportunity
minAwardAmountMoneyNoMinimum amount of funding granted per award
maxAwardAmountMoneyNoMaximum amount of funding granted per award
minAwardCountintegerNoMinimum number of awards granted
maxAwardCountintegerNoMaximum number of awards granted
estimatedAwardCountintegerNoEstimated 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
}
VersionChangesSchema
0.1.0
  • Added OppFunding model
OppFunding.yaml

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

PropertyTypeRequiredDescription
postDateEventNoThe date (and time) at which the opportunity is posted
closeDateEventNoThe date (and time) at which the opportunity closes
otherDatesrecord<Event>NoAn 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": "Opportunity posted date",
"eventType": "singleDate",
"date": "2024-01-15",
"description": "Opportunity is posted publicly"
},
"closeDate": {
"name": "Opportunity close date",
"eventType": "singleDate",
"date": "2024-12-31",
"time": "17:00:00",
"description": "Opportunity closes for all applications"
},
"otherDates": {
"anticipatedAward": {
"name": "Anticipated award date",
"eventType": "singleDate",
"date": "2025-03-15",
"description": "When we expect to announce awards for this opportunity."
},
"applicationPeriod": {
"name": "Application period",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"endTime": "17:00:00",
"description": "Primary application period for the grant opportunity"
},
"performancePeriod": {
"name": "Period of Performance",
"eventType": "dateRange",
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"description": "Period of performance for the grant"
},
"infoSessions": {
"name": "Info sessions",
"eventType": "other",
"details": "Every other Tuesday",
"description": "Info sessions for the opportunity"
}
}
}
VersionChangesSchema
0.1.0
  • Added OppTimeline model
OppTimeline.yaml