info: description: ' Back end API for simpler.grants.gov. This API is in active development as we build out new functionalities for Simpler.Grants.gov. It is currently stable for everyday use, and will be versioned with advance notice for any breaking changes. Learn more in our [API documentation](https://wiki.simpler.grants.gov/product/api). See [Release Phases](https://github.com/github/roadmap?tab=readme-ov-file#release-phases) for further details. ' contact: name: Simpler Grants.gov url: https://simpler.grants.gov/ email: simpler@grants.gov title: Simpler Grants API version: v0 tags: - name: Health - name: Opportunity v1 - name: Opportunity v1 - for Grantors - name: Extract v1 - name: Agency v1 - name: Organization v1 - name: Internal v1 - Admin Only - name: File v1 - name: User v1 - Internal Only - name: Application Alpha - name: Form Alpha - name: Competition Alpha - name: Award Recommendation Alpha - name: CommonGrants Protocol description: CommonGrants-compliant API routes for searching opportunities to promote interoperability across grant systems. Learn more by visiting CommonGrants.org - name: LOCAL ONLY - name: Workflow servers: . paths: /health: get: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/HealthcheckResponseSchema' description: Successful response '503': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Service Unavailable tags: - Health summary: Health /v1/extracts: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtractMetadataListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - Extract v1 summary: Extract Metadata Get requestBody: content: application/json: schema: $ref: '#/components/schemas/ExtractMetadataRequestSchema' examples: example1: summary: No filters value: pagination: sort_order: - order_by: created_at sort_direction: descending page_offset: 1 page_size: 25 security: - ApiJwtAuth: &id001 [] - ApiUserKeyAuth: *id001 /v1/users/login: get: parameters: - in: query name: piv_required description: Whether the user is required to use a PIV to login schema: type: boolean nullable: true required: false responses: '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '302': content: application/json: schema: {} description: Found tags: - User v1 - Internal Only summary: User Login description: ' To use this endpoint, click [this link](/v1/users/login) which will redirect you to an OAuth provider where you can sign into an account. Do not try to use the execute option below as OpenAPI will not redirect your browser for you. The token you receive can then be set to the X-SGG-Token header for authenticating with endpoints. ' /v1/internal/roles: put: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InternalRoleAssignmentResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - Internal v1 - Admin Only summary: Update Internal Roles requestBody: content: application/json: schema: $ref: '#/components/schemas/InternalRoleAssignmentRequestSchema' security: - ApiUserKeyAuth: [] /local/local-users: get: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LocalUserTokenResponseSchema' description: Successful response tags: - LOCAL ONLY summary: Local Users Get /v1/agencies/search: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgencySearchResponseV1Schema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - Agency v1 summary: Agency Search requestBody: content: application/json: schema: $ref: '#/components/schemas/AgencySearchRequestSchema' examples: example1: summary: No filters value: query: USAID pagination: sort_order: - order_by: agency_name sort_direction: descending page_offset: 1 page_size: 25 example2: summary: Filter by open/forecasted agency value: filters: has_open_opportunity: one_of: - 'False' has_forecasted_opportunity: one_of: - 'False' pagination: sort_order: - order_by: agency_name sort_direction: descending page_offset: 1 page_size: 25 security: - ApiJwtAuth: &id002 [] - ApiUserKeyAuth: *id002 /v1/workflows/events: put: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/WorkflowEventResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not Found tags: - Workflow summary: Send Workflow Event description: Trigger a new workflow or progress an existing one. requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkflowEventRequestSchema' security: - ApiJwtAuth: &id003 [] - ApiUserKeyAuth: *id003 /v1/users/token/logout: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserTokenLogoutResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - User v1 - Internal Only summary: User Token Logout security: - ApiJwtAuth: [] /v1/users/token/refresh: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserTokenRefreshResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - User v1 - Internal Only summary: User Token Refresh security: - ApiJwtAuth: [] /v1/opportunities/search: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunitySearchResponseV1Schema' text/csv: {} description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - Opportunity v1 summary: Search opportunities (JSON or CSV) description: ' This API is in active development as we build out new functionalities for Simpler.Grants.gov. It is currently stable for everyday use, and will be versioned with advance notice for any breaking changes. Learn more in our [API documentation](https://wiki.simpler.grants.gov/product/api). See [Release Phases](https://github.com/github/roadmap?tab=readme-ov-file#release-phases) for further details. ' requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunitySearchRequestV1Schema' examples: example1: summary: No filters value: pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 25 example2: summary: All filters value: query: research filters: agency: one_of: - USAID - DOC applicant_type: one_of: - state_governments - county_governments - individuals funding_category: one_of: - recovery_act - arts - natural_resources funding_instrument: one_of: - cooperative_agreement - grant opportunity_status: one_of: - forecasted - posted post_date: start_date: '2024-01-01' end_date: '2024-02-01' close_date: start_date: '2024-01-01' pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 25 example3: summary: Query & opportunity_status filters value: query: research filters: opportunity_status: one_of: - forecasted - posted pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 25 example4: summary: CSV file response value: format: csv filters: opportunity_status: one_of: - forecasted - posted pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 100 example5: summary: Filter by award fields value: filters: expected_number_of_awards: min: 5 award_floor: min: 10000 award_ceiling: max: 1000000 estimated_total_program_funding: min: 100000 max: 250000 pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 25 example6: summary: Filter by assistance listing numbers value: filters: assistance_listing_number: one_of: - '43.001' - '47.049' pagination: sort_order: - order_by: opportunity_id sort_direction: ascending page_offset: 1 page_size: 25 example7: summary: Primary sort agency_code desc, secondary sort opportunity_id asc value: pagination: page_offset: 1 page_size: 25 sort_order: - order_by: agency_code sort_direction: descending - order_by: opportunity_id sort_direction: ascending security: - ApiJwtAuth: &id004 [] - ApiUserKeyAuth: *id004 /v1/users/{user_id}: get: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - User v1 - Internal Only summary: User Get security: - ApiJwtAuth: [] /alpha/applications/start: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationStartResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not Found tags: - Application Alpha summary: Create a new application for a competition requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationStartRequestSchema' security: - ApiJwtAuth: [] /v1/grantors/opportunities: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityCreateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Create a new opportunity requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunityCreateRequestSchema' security: - ApiJwtAuth: &id005 [] - ApiUserKeyAuth: *id005 /alpha/forms/{form_id}: get: parameters: - in: path name: form_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FormResponseAlphaSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Form Alpha summary: Form Get security: - ApiUserKeyAuth: [] put: parameters: - in: path name: form_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FormUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Form Alpha summary: Form Update requestBody: content: application/json: schema: $ref: '#/components/schemas/FormUpdateRequestSchema' security: - ApiUserKeyAuth: [] /v1/opportunities/search/csv: post: parameters: [] responses: '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '200': content: text/csv: {} tags: - Opportunity v1 summary: Opportunity Search Csv description: ' This API is in active development as we build out new functionalities for Simpler.Grants.gov. It is currently stable for everyday use, and will be versioned with advance notice for any breaking changes. Learn more in our [API documentation](https://wiki.simpler.grants.gov/product/api). See [Release Phases](https://github.com/github/roadmap?tab=readme-ov-file#release-phases) for further details. ' requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunitySearchCSVRequestV1Schema' examples: example1: summary: No filters value: {} example2: summary: Query and filters value: query: research query_operator: OR filters: agency: one_of: - USAID - DOC opportunity_status: one_of: - forecasted - posted security: - ApiJwtAuth: &id006 [] - ApiUserKeyAuth: *id006 /alpha/award-recommendations: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationGetResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not Found tags: - Award Recommendation Alpha summary: Create Award Recommendation description: Create a new award recommendation for an opportunity, linking application submissions and audit data. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationCreateRequestSchema' security: - ApiJwtAuth: &id007 [] - ApiUserKeyAuth: *id007 /common-grants/opportunities: get: parameters: - in: query name: page description: The page number to retrieve schema: type: integer example: 1 nullable: true required: false - in: query name: pageSize description: The number of items per page schema: type: integer example: 10 nullable: true required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunitiesListResponse' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - CommonGrants Protocol summary: List opportunities description: Get a paginated list of opportunities, sorted by `lastModifiedAt` with most recent first. security: - ApiUserKeyAuth: [] /v1/users/{user_id}/profile: put: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserUpdateProfileResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Update the authenticated user's profile data' requestBody: content: application/json: schema: $ref: '#/components/schemas/UserUpdateProfileRequestSchema' security: - ApiJwtAuth: [] /v1/workflows/{workflow_id}: get: parameters: - in: path name: workflow_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/WorkflowGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Workflow summary: Get Workflow Details description: Retrieve detailed information about a specific workflow including audit history, approvals, and approval configuration. Access is controlled by entity-based privileges (VIEW_OPPORTUNITY or VIEW_APPLICATION). security: - ApiJwtAuth: &id008 [] - ApiUserKeyAuth: *id008 /v1/users/{user_id}/agencies: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserAgenciesResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Get Agencies security: - ApiJwtAuth: &id009 [] - ApiUserKeyAuth: *id009 /v1/users/{user_id}/api-keys: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserApiKeyCreateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Create a new API key for the authenticated user requestBody: content: application/json: schema: $ref: '#/components/schemas/UserApiKeyCreateRequestSchema' security: - ApiJwtAuth: [] /alpha/award-recommendations/list: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not Found tags: - Award Recommendation Alpha summary: List Award Recommendations description: Get paginated list of award recommendations filtered by agency. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationListRequestSchema' security: - ApiJwtAuth: &id010 [] - ApiUserKeyAuth: *id010 /v1/users/{user_id}/privileges: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserGetRolesAndPrivilegesResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Get the roles and privileges for the authenticated user security: - ApiJwtAuth: [] /v1/users/{user_id}/can_access: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCanAccessResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Check user access for a given resource requestBody: content: application/json: schema: $ref: '#/components/schemas/UserCanAccessRequestSchema' security: - ApiJwtAuth: [] /common-grants/opportunities/search: post: parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunitiesSearchResponse' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error tags: - CommonGrants Protocol summary: Search opportunities description: Search for opportunities based on the provided filters requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunitySearchRequest' security: - ApiUserKeyAuth: [] /v1/workflows/events/{event_id}: get: parameters: - in: path name: event_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/WorkflowGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Workflow summary: Get Workflow by Event ID description: Retrieve detailed information about a workflow associated with a specific event. Access is controlled by entity-based privileges (VIEW_OPPORTUNITY or VIEW_APPLICATION). security: - ApiJwtAuth: &id011 [] - ApiUserKeyAuth: *id011 /v1/users/{user_id}/applications: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserApplicationListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Get all applications for a user requestBody: content: application/json: schema: $ref: '#/components/schemas/UserApplicationListRequestSchema' security: - ApiJwtAuth: [] /v1/users/{user_id}/organizations: get: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserOrganizationsResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Get Organizations security: - ApiJwtAuth: [] /v1/users/{user_id}/api-keys/list: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserApiKeyListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: List all API keys for the authenticated user requestBody: content: application/json: schema: $ref: '#/components/schemas/UserApiKeyListRequestSchema' security: - ApiJwtAuth: [] /v1/workflows/{workflow_id}/audit: post: parameters: - in: path name: workflow_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/WorkflowAuditResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Workflow summary: Get Workflow Audit Events description: Retrieve a paginated list of audit events for a specific workflow. Access is controlled by entity-based privileges (VIEW_OPPORTUNITY or VIEW_APPLICATION). requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkflowAuditRequestSchema' security: - ApiJwtAuth: &id012 [] - ApiUserKeyAuth: *id012 /v1/opportunities/{opportunity_id}: get: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityGetResponseV1Schema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Opportunity v1 summary: Opportunity Get description: ' This API is in active development as we build out new functionalities for Simpler.Grants.gov. It is currently stable for everyday use, and will be versioned with advance notice for any breaking changes. Learn more in our [API documentation](https://wiki.simpler.grants.gov/product/api). See [Release Phases](https://github.com/github/roadmap?tab=readme-ov-file#release-phases) for further details. ' security: - ApiJwtAuth: &id013 [] - ApiUserKeyAuth: *id013 /v1/users/{user_id}/saved-searches: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSaveSearchResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Save Search requestBody: content: application/json: schema: $ref: '#/components/schemas/UserSaveSearchRequestSchema' security: - ApiJwtAuth: [] /v1/organizations/{organization_id}: get: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Get organization information by ID security: - ApiJwtAuth: [] /v1/files/{pending_file_id}/results: get: parameters: - in: path name: pending_file_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FileScanResultsResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - File v1 summary: Stream file scan results description: Stream the scan status of a pending file as newline-delimited JSON. Each chunk matches the documented response schema. The endpoint polls DynamoDB on a configurable interval and ends the stream when the scan reaches a terminal status (complete/infected) or the configured max duration elapses. security: - ApiJwtAuth: &id014 [] - ApiUserKeyAuth: *id014 /v1/users/{user_id}/invitations/list: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInvitationListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Get all invitations for a user by matching their login.gov email requestBody: content: application/json: schema: $ref: '#/components/schemas/UserInvitationListRequestSchema' security: - ApiJwtAuth: [] /alpha/applications/{application_id}: get: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Get an application by ID security: - ApiJwtAuth: [] put: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Application Alpha summary: Update an application requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationUpdateRequestSchema' security: - ApiJwtAuth: [] /alpha/competitions/{competition_id}: get: parameters: - in: path name: competition_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionResponseAlphaSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Competition Alpha summary: Competition Get security: - ApiJwtAuth: &id015 [] - ApiUserKeyAuth: *id015 /common-grants/opportunities/{oppId}: get: parameters: - in: path name: oppId schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityResponse' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - CommonGrants Protocol summary: View opportunity details description: View details about an opportunity security: - ApiUserKeyAuth: [] /v1/users/{user_id}/saved-opportunities: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSaveOpportunityResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Save Opportunity requestBody: content: application/json: schema: $ref: '#/components/schemas/UserSaveOpportunityRequestSchema' security: - ApiJwtAuth: [] /v1/users/{user_id}/saved-searches/list: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSavedSearchesResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Get Saved Searches requestBody: content: application/json: schema: $ref: '#/components/schemas/UserSavedSearchesRequestSchema' security: - ApiJwtAuth: [] /v1/opportunities/{legacy_opportunity_id}: get: parameters: - in: path name: legacy_opportunity_id schema: type: integer required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityGetResponseV1Schema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Opportunity v1 summary: Opportunity Get Legacy description: ' This API is in active development as we build out new functionalities for Simpler.Grants.gov. It is currently stable for everyday use, and will be versioned with advance notice for any breaking changes. Learn more in our [API documentation](https://wiki.simpler.grants.gov/product/api). See [Release Phases](https://github.com/github/roadmap?tab=readme-ov-file#release-phases) for further details. ' security: - ApiJwtAuth: &id016 [] - ApiUserKeyAuth: *id016 /v1/organizations/{organization_id}/users: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationUsersResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Get paginated list of users in an organization requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationUsersListRequestSchema' security: - ApiJwtAuth: [] /alpha/competitions/{competition_id}/flag: put: parameters: - in: path name: competition_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionResponseAlphaSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Competition Alpha summary: Update Competition Flag Route requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionFlagUpdateSchema' security: - ApiUserKeyAuth: [] /alpha/competitions/{competition_id}/forms: put: parameters: - in: path name: competition_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionResponseAlphaSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Competition Alpha summary: Put Competition Forms requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionFormsSetRequestSchema' security: - ApiUserKeyAuth: [] /v1/grantors/opportunities/{opportunity_id}: get: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Get an editable opportunity for grantors security: - ApiJwtAuth: &id017 [] - ApiUserKeyAuth: *id017 put: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Opportunity v1 - for Grantors summary: Update an existing opportunity requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunityUpdateRequestSchema' security: - ApiJwtAuth: &id018 [] - ApiUserKeyAuth: *id018 /alpha/applications/{application_id}/submit: post: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AbstractResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Submit an application security: - ApiJwtAuth: [] /v1/users/{user_id}/saved-opportunities/list: post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSavedOpportunitiesResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Get Saved Opportunities requestBody: content: application/json: schema: $ref: '#/components/schemas/UserSavedOpportunitiesRequestSchema' security: - ApiJwtAuth: [] /v1/organizations/{organization_id}/roles/list: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationListRolesResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: List organization roles security: - ApiJwtAuth: [] /v1/users/{user_id}/api-keys/{api_key_id}: put: parameters: - in: path name: user_id schema: type: string required: true - in: path name: api_key_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserApiKeyRenameResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Rename an existing API key for the authenticated user requestBody: content: application/json: schema: $ref: '#/components/schemas/UserApiKeyRenameRequestSchema' security: - ApiJwtAuth: [] delete: parameters: - in: path name: user_id schema: type: string required: true - in: path name: api_key_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserApiKeyDeleteResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: Delete (deactivate) an API key for the authenticated user security: - ApiJwtAuth: [] /v1/grantors/agencies/{agency_id}/opportunities: post: parameters: - in: path name: agency_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Get paginated list of opportunities by agency requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunityListRequestSchema' security: - ApiJwtAuth: &id019 [] - ApiUserKeyAuth: *id019 /v1/organizations/{organization_id}/invitations: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationCreateInvitationResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Create an invitation for a new organization member requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationCreateInvitationRequestSchema' security: - ApiJwtAuth: [] /v1/organizations/{organization_id}/legacy-users: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LegacyUsersListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: List legacy users that can be invited to the organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/LegacyUsersListRequestSchema' security: - ApiJwtAuth: [] /alpha/applications/{application_id}/attachments: post: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAttachmentCreateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Create an attachment on an application requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/ApplicationAttachmentCreateRequestSchema' security: - ApiJwtAuth: [] /alpha/applications/{application_id}/submissions: post: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationSubmissionsResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Application Alpha summary: Get all application submissions for an application requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationSubmissionsRequestSchema' security: - ApiJwtAuth: &id020 [] - ApiUserKeyAuth: *id020 /alpha/applications/{application_id}/audit_history: post: parameters: - in: path name: application_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAuditResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Application Audit List requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationAuditRequestSchema' security: - ApiJwtAuth: [] /v1/grantors/opportunities/{opportunity_id}/publish: post: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityPublishResponseV1Schema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Publish an opportunity security: - ApiJwtAuth: &id021 [] - ApiUserKeyAuth: *id021 /v1/organizations/{organization_id}/invitations/list: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationInvitationListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: List organization invitations with filtering requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationInvitationListRequestSchema' security: - ApiJwtAuth: [] /v1/grantors/opportunities/{opportunity_id}/summaries: post: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunitySummaryCreateResponseV1Schema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Create a new opportunity summary requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunitySummaryCreateRequestV1Schema' security: - ApiJwtAuth: &id022 [] - ApiUserKeyAuth: *id022 /v1/users/{user_id}/saved-opportunities/notifications: get: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserSavedOpportunityNotificationsResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Get Saved Opportunity Notifications security: - ApiJwtAuth: &id023 [] - ApiUserKeyAuth: *id023 post: parameters: - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SetUserSavedOpportunityNotificationResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Saved Opportunities Notifications requestBody: content: application/json: schema: $ref: '#/components/schemas/SetUserSavedOpportunityNotificationRequestSchema' security: - ApiJwtAuth: &id024 [] - ApiUserKeyAuth: *id024 /alpha/award-recommendations/{award_recommendation_id}: get: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Get Award Recommendation description: Retrieve an award recommendation by ID, including opportunity details, attachments, and reviews. security: - ApiJwtAuth: &id025 [] - ApiUserKeyAuth: *id025 put: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationGetResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Update Award Recommendation description: Update an existing award recommendation with new values for fields. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationUpdateRequestSchema' security: - ApiJwtAuth: &id026 [] - ApiUserKeyAuth: *id026 /v1/grantors/opportunities/{opportunity_id}/attachments: post: parameters: - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunityUploadAttachmentResponseV1Schema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Upload an attachment to an opportunity requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/OpportunityUploadAttachmentRequestV1Schema' security: - ApiJwtAuth: &id027 [] - ApiUserKeyAuth: *id027 /v1/organizations/{organization_id}/legacy-users/ignore: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationIgnoreLegacyUserResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Organization Ignore Legacy User requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationIgnoreLegacyUserRequestSchema' security: - ApiJwtAuth: [] /v1/organizations/{organization_id}/saved-opportunities: post: parameters: - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationSaveOpportunityResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Save an opportunity for an organization requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationSaveOpportunityRequestSchema' security: - ApiJwtAuth: [] /v1/organizations/{organization_id}/users/{user_id}: put: parameters: - in: path name: organization_id schema: type: string required: true - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationUpdateUserRolesResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Update roles for an organization user requestBody: content: application/json: schema: $ref: '#/components/schemas/OrganizationUpdateUserRolesRequestSchema' security: - ApiJwtAuth: [] delete: parameters: - in: path name: organization_id schema: type: string required: true - in: path name: user_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationRemoveUserResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Remove a user from an organization security: - ApiJwtAuth: [] /v1/users/{user_id}/saved-searches/{saved_search_id}: put: parameters: - in: path name: user_id schema: type: string required: true - in: path name: saved_search_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserUpdateSavedSearchResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Update Saved Search requestBody: content: application/json: schema: $ref: '#/components/schemas/UserUpdateSavedSearchRequestSchema' security: - ApiJwtAuth: [] delete: parameters: - in: path name: user_id schema: type: string required: true - in: path name: saved_search_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDeleteSavedSearchResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Delete Saved Search security: - ApiJwtAuth: [] /alpha/applications/{application_id}/forms/{form_id}: put: parameters: - in: path name: application_id schema: type: string required: true - in: path name: form_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationFormUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Update an application form response requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationFormUpdateRequestSchema' security: - ApiJwtAuth: [] /alpha/award-recommendations/{award_recommendation_id}/risks: post: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Create Award Recommendation Risk description: Create a risk for an award recommendation, linking it to application submissions. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskRequestSchema' security: - ApiJwtAuth: &id028 [] - ApiUserKeyAuth: *id028 /v1/users/{user_id}/saved-opportunities/{opportunity_id}: delete: parameters: - in: path name: user_id schema: type: string required: true - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDeleteSavedOpportunityResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Delete Saved Opportunity security: - ApiJwtAuth: [] /alpha/award-recommendations/{award_recommendation_id}/risks/list: post: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: List Award Recommendation Risks description: Get paginated list of risks for an award recommendation. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskListRequestSchema' security: - ApiJwtAuth: &id029 [] - ApiUserKeyAuth: *id029 /v1/users/{user_id}/invitations/{invitation_id}/organizations: post: parameters: - in: path name: user_id schema: type: string required: true - in: path name: invitation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserResponseOrgInvitationResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - User v1 - Internal Only summary: User Response Org Invitation requestBody: content: application/json: schema: $ref: '#/components/schemas/UserResponseOrgInvitationRequestSchema' security: - ApiJwtAuth: [] /v1/users/{user_id}/saved-opportunities/{legacy_opportunity_id}: delete: parameters: - in: path name: user_id schema: type: string required: true - in: path name: legacy_opportunity_id schema: type: integer required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDeleteSavedOpportunityResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - User v1 - Internal Only summary: User Delete Saved Opportunity Legacy security: - ApiJwtAuth: [] /alpha/applications/{application_id}/forms/{form_id}/inclusion: put: parameters: - in: path name: application_id schema: type: string required: true - in: path name: form_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationFormInclusionUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Update whether an application form should be included in submission requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationFormInclusionUpdateRequestSchema' security: - ApiJwtAuth: [] /alpha/forms/{form_id}/form_instructions/{form_instruction_id}: put: parameters: - in: path name: form_id schema: type: string required: true - in: path name: form_instruction_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FormInstructionUploadResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Form Alpha summary: Form Instruction Upsert requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/FormInstructionUploadRequestSchema' security: - ApiUserKeyAuth: [] /alpha/award-recommendations/{award_recommendation_id}/audit_history: post: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationAuditResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: List Award Recommendation Audit History description: Get paginated audit history for an award recommendation. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationAuditRequestSchema' security: - ApiJwtAuth: &id030 [] - ApiUserKeyAuth: *id030 /alpha/award-recommendations/{award_recommendation_id}/submissions/list: post: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationSubmissionListResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: List Award Recommendation Submissions description: Get paginated list of application submissions for an award recommendation. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationSubmissionListRequestSchema' security: - ApiJwtAuth: &id031 [] - ApiUserKeyAuth: *id031 /alpha/applications/{application_id}/application_form/{app_form_id}: get: parameters: - in: path name: application_id schema: type: string required: true - in: path name: app_form_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationFormGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Get an application form by ID security: - ApiJwtAuth: &id032 [] - InternalApiJwtAuth: *id032 /alpha/applications/{application_id}/organizations/{organization_id}: put: parameters: - in: path name: application_id schema: type: string required: true - in: path name: organization_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAddOrganizationResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Unprocessable Entity tags: - Application Alpha summary: Add an organization to an application security: - ApiJwtAuth: [] /alpha/award-recommendations/{award_recommendation_id}/submission-details: put: parameters: - in: path name: award_recommendation_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationSubmissionDetailsBatchUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Award Recommendation Alpha summary: Batch Update Award Recommendation Submission Details description: Update multiple submission details for an award recommendation in a single operation. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationSubmissionDetailsBatchUpdateRequestSchema' security: - ApiJwtAuth: &id033 [] - ApiUserKeyAuth: *id033 /v1/organizations/{organization_id}/saved-opportunities/{opportunity_id}: delete: parameters: - in: path name: organization_id schema: type: string required: true - in: path name: opportunity_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationDeleteSavedOpportunityResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Organization v1 summary: Delete a saved opportunity for an organization security: - ApiJwtAuth: [] /alpha/applications/{application_id}/attachments/{application_attachment_id}: get: parameters: - in: path name: application_id schema: type: string required: true - in: path name: application_attachment_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAttachmentGetResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Unprocessable Entity tags: - Application Alpha summary: Fetch an application attachment security: - ApiJwtAuth: [] put: parameters: - in: path name: application_id schema: type: string required: true - in: path name: application_attachment_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAttachmentUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Update an attachment on an application requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/ApplicationAttachmentUpdateRequestSchema' security: - ApiJwtAuth: [] delete: parameters: - in: path name: application_id schema: type: string required: true - in: path name: application_attachment_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApplicationAttachmentDeleteResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found tags: - Application Alpha summary: Delete an application attachment security: - ApiJwtAuth: [] /v1/grantors/opportunities/{opportunity_id}/summaries/{opportunity_summary_id}: put: parameters: - in: path name: opportunity_id schema: type: string required: true - in: path name: opportunity_summary_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpportunitySummaryUpdateResponseV1Schema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Update an existing opportunity summary requestBody: content: application/json: schema: $ref: '#/components/schemas/OpportunitySummaryUpdateRequestV1Schema' security: - ApiJwtAuth: &id034 [] - ApiUserKeyAuth: *id034 /v1/grantors/opportunities/{opportunity_id}/attachments/{opportunity_attachment_id}: delete: parameters: - in: path name: opportunity_id schema: type: string required: true - in: path name: opportunity_attachment_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteAttachmentResponseV1Schema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Internal Server Error tags: - Opportunity v1 - for Grantors summary: Delete an attachment from an opportunity security: - ApiJwtAuth: &id035 [] - ApiUserKeyAuth: *id035 /alpha/award-recommendations/{award_recommendation_id}/risks/{award_recommendation_risk_id}: put: parameters: - in: path name: award_recommendation_id schema: type: string required: true - in: path name: award_recommendation_risk_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Update Award Recommendation Risk description: Update a risk on an award recommendation, including linked application submissions. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskRequestSchema' security: - ApiJwtAuth: &id036 [] - ApiUserKeyAuth: *id036 delete: parameters: - in: path name: award_recommendation_id schema: type: string required: true - in: path name: award_recommendation_risk_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationRiskDeleteResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Delete Award Recommendation Risk description: Soft delete a risk for an award recommendation. security: - ApiJwtAuth: &id037 [] - ApiUserKeyAuth: *id037 /alpha/award-recommendations/{award_recommendation_id}/reviews/{award_recommendation_review_id}: put: parameters: - in: path name: award_recommendation_id schema: type: string required: true - in: path name: award_recommendation_review_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationReviewUpdateResponseSchema' description: Successful response '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Update Award Recommendation Review description: Update a review on an award recommendation. requestBody: content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationReviewUpdateRequestSchema' security: - ApiJwtAuth: &id038 [] - ApiUserKeyAuth: *id038 /alpha/award-recommendations/{award_recommendation_id}/attachments/{award_recommendation_attachment_id}: delete: parameters: - in: path name: award_recommendation_id schema: type: string required: true - in: path name: award_recommendation_attachment_id schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwardRecommendationAttachmentDeleteResponseSchema' description: Successful response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Authentication error '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Not found '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseSchema' description: Forbidden tags: - Award Recommendation Alpha summary: Delete Award Recommendation Attachment description: Soft delete an attachment for an award recommendation. security: - ApiJwtAuth: &id039 [] - ApiUserKeyAuth: *id039 openapi: 3.1.0 components: schemas: HealthcheckMetadataSchema: type: object properties: commit_sha: type: string description: The github commit sha for the latest deployed commit example: ffaca647223e0b6e54344122eefa73401f5ec131 commit_link: type: string description: A github link to the latest deployed commit example: https://github.com/HHS/simpler-grants-gov/commit/main release_notes_link: type: string description: A github link to the release notes - direct if the latest deploy was a release example: https://github.com/HHS/simpler-grants-gov/releases last_deploy_time: type: string format: date-time description: Latest deploy time in US/Eastern timezone deploy_whoami: type: string description: The latest user to deploy the application example: runner HealthcheckResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/HealthcheckMetadataSchema' status_code: type: integer description: The HTTP status code example: 200 ValidationIssueSchema: type: object properties: type: type: string description: The type of error example: invalid message: type: string description: The message to return example: Not a valid string. field: type: string description: The field that failed example: summary.summary_description value: type: string description: The value that failed example: invalid string ErrorResponseSchema: type: object properties: data: description: Additional data that might be useful in resolving an error (see specific endpoints for details, this is used infrequently) example: {} message: type: string description: General description of the error example: Error status_code: type: integer description: The HTTP status code of the error errors: type: array example: [] items: type: - object $ref: '#/components/schemas/ValidationIssueSchema' internal_request_id: type: string description: An internal tracking ID example: 550e8400-e29b-41d4-a716-446655440000 SortOrderSchema: type: object properties: order_by: type: string description: The field that the records were sorted by example: id sort_direction: description: The direction the records are sorted enum: - ascending - descending type: - string PaginationInfoSchema: type: object properties: page_offset: type: integer description: The page number that was fetched example: 1 page_size: type: integer description: The size of the page fetched example: 25 total_records: type: integer description: The total number of records fetchable example: 42 total_pages: type: integer description: The total number of pages that can be fetched example: 2 sort_order: type: array description: The sort order passed in originally items: type: - object $ref: '#/components/schemas/SortOrderSchema' ExtractMetadataResponseSchema: type: object properties: download_path: type: string description: The file's download path file_size_bytes: type: integer description: The size of the file in bytes example: 1024 created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true extract_metadata_id: type: string format: uuid description: The ID of the extract metadata example: 123e4567-e89b-12d3-a456-426614174000 extract_type: type: string description: The type of extract example: opportunity_data_extract ExtractMetadataListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: &id040 - object $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: A list of extract metadata records items: type: - object $ref: '#/components/schemas/ExtractMetadataResponseSchema' status_code: type: integer description: The HTTP status code example: 200 DateRangeSchema: type: object properties: start_date: type: - string - 'null' format: date end_date: type: - string - 'null' format: date required: - end_date - start_date ExtractMetadataFilterV1Schema: type: object properties: extract_type: description: The type of extract to filter by example: opportunities_json enum: - opportunities_json - opportunities_csv type: - string - 'null' - 'null' created_at: type: - object $ref: '#/components/schemas/DateRangeSchema' SortOrderExtractMetadataPaginationV1Schema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction ExtractMetadataPaginationV1Schema: type: object properties: sort_order: type: array minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderExtractMetadataPaginationV1Schema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size - sort_order ExtractMetadataRequestSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The REST resource object status_code: type: integer description: The HTTP status code example: 200 filters: type: - object $ref: '#/components/schemas/ExtractMetadataFilterV1Schema' pagination: type: - object $ref: '#/components/schemas/ExtractMetadataPaginationV1Schema' required: - pagination InternalRoleAssignmentResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The REST resource object status_code: type: integer description: The HTTP status code example: 200 InternalRoleAssignmentRequestSchema: type: object properties: internal_role_id: type: string format: uuid description: The UUID of the internal role to assign example: 57e8875f-c154-41be-a5f6-602f4c92d6e6 user_email: type: string description: The email address of the user receiving the role example: example@example.com required: - internal_role_id - user_email LocalUserTokenSchema: type: object properties: user_id: type: string format: uuid description: The ID of the user example: 123e4567-e89b-12d3-a456-426614174000 first_name: type: string description: The first name of the user example: Bob last_name: type: string description: The last name of the user example: Smith oauth_id: type: string description: The OAuth id of the user - can be used to login locally via our mock OAuth server example: my_example_user user_jwt: type: string description: The JWT of the user, can be used with our X-SGG-Token auth example: abc123 user_api_key: type: string description: The API key of the user, can be used with our X-API-Key auth example: my_example_user_token LocalUserTokenResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array items: type: - object $ref: '#/components/schemas/LocalUserTokenSchema' status_code: type: integer description: The HTTP status code example: 200 AgencyV1Schema: type: object properties: agency_id: type: string format: uuid description: The internal ID of the agency example: 123e4567-e89b-12d3-a456-426614174000 agency_name: type: string description: The name of the agency who created the opportunity example: Department of Examples agency_code: type: string description: The agency who created the opportunity example: ABC top_level_agency: type: - object - 'null' anyOf: - $ref: '#/components/schemas/AgencyV1Schema' - type: 'null' is_test_agency: type: boolean description: Indicates if the agency is a test agency. example: false opportunity_statuses: type: array description: List of opportunity statuses the agency is linked with. example: - posted items: enum: - forecasted - posted - closed - archived type: - string created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true AgencySearchResponseV1Schema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array items: $ref: '#/components/schemas/AgencyV1Schema' status_code: type: integer description: The HTTP status code example: 200 HasActiveOpportunityFilterV1Schema: type: object properties: one_of: type: - array - 'null' items: type: boolean example: true OpportunityStatusesFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: type: string example: archived IsTestAgencyFilterV1Schema: type: object properties: one_of: type: - array - 'null' items: type: boolean example: true AgencySearchFilterV1Schema: type: object properties: has_active_opportunity: type: - object $ref: '#/components/schemas/HasActiveOpportunityFilterV1Schema' opportunity_statuses: type: - object $ref: '#/components/schemas/OpportunityStatusesFilterV1Schema' is_test_agency: type: - object $ref: '#/components/schemas/IsTestAgencyFilterV1Schema' SortOrderAgencySearchPaginationV1Schema: type: object properties: order_by: type: string enum: - agency_code - agency_name description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction AgencySearchPaginationV1Schema: type: object properties: sort_order: type: array default: - order_by: agency_code sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderAgencySearchPaginationV1Schema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size AgencySearchRequestSchema: type: object properties: query: type: string minLength: 1 maxLength: 100 description: Query string which searches against several text fields example: research query_operator: default: !!python/object/apply:src.api.opportunities_v1.opportunity_schemas.SearchQueryOperator - OR description: Query operator for combining search conditions example: OR enum: - AND - OR type: - string filters: type: - object $ref: '#/components/schemas/AgencySearchFilterV1Schema' pagination: type: - object $ref: '#/components/schemas/AgencySearchPaginationV1Schema' required: - pagination WorkflowEventResponseDataSchema: type: object properties: event_id: type: string format: uuid description: The tracking ID for the workflow event example: 123e4567-e89b-12d3-a456-426614174000 WorkflowEventResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/WorkflowEventResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 StartWorkflowContextSchema: type: object properties: workflow_type: description: The type of workflow to initiate enum: - opportunity_publish - application_submission - initial_prototype - basic_test_workflow - no_concurrent_test_workflow - limited_approval_test_workflow type: - string entity_type: description: The type of entity to associate with the workflow - different workflows require different entities. enum: - opportunity - application - award_recommendation type: - string entity_id: type: string format: uuid description: The ID of the entity, for example an opportunity_id example: 123e4567-e89b-12d3-a456-426614174000 required: - entity_id - entity_type - workflow_type ProcessWorkflowContextSchema: type: object properties: workflow_id: type: string format: uuid description: The ID of the existing workflow to progress example: 123e4567-e89b-12d3-a456-426614174000 event_to_send: type: string minLength: 1 description: The specific event/action to trigger in the state machine example: approve required: - event_to_send - workflow_id WorkflowEventRequestSchema: type: object properties: event_type: description: 'The category of event: either starting a new workflow or processing an existing one' enum: - start_workflow - process_workflow type: - string start_workflow_context: description: Context and entities required to initialize a new workflow. Only allowed if event_type is 'start_workflow'. type: - object $ref: '#/components/schemas/StartWorkflowContextSchema' process_workflow_context: description: Information required to progress an existing workflow state. Only allowed if event_type is 'process_workflow'. type: - object $ref: '#/components/schemas/ProcessWorkflowContextSchema' metadata: type: object default: {} description: 'A freeform JSON object for the particular event, if needed[cite: 127].' example: source_system: grants_solutions priority: high additionalProperties: {} required: - event_type UserTokenLogoutResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserTokenRefreshResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 OpportunityAssistanceListingV1Schema: type: object properties: program_title: type: - string - 'null' description: The name of the program, see https://sam.gov/content/assistance-listings for more detail example: Space Technology assistance_listing_number: type: - string - 'null' description: The assistance listing number, see https://sam.gov/content/assistance-listings for more detail example: '43.012' OpportunitySummaryV1Schema: type: object properties: summary_description: type: - string - 'null' description: The summary of the opportunity example: This opportunity aims to unravel the mysteries of the universe. is_cost_sharing: type: - boolean - 'null' description: Whether or not the opportunity has a cost sharing/matching requirement is_forecast: type: boolean description: Whether the opportunity is forecasted, that is, the information is only an estimate and not yet official example: false close_date: type: - string - 'null' format: date description: The date that the opportunity will close - only set if is_forecast=False close_date_description: type: - string - 'null' description: Optional details regarding the close date example: Proposals are due earlier than usual. post_date: type: - string - 'null' format: date description: The date the opportunity was posted archive_date: type: - string - 'null' format: date description: When the opportunity will be archived expected_number_of_awards: type: - integer - 'null' description: The number of awards the opportunity is expected to award example: 10 estimated_total_program_funding: type: - integer - 'null' description: The total program funding of the opportunity in US Dollars example: 10000000 award_floor: type: - integer - 'null' description: The minimum amount an opportunity would award example: 10000 award_ceiling: type: - integer - 'null' description: The maximum amount an opportunity would award example: 100000 additional_info_url: type: - string - 'null' description: A URL to a website that can provide additional information about the opportunity example: grants.gov additional_info_url_description: type: - string - 'null' description: The text to display for the additional_info_url link example: Click me for more info forecasted_post_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be posted, and transition out of being a forecast forecasted_close_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be close once posted. forecasted_close_date_description: type: - string - 'null' description: Forecasted opportunity only. Optional details regarding the forecasted closed date. example: Proposals will probably be due on this date forecasted_award_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor plans to award the opportunity. forecasted_project_start_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor expects the award recipient should start their project fiscal_year: type: - integer - 'null' description: Forecasted opportunity only. The fiscal year the project is expected to be funded and launched funding_category_description: type: - string - 'null' description: Additional information about the funding category example: Economic Support applicant_eligibility_description: type: - string - 'null' description: Additional information about the types of applicants that are eligible example: All types of domestic applicants are eligible to apply agency_contact_description: type: - string - 'null' description: Information regarding contacting the agency who owns the opportunity example: For more information, reach out to Jane Smith at agency US-ABC agency_email_address: type: - string - 'null' description: The contact email of the agency who owns the opportunity example: fake_email@grants.gov agency_email_address_description: type: - string - 'null' description: The text for the link to the agency email address example: Click me to email the agency version_number: type: - integer - 'null' description: The version number of the opportunity summary example: 1 funding_instruments: type: array items: enum: &id041 - cooperative_agreement - grant - procurement_contract - other type: &id042 - string funding_categories: type: array items: enum: &id043 - recovery_act - agriculture - arts - business_and_commerce - community_development - consumer_protection - disaster_prevention_and_relief - education - employment_labor_and_training - energy - environment - food_and_nutrition - health - housing - humanities - infrastructure_investment_and_jobs_act - information_and_statistics - income_security_and_social_services - law_justice_and_legal_services - natural_resources - opportunity_zone_benefits - regional_development - science_technology_and_other_research_and_development - transportation - affordable_care_act - other - energy_infrastructure_and_critical_mineral_and_materials - recreation_and_tourism type: &id044 - string applicant_types: type: array items: enum: &id045 - state_governments - county_governments - city_or_township_governments - special_district_governments - independent_school_districts - public_and_state_institutions_of_higher_education - private_institutions_of_higher_education - federally_recognized_native_american_tribal_governments - other_native_american_tribal_organizations - public_and_indian_housing_authorities - nonprofits_non_higher_education_with_501c3 - nonprofits_non_higher_education_without_501c3 - individuals - for_profit_organizations_other_than_small_businesses - small_businesses - other - unrestricted type: &id046 - string created_at: type: string format: date-time description: When the opportunity summary was created updated_at: type: string format: date-time description: When the opportunity summary was last updated OpportunityV1Schema: type: object properties: opportunity_id: type: string format: uuid description: The internal ID of the opportunity example: 123e4567-e89b-12d3-a456-426614174000 legacy_opportunity_id: type: - integer - 'null' description: The internal legacy ID of the opportunity example: 12345 opportunity_number: type: - string - 'null' description: The funding opportunity number example: ABC-123-XYZ-001 opportunity_title: type: - string - 'null' description: The title of the opportunity example: Research into conservation techniques agency: type: - string - 'null' description: 'DEPRECATED - use: agency_code' example: US-ABC agency_code: type: - string - 'null' description: The agency who created the opportunity example: US-ABC agency_name: type: - string - 'null' description: The name of the agency who created the opportunity example: Department of Examples top_level_agency_name: type: - string - 'null' description: The name of the top level agency who created the oppportunity example: Department of Examples category: description: The opportunity category example: !!python/object/apply:src.constants.lookup_constants.OpportunityCategory - discretionary enum: &id047 - discretionary - mandatory - continuation - earmark - other type: - string - 'null' - 'null' category_explanation: type: - string - 'null' description: Explanation of the category when the category is 'O' (other) example: null opportunity_assistance_listings: type: array items: type: &id048 - object $ref: '#/components/schemas/OpportunityAssistanceListingV1Schema' summary: type: &id049 - object $ref: '#/components/schemas/OpportunitySummaryV1Schema' opportunity_status: description: The current status of the opportunity example: !!python/object/apply:src.constants.lookup_constants.OpportunityStatus - posted enum: &id050 - forecasted - posted - closed - archived type: &id051 - string top_level_agency_code: type: - string - 'null' description: The top-level (parent) agency example: HHS created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true OpportunityFacetV1Schema: type: object properties: opportunity_status: type: object description: The counts of opportunity_status values in the full response example: posted: 1 forecasted: 2 additionalProperties: type: integer applicant_type: type: object description: The counts of applicant_type values in the full response example: state_governments: 3 county_governments: 2 city_or_township_governments: 1 additionalProperties: type: integer funding_instrument: type: object description: The counts of funding_instrument values in the full response example: cooperative_agreement: 4 grant: 3 additionalProperties: type: integer funding_category: type: object description: The counts of funding_category values in the full response example: recovery_act: 2 arts: 3 agriculture: 5 additionalProperties: type: integer agency: type: object description: The counts of agency values in the full response example: USAID: 4 DOC: 3 additionalProperties: type: integer is_cost_sharing: type: object description: The counts of is_cost_sharing values in the full response example: 'true': 1 'false': 3 additionalProperties: type: integer close_date: type: object description: The counts of close_date values in the full response additionalProperties: type: integer post_date: type: object description: The counts of post_date values in the full response additionalProperties: type: integer OpportunitySearchResponseV1Schema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array items: $ref: '#/components/schemas/OpportunityV1Schema' status_code: type: integer description: The HTTP status code example: 200 facet_counts: description: Counts of filter/facet values in the full response type: - object $ref: '#/components/schemas/OpportunityFacetV1Schema' FundingInstrumentFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: enum: - cooperative_agreement - grant - procurement_contract - other type: - string FundingCategoryFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: enum: - recovery_act - agriculture - arts - business_and_commerce - community_development - consumer_protection - disaster_prevention_and_relief - education - employment_labor_and_training - energy - environment - food_and_nutrition - health - housing - humanities - infrastructure_investment_and_jobs_act - information_and_statistics - income_security_and_social_services - law_justice_and_legal_services - natural_resources - opportunity_zone_benefits - regional_development - science_technology_and_other_research_and_development - transportation - affordable_care_act - other - energy_infrastructure_and_critical_mineral_and_materials - recreation_and_tourism type: - string ApplicantTypeFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: enum: - state_governments - county_governments - city_or_township_governments - special_district_governments - independent_school_districts - public_and_state_institutions_of_higher_education - private_institutions_of_higher_education - federally_recognized_native_american_tribal_governments - other_native_american_tribal_organizations - public_and_indian_housing_authorities - nonprofits_non_higher_education_with_501c3 - nonprofits_non_higher_education_without_501c3 - individuals - for_profit_organizations_other_than_small_businesses - small_businesses - other - unrestricted type: - string OpportunityStatusFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: enum: - forecasted - posted - closed - archived type: - string AgencyOppSearchFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: type: string minLength: 2 example: USAID AssistanceListingNumberFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: type: string pattern: ^\d{2}\.[A-Za-z0-9]{2,3}$ example: '45.149' IsCostSharingFilterV1Schema: type: object properties: one_of: type: - array - 'null' items: type: boolean example: true ExpectedNumberAwardsFilterV1Schema: type: object properties: min: type: - integer - 'null' minimum: 0 example: 0 max: type: - integer - 'null' minimum: 0 example: 25 AwardFloorFilterV1Schema: type: object properties: min: type: - integer - 'null' minimum: 0 example: 0 max: type: - integer - 'null' minimum: 0 example: 10000 AwardCeilingFilterV1Schema: type: object properties: min: type: - integer - 'null' minimum: 0 example: 0 max: type: - integer - 'null' minimum: 0 example: 10000000 EstimatedTotalProgramFundingFilterV1Schema: type: object properties: min: type: - integer - 'null' minimum: 0 example: 0 max: type: - integer - 'null' minimum: 0 example: 10000000 PostDateFilterV1Schema: type: object properties: start_date: type: - string - 'null' format: date end_date: type: - string - 'null' format: date start_date_relative: type: - integer - 'null' minimum: -1000000 maximum: 1000000 end_date_relative: type: - integer - 'null' minimum: -1000000 maximum: 1000000 CloseDateFilterV1Schema: type: object properties: start_date: type: - string - 'null' format: date end_date: type: - string - 'null' format: date start_date_relative: type: - integer - 'null' minimum: -1000000 maximum: 1000000 end_date_relative: type: - integer - 'null' minimum: -1000000 maximum: 1000000 TopLevelAgencyOppSearchFilterV1Schema: type: object properties: one_of: type: array minItems: 1 items: type: string minLength: 2 example: USAID OpportunitySearchFilterV1Schema: type: object properties: funding_instrument: type: - object $ref: '#/components/schemas/FundingInstrumentFilterV1Schema' funding_category: type: - object $ref: '#/components/schemas/FundingCategoryFilterV1Schema' applicant_type: type: - object $ref: '#/components/schemas/ApplicantTypeFilterV1Schema' opportunity_status: type: - object $ref: '#/components/schemas/OpportunityStatusFilterV1Schema' agency: type: - object $ref: '#/components/schemas/AgencyOppSearchFilterV1Schema' assistance_listing_number: type: - object $ref: '#/components/schemas/AssistanceListingNumberFilterV1Schema' is_cost_sharing: type: - object $ref: '#/components/schemas/IsCostSharingFilterV1Schema' expected_number_of_awards: type: - object $ref: '#/components/schemas/ExpectedNumberAwardsFilterV1Schema' award_floor: type: - object $ref: '#/components/schemas/AwardFloorFilterV1Schema' award_ceiling: type: - object $ref: '#/components/schemas/AwardCeilingFilterV1Schema' estimated_total_program_funding: type: - object $ref: '#/components/schemas/EstimatedTotalProgramFundingFilterV1Schema' post_date: type: - object $ref: '#/components/schemas/PostDateFilterV1Schema' close_date: type: - object $ref: '#/components/schemas/CloseDateFilterV1Schema' top_level_agency: type: - object $ref: '#/components/schemas/TopLevelAgencyOppSearchFilterV1Schema' ExperimentalV1Schema: type: object properties: scoring_rule: default: !!python/object/apply:src.services.opportunities_v1.experimental_constant.ScoringRule - default description: Scoring rule to query against OpenSearch enum: - default - expanded - agency type: - string SortOrderOpportunityPaginationV1Schema: type: object properties: order_by: type: string enum: - relevancy - opportunity_id - opportunity_number - opportunity_title - post_date - close_date - agency_code - agency_name - top_level_agency_name - award_floor - award_ceiling description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction OpportunityPaginationV1Schema: type: object properties: sort_order: type: array default: - order_by: opportunity_id sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderOpportunityPaginationV1Schema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size OpportunitySearchRequestV1Schema: type: object properties: query: type: string minLength: 1 maxLength: 100 description: Query string which searches against several text fields example: research query_operator: default: !!python/object/apply:src.api.opportunities_v1.opportunity_schemas.SearchQueryOperator - AND description: Query operator for combining search conditions example: OR enum: - AND - OR type: - string filters: type: - object $ref: '#/components/schemas/OpportunitySearchFilterV1Schema' experimental: type: - object $ref: '#/components/schemas/ExperimentalV1Schema' pagination: type: - object $ref: '#/components/schemas/OpportunityPaginationV1Schema' format: default: !!python/object/apply:src.api.opportunities_v1.opportunity_schemas.SearchResponseFormat - json description: Response serialization. `json` returns the standard envelope with facet counts. `csv` returns a CSV file; pagination and sort_order match the JSON response for the same request. For a bulk export (up to 5000 rows, fixed sort by post_date descending), use `POST /v1/opportunities/search/csv` instead. enum: - json - csv type: - string required: - pagination UserProfile: type: object properties: first_name: type: string description: The first name of the user example: John middle_name: type: - string - 'null' description: The middle name of the user example: Hoover last_name: type: string description: The last name of the user example: Smith UserSchema: type: object properties: user_id: type: string description: The internal ID of a user example: 861a0148-cf2c-432b-b0b3-690016299ab1 email: type: string description: The email address returned from Oauth2 provider example: user@example.com external_user_type: description: The Oauth2 provider through which a user was authenticated example: !!python/object/apply:src.constants.lookup_constants.ExternalUserType - login_gov enum: - login_gov type: - string profile: type: - object - 'null' anyOf: - $ref: '#/components/schemas/UserProfile' - type: 'null' UserGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/UserSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationStartResponseDataSchema: type: object properties: application_id: type: string format: uuid description: The unique identifier of the newly created application example: 789f0123-f45g-67h8-i901-234567890123 ApplicationStartResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationStartResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationStartRequestSchema: type: object properties: competition_id: type: string format: uuid description: The unique identifier of the competition to create an application for example: 123e4567-e89b-12d3-a456-426614174000 application_name: type: - string - 'null' description: Optional name for the application example: My Research Grant Application organization_id: type: - string - 'null' format: uuid description: Optional organization ID to associate with the application example: 456e7890-e12c-34f5-b678-901234567890 intends_to_add_organization: type: - boolean - 'null' description: Whether the user intends to add an organization later when applying as an individual example: true required: - competition_id OpportunitySummaryDetailSchema: type: object properties: summary_description: type: - string - 'null' description: The summary of the opportunity example: This opportunity aims to unravel the mysteries of the universe. is_cost_sharing: type: - boolean - 'null' description: Whether or not the opportunity has a cost sharing/matching requirement is_forecast: type: boolean description: Whether the opportunity is forecasted, that is, the information is only an estimate and not yet official example: false close_date: type: - string - 'null' format: date description: The date that the opportunity will close - only set if is_forecast=False close_date_description: type: - string - 'null' description: Optional details regarding the close date example: Proposals are due earlier than usual. post_date: type: - string - 'null' format: date description: The date the opportunity was posted archive_date: type: - string - 'null' format: date description: When the opportunity will be archived expected_number_of_awards: type: - integer - 'null' description: The number of awards the opportunity is expected to award example: 10 estimated_total_program_funding: type: - integer - 'null' description: The total program funding of the opportunity in US Dollars example: 10000000 award_floor: type: - integer - 'null' description: The minimum amount an opportunity would award example: 10000 award_ceiling: type: - integer - 'null' description: The maximum amount an opportunity would award example: 100000 additional_info_url: type: - string - 'null' description: A URL to a website that can provide additional information about the opportunity example: grants.gov additional_info_url_description: type: - string - 'null' description: The text to display for the additional_info_url link example: Click me for more info forecasted_post_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be posted, and transition out of being a forecast forecasted_close_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be close once posted. forecasted_close_date_description: type: - string - 'null' description: Forecasted opportunity only. Optional details regarding the forecasted closed date. example: Proposals will probably be due on this date forecasted_award_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor plans to award the opportunity. forecasted_project_start_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor expects the award recipient should start their project fiscal_year: type: - integer - 'null' description: Forecasted opportunity only. The fiscal year the project is expected to be funded and launched funding_category_description: type: - string - 'null' description: Additional information about the funding category example: Economic Support applicant_eligibility_description: type: - string - 'null' description: Additional information about the types of applicants that are eligible example: All types of domestic applicants are eligible to apply agency_contact_description: type: - string - 'null' description: Information regarding contacting the agency who owns the opportunity example: For more information, reach out to Jane Smith at agency US-ABC agency_email_address: type: - string - 'null' description: The contact email of the agency who owns the opportunity example: fake_email@grants.gov agency_email_address_description: type: - string - 'null' description: The text for the link to the agency email address example: Click me to email the agency version_number: type: - integer - 'null' description: The version number of the opportunity summary example: 1 funding_instruments: type: array items: enum: *id041 type: *id042 funding_categories: type: array items: enum: *id043 type: *id044 applicant_types: type: array items: enum: *id045 type: *id046 created_at: type: string format: date-time description: When the opportunity summary was created updated_at: type: string format: date-time description: When the opportunity summary was last updated opportunity_summary_id: type: string format: uuid description: Unique identifier for the opportunity summary example: 123e4567-e89b-12d3-a456-426614174000 required: - opportunity_summary_id OpportunityAttachmentV1Schema: type: object properties: download_path: type: string description: The file's download path file_size_bytes: type: integer description: The size of the file in bytes example: 1024 created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true opportunity_attachment_id: type: string format: uuid description: The unique ID of the attachment example: 123e4567-e89b-12d3-a456-426614174000 mime_type: type: string description: The MIME type of the attachment example: application/pdf file_name: type: string description: The name of the attachment file example: my_NOFO.pdf file_description: type: string description: A description of the attachment example: The full announcement NOFO FormInstructionSchema: type: object properties: form_instruction_id: type: string format: uuid description: The UUID of the form instruction example: 123e4567-e89b-12d3-a456-426614174000 file_name: type: string description: The name of the form instruction file example: instructions.pdf download_path: type: string description: The download URL for the form instruction file created_at: type: string format: date-time description: The timestamp when the form instruction was created updated_at: type: string format: date-time description: The timestamp when the form instruction was last updated FormAlphaSchema: type: object properties: form_id: type: string format: uuid description: The primary key ID of the form example: 123e4567-e89b-12d3-a456-426614174000 form_name: type: string description: The name of the form example: ABC Project Form short_form_name: type: string description: The short name of the form used for making files example: abc_project form_version: type: string description: The version of the form example: '1.0' agency_code: type: string description: The agency code for the form example: SGG omb_number: type: - string - 'null' description: The OMB number for the form example: 4040-0001 legacy_form_id: type: - integer - 'null' description: The legacy form ID example: 123 form_json_schema: type: object description: The JSON Schema representation of the form example: type: object title: Test form for testing properties: Title: title: Title type: string minLength: 1 maxLength: 60 Description: title: Description for application type: string minLength: 0 maxLength: 15 ApplicationNumber: title: Application number type: number minLength: 1 maxLength: 120 Date: title: 'Date of application ' type: string format: date additionalProperties: {} form_ui_schema: description: The UI Schema of the form for front-end rendering example: - type: field definition: /properties/Title - type: field definition: /properties/Description - type: field definition: /properties/ApplicationNumber - type: field definition: /properties/Date form_instruction: description: The instruction file for the form, if available type: - object - 'null' anyOf: - $ref: '#/components/schemas/FormInstructionSchema' - type: 'null' form_rule_schema: type: - object - 'null' description: The rule schema for the form additionalProperties: {} json_to_xml_schema: type: - object - 'null' description: The JSON to XML schema mapping configuration for the form additionalProperties: {} form_type: description: The type of the form example: !!python/object/apply:src.constants.lookup_constants.FormType - SF424 enum: - SF424 - SF424A - SF424B - SF424D - SFLLL - ProjectNarrativeAttachment - BudgetNarrativeAttachment - OtherNarrativeAttachment - ProjectAbstractSummary - ProjectAbstract - CD511 - SupplementaryNEHCoverSheet - GGLobbyingForm - EPAForm4700-4 - EPAKeyContacts - AttachmentForm - ProjectPerformanceSiteLocation type: - string - 'null' - 'null' sgg_version: type: - string - 'null' description: The SGG version of the form example: '1.0' is_deprecated: type: - boolean - 'null' description: Whether the form is deprecated example: false created_at: type: string format: date-time description: The timestamp when the form was created updated_at: type: string format: date-time description: The timestamp when the form was last updated CompetitionFormAlphaSchema: type: object properties: is_required: type: boolean description: Whether the form is required for all applications to the competition form: description: The form template information for this competition type: - object $ref: '#/components/schemas/FormAlphaSchema' CompetitionInstructionAlphaSchema: type: object properties: file_name: type: string description: The name of the instruction file example: competition_instructions.pdf download_path: type: string description: The URL to download the instruction file example: https://cdn.example.com/competition-instructions/file.pdf created_at: type: string format: date-time description: The date and time when the instruction was created updated_at: type: string format: date-time description: The date and time when the instruction was last updated CompetitionAlphaSchema: type: object properties: competition_id: type: string format: uuid description: The competition ID example: 123e4567-e89b-12d3-a456-426614174000 opportunity_id: type: string format: uuid description: The opportunity ID that the competition is associated with example: 123e4567-e89b-12d3-a456-426614174000 competition_forms: type: array description: List of forms required for this competition items: type: - object $ref: '#/components/schemas/CompetitionFormAlphaSchema' competition_instructions: type: array description: List of instruction files associated with this competition items: type: - object $ref: '#/components/schemas/CompetitionInstructionAlphaSchema' competition_title: type: - string - 'null' description: The title of the competition example: Proposal for Advanced Research opening_date: type: - string - 'null' format: date description: The opening date of the competition, the first day applications are accepted closing_date: type: - string - 'null' format: date description: The closing date of the competition, the last day applications are accepted contact_info: type: - string - 'null' description: Contact info getting assistance with the competition example: 'Bob Smith FakeMail@fake.com' opportunity_assistance_listing: description: Assistance listing information for this competition type: - object - 'null' anyOf: - $ref: '#/components/schemas/OpportunityAssistanceListingV1Schema' - type: 'null' open_to_applicants: type: array description: List of applicant types who are eligible for this competition example: - !!python/object/apply:src.constants.lookup_constants.CompetitionOpenToApplicant - individual - !!python/object/apply:src.constants.lookup_constants.CompetitionOpenToApplicant - organization items: enum: - individual - organization type: - string is_open: type: boolean description: Whether the competition is open and accepting applications is_simpler_grants_enabled: type: boolean description: Whether simpler grants are enabled for this competition OpportunityGrantorSchema: type: object properties: opportunity_id: type: string format: uuid description: The internal ID of the opportunity example: 123e4567-e89b-12d3-a456-426614174000 legacy_opportunity_id: type: - integer - 'null' description: The internal legacy ID of the opportunity example: 12345 opportunity_number: type: - string - 'null' description: The funding opportunity number example: ABC-123-XYZ-001 opportunity_title: type: - string - 'null' description: The title of the opportunity example: Research into conservation techniques agency: type: - string - 'null' description: 'DEPRECATED - use: agency_code' example: US-ABC agency_code: type: - string - 'null' description: The agency who created the opportunity example: US-ABC agency_name: type: - string - 'null' description: The name of the agency who created the opportunity example: Department of Examples top_level_agency_name: type: - string - 'null' description: The name of the top level agency who created the oppportunity example: Department of Examples category: description: The opportunity category example: !!python/object/apply:src.constants.lookup_constants.OpportunityCategory - discretionary enum: *id047 type: - string - 'null' - 'null' category_explanation: type: - string - 'null' description: Explanation of the category when the category is 'O' (other) example: null opportunity_assistance_listings: type: array items: type: *id048 $ref: '#/components/schemas/OpportunityAssistanceListingV1Schema' summary: type: *id049 $ref: '#/components/schemas/OpportunitySummaryV1Schema' opportunity_status: description: The current status of the opportunity example: !!python/object/apply:src.constants.lookup_constants.OpportunityStatus - posted enum: *id050 type: *id051 top_level_agency_code: type: - string - 'null' description: The top-level (parent) agency example: HHS created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true is_draft: type: boolean description: Whether the opportunity is a draft forecast_summary: description: The forecast summary of the opportunity (if available) type: - object - 'null' anyOf: - $ref: '#/components/schemas/OpportunitySummaryDetailSchema' - type: 'null' non_forecast_summary: description: The non-forecast summary of the opportunity (if available) type: - object - 'null' anyOf: - $ref: '#/components/schemas/OpportunitySummaryDetailSchema' - type: 'null' attachments: type: array description: List of attachments associated with the opportunity items: type: - object $ref: '#/components/schemas/OpportunityAttachmentV1Schema' competitions: type: array description: List of competitions associated with the opportunity items: type: - object $ref: '#/components/schemas/CompetitionAlphaSchema' OpportunityCreateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunityGrantorSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunityCreateRequestSchema: type: object properties: opportunity_number: type: string maxLength: 40 description: The funding opportunity number (must be unique) example: ABC-2026-001 opportunity_title: type: string maxLength: 255 description: The title of the opportunity example: Research Grant for Climate Innovation agency_id: type: string format: uuid description: The UUID of the agency that will own this opportunity example: 123e4567-e89b-12d3-a456-426614174000 category: description: The opportunity category enum: - discretionary - mandatory - continuation - earmark - other type: - string category_explanation: type: - string - 'null' maxLength: 255 description: Explanation of the category (required when category is 'other') example: Competitive research grant assistance_listing_number: type: string maxLength: 6 description: The Assistance Listing Number example: 12.ABC required: - agency_id - assistance_listing_number - category - opportunity_number - opportunity_title FormResponseAlphaSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/FormAlphaSchema' status_code: type: integer description: The HTTP status code example: 200 warnings: type: array description: A list of warnings - indicating something you may want to be aware of, but did not prevent handling of the request items: type: &id057 - object $ref: '#/components/schemas/ValidationIssueSchema' FormUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/FormAlphaSchema' status_code: type: integer description: The HTTP status code example: 200 FormUpdateRequestSchema: type: object properties: form_name: type: string description: The name of the form example: ABC Project Form short_form_name: type: string description: The short name of the form used for making files example: abc_project form_version: type: string description: The version of the form example: '1.0' agency_code: type: string description: The agency code for the form example: SGG omb_number: type: - string - 'null' description: The OMB number for the form example: 4040-0001 legacy_form_id: type: - integer - 'null' description: The legacy form ID example: 123 form_json_schema: type: object description: The JSON Schema representation of the form example: type: object title: Test form for testing properties: Title: title: Title type: string minLength: 1 maxLength: 60 Description: title: Description for application type: string minLength: 0 maxLength: 15 ApplicationNumber: title: Application number type: number minLength: 1 maxLength: 120 Date: title: 'Date of application ' type: string format: date additionalProperties: {} form_ui_schema: description: The UI Schema of the form for front-end rendering example: - type: field definition: /properties/Title - type: field definition: /properties/Description - type: field definition: /properties/ApplicationNumber - type: field definition: /properties/Date form_instruction_id: type: - string - 'null' format: uuid description: The UUID of the form instruction example: 123e4567-e89b-12d3-a456-426614174000 form_rule_schema: type: - object - 'null' description: The rule schema for the form additionalProperties: {} json_to_xml_schema: type: - object - 'null' description: The JSON to XML schema mapping configuration for the form additionalProperties: {} form_type: description: The type of the form example: !!python/object/apply:src.constants.lookup_constants.FormType - SF424 enum: - SF424 - SF424A - SF424B - SF424D - SFLLL - ProjectNarrativeAttachment - BudgetNarrativeAttachment - OtherNarrativeAttachment - ProjectAbstractSummary - ProjectAbstract - CD511 - SupplementaryNEHCoverSheet - GGLobbyingForm - EPAForm4700-4 - EPAKeyContacts - AttachmentForm - ProjectPerformanceSiteLocation type: - string - 'null' - 'null' sgg_version: type: - string - 'null' description: The SGG version of the form example: '1.0' is_deprecated: type: - boolean - 'null' description: Whether the form is deprecated example: false required: - agency_code - form_json_schema - form_name - form_ui_schema - form_version - short_form_name OpportunitySearchCSVRequestV1Schema: type: object properties: query: type: string minLength: 1 maxLength: 100 description: Query string which searches against several text fields example: research query_operator: default: !!python/object/apply:src.api.opportunities_v1.opportunity_schemas.SearchQueryOperator - AND description: Query operator for combining search conditions example: OR enum: - AND - OR type: - string filters: type: - object $ref: '#/components/schemas/OpportunitySearchFilterV1Schema' additionalProperties: false AwardRecommendationOpportunitySummarySchema: type: object properties: opportunity_status: description: The status of the opportunity enum: - forecasted - posted - closed - archived type: - string - 'null' - 'null' summary_description: type: - string - 'null' description: The summary of the opportunity example: This opportunity aims to unravel the mysteries of the universe. AwardRecommendationOpportunitySchema: type: object properties: opportunity_id: type: string format: uuid description: The opportunity ID example: 123e4567-e89b-12d3-a456-426614174000 opportunity_number: type: - string - 'null' description: The opportunity number example: O-BJA-2025-202930-STG opportunity_title: type: - string - 'null' description: The title of the opportunity example: Research into conservation techniques summary: description: Summary details of the opportunity type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationOpportunitySummarySchema' - type: 'null' AwardRecommendationReviewSchema: type: object properties: award_recommendation_review_id: type: string format: uuid description: The review's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 award_recommendation_review_type: description: The type of the review enum: - merit_review - application_budget_review - programmatic_review - business_and_risk_review type: - string is_reviewed: type: boolean description: Whether the review has been completed SimpleUserSchema: type: object properties: user_id: type: string format: uuid description: ID of the user example: 123e4567-e89b-12d3-a456-426614174000 email: type: string description: Email address of the user example: example@example.com first_name: type: - string - 'null' description: Users first name example: John last_name: type: - string - 'null' description: Users last name example: Smith AwardRecommendationAttachmentSchema: type: object properties: award_recommendation_attachment_id: type: string format: uuid description: The attachment's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 download_path: type: string description: The presigned URL to download the attachment example: https://s3.amazonaws.com/bucket/path/to/my_example.pdf file_name: type: string description: The file name of the attachment example: my_example.pdf award_recommendation_attachment_type: description: The type of the attachment enum: - standard_terms - standard_conditions - program_terms - program_conditions - other type: - string uploading_user: description: The user who uploaded the attachment type: - object $ref: '#/components/schemas/SimpleUserSchema' created_at: type: string format: date-time description: When the attachment was created updated_at: type: string format: date-time description: When the attachment was last updated AwardRecommendationWithAttachmentsSchema: type: object properties: award_recommendation_id: type: string format: uuid description: The award recommendation's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 award_recommendation_number: type: string description: The generated award recommendation number example: AR-26-0001 award_recommendation_status: description: The status of the award recommendation enum: &id052 - draft - in_review - approved type: &id053 - string award_selection_method: description: The method used to select the award enum: &id054 - merit_review_ranking_only - merit_review_ranking_with_other_factors - formula - single_source - sole_source - other type: - string - 'null' - 'null' additional_info: type: - string - 'null' description: Additional info about the opportunity example: Program office requests expedited processing due to deadline in September. selection_method_detail: type: - string - 'null' description: Additional detail about the selection method example: Selection factors included technical merit, past performance, and cost. funding_strategy: type: - string - 'null' description: Funding strategy for award recommendations example: Full funding for top 10 applications, partial funding for next 15 based on available budget. other_key_information: type: - string - 'null' description: Other key information example: This opportunity aligns with the agency's rural access initiative and requires interagency coordination. review_workflow_id: type: - string - 'null' format: uuid description: The workflow ID for the review process example: 123e4567-e89b-12d3-a456-426614174000 opportunity: description: The associated opportunity type: &id055 - object $ref: '#/components/schemas/AwardRecommendationOpportunitySchema' award_recommendation_reviews: type: array description: Reviews associated with the award recommendation items: type: &id056 - object $ref: '#/components/schemas/AwardRecommendationReviewSchema' award_recommendation_attachments: type: array description: Attachments associated with the award recommendation items: type: - object $ref: '#/components/schemas/AwardRecommendationAttachmentSchema' AwardRecommendationGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The award recommendation details type: - object $ref: '#/components/schemas/AwardRecommendationWithAttachmentsSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationCreateRequestSchema: type: object properties: opportunity_id: type: string format: uuid description: The opportunity ID for the award recommendation example: 123e4567-e89b-12d3-a456-426614174000 award_selection_method: description: The method used to select the award enum: - merit_review_ranking_only - merit_review_ranking_with_other_factors - formula - single_source - sole_source - other type: - string additional_info: type: - string - 'null' description: Additional info about the award recommendation example: Program office requests expedited processing due to deadline in September. funding_strategy: type: - string - 'null' description: Funding strategy information for the award recommendation example: Full funding for top 10 applications, partial funding for next 15 based on available budget. selection_method_detail: type: - string - 'null' description: Additional details about the selection method example: Top-ranked applicants based on expert panel scores other_key_information: type: - string - 'null' description: Other key information for the award recommendation example: This opportunity aligns with the agency's rural access initiative and requires interagency coordination. required: - award_selection_method - opportunity_id OppStatus: type: object properties: value: type: - string - 'null' description: The status value, from a predefined set of options example: active, forecasted, closed customValue: type: - string - 'null' description: A custom status value description: type: - string - 'null' description: A human-readable description of the status Money: type: object properties: amount: type: string description: The amount of money example: '1000000.0' currency: type: string description: The ISO 4217 currency code example: USD required: - amount - currency OppFunding: type: object properties: details: type: - string - 'null' description: Details about the funding available for this opportunity that don't fit other fields example: Awards are subject to the availability of appropriated funds. totalAmountAvailable: description: Total amount of funding available for this opportunity type: - object - 'null' anyOf: - $ref: '#/components/schemas/Money' - type: 'null' minAwardAmount: description: Minimum amount of funding granted per award type: - object - 'null' anyOf: - $ref: '#/components/schemas/Money' - type: 'null' maxAwardAmount: description: Maximum amount of funding granted per award type: - object - 'null' anyOf: - $ref: '#/components/schemas/Money' - type: 'null' minAwardCount: type: - integer - 'null' description: Minimum number of awards granted example: 1 maxAwardCount: type: - integer - 'null' description: Maximum number of awards granted example: 10 estimatedAwardCount: type: - integer - 'null' description: Estimated number of awards that will be granted example: 5 SingleDateEvent: type: object properties: name: type: - string - 'null' description: Human-readable name of the event example: Application period begins eventType: type: - string - 'null' description: Type of event example: singleDate description: type: - string - 'null' description: Description of what this event represents example: Application period begins date: type: - string - 'null' format: date description: 'Date of the event in ISO 8601 format: YYYY-MM-DD' example: '2026-02-27' time: type: - string - 'null' description: 'Time of the event in ISO 8601 format: HH:MM:SS' example: '11:15:00' OppTimeline: type: object properties: postDate: description: The date (and time) at which the opportunity is posted type: - object - 'null' anyOf: - $ref: '#/components/schemas/SingleDateEvent' - type: 'null' closeDate: description: The date (and time) at which the opportunity closes type: - object - 'null' anyOf: - $ref: '#/components/schemas/SingleDateEvent' - type: 'null' otherDates: description: An optional map of other key dates or events in the opportunity timeline legacySerialId: type: object properties: name: type: string example: legacySerialId fieldType: type: string example: integer schema: type: - string - 'null' format: url example: https://example.com/schema value: type: integer example: 12345 description: type: - string - 'null' example: An integer ID for the opportunity, needed for compatibility with legacy systems required: - fieldType - name - value federalOpportunityNumber: type: object properties: name: type: string example: federalOpportunityNumber fieldType: type: string example: string schema: type: - string - 'null' format: url example: https://example.com/schema value: type: string example: ABC-123-XYZ-001 description: type: - string - 'null' example: The federal opportunity number assigned to this grant opportunity required: - fieldType - name - value AssistanceListingValue: type: object properties: identifier: type: - string - 'null' example: '43.012' programTitle: type: - string - 'null' example: Space Technology assistanceListings: type: object properties: name: type: string example: assistanceListings fieldType: type: string example: array schema: type: - string - 'null' format: url example: https://example.com/schema value: type: array items: type: - object $ref: '#/components/schemas/AssistanceListingValue' description: type: - string - 'null' example: The assistance listing number and program title for this opportunity required: - fieldType - name AgencyValue: type: object properties: code: type: - string - 'null' example: US-ABC name: type: - string - 'null' example: Department of Examples parentName: type: - string - 'null' example: Department of Examples parentCode: type: - string - 'null' example: HHS agency: type: object properties: name: type: string example: agency fieldType: type: string example: object schema: type: - string - 'null' format: url example: https://example.com/schema value: type: - object $ref: '#/components/schemas/AgencyValue' description: type: - string - 'null' example: Information about the agency offering this opportunity required: - fieldType - name - value AttachmentValue: type: object properties: downloadUrl: type: - string - 'null' format: url example: https://example.com/file.pdf name: type: string example: example.pdf description: type: - string - 'null' example: A PDF file with instructions sizeInBytes: type: - integer - 'null' example: 1000 mimeType: type: - string - 'null' example: application/pdf createdAt: type: string format: date-time example: '2025-01-01T17:01:01.000Z' lastModifiedAt: type: string format: date-time example: '2025-01-02T17:30:00.000Z' required: - createdAt - lastModifiedAt - name attachments: type: object properties: name: type: string example: attachments fieldType: type: string example: array schema: type: - string - 'null' format: url example: https://example.com/schema value: type: array items: type: - object $ref: '#/components/schemas/AttachmentValue' description: type: - string - 'null' example: Attachments such as NOFOs and supplemental documents for the opportunity required: - fieldType - name federalFundingSource: type: object properties: name: type: string example: federalFundingSource fieldType: type: string example: string schema: type: - string - 'null' format: url example: https://example.com/schema value: type: string example: discretionary description: type: - string - 'null' example: The category type of the grant opportunity required: - fieldType - name - value fiscalYear: type: object properties: name: type: string example: fiscalYear fieldType: type: string example: integer schema: type: - string - 'null' format: url example: https://example.com/schema value: type: integer example: 2026 description: type: - string - 'null' example: The fiscal year associated with this opportunity required: - fieldType - name - value CostSharingValue: type: object properties: isRequired: type: - boolean - 'null' example: true costSharing: type: object properties: name: type: string example: costSharing fieldType: type: string example: object schema: type: - string - 'null' format: url example: https://example.com/schema value: type: - object $ref: '#/components/schemas/CostSharingValue' description: type: - string - 'null' example: Whether cost sharing or matching funds are required for this opportunity required: - fieldType - name - value AdditionalInfoValue: type: object properties: url: type: - string - 'null' format: url example: https://www.grants.gov description: type: - string - 'null' example: Click me for more info additionalInfo: type: object properties: name: type: string example: additionalInfo fieldType: type: string example: object schema: type: - string - 'null' format: url example: https://example.com/schema value: type: - object $ref: '#/components/schemas/AdditionalInfoValue' description: type: - string - 'null' example: URL and description for additional information about the opportunity required: - fieldType - name - value AgencyContactValue: type: object properties: name: type: - string - 'null' example: Jane Smith email: type: - string - 'null' example: fake_email@grants.gov phone: type: - string - 'null' example: 123-456-7890 description: type: - string - 'null' example: For more information, reach out to Jane Smith at agency US-ABC contactInfo: type: object properties: name: type: string example: contactInfo fieldType: type: string example: object schema: type: - string - 'null' format: url example: https://example.com/schema value: type: - object $ref: '#/components/schemas/AgencyContactValue' description: type: - string - 'null' example: Contact information for the agency managing this opportunity required: - fieldType - name - value OpportunityCustomFields: type: object properties: legacySerialId: type: - object - 'null' anyOf: - $ref: '#/components/schemas/legacySerialId' - type: 'null' federalOpportunityNumber: type: - object - 'null' anyOf: - $ref: '#/components/schemas/federalOpportunityNumber' - type: 'null' assistanceListings: type: - object - 'null' anyOf: - $ref: '#/components/schemas/assistanceListings' - type: 'null' agency: type: - object - 'null' anyOf: - $ref: '#/components/schemas/agency' - type: 'null' attachments: type: - object - 'null' anyOf: - $ref: '#/components/schemas/attachments' - type: 'null' federalFundingSource: type: - object - 'null' anyOf: - $ref: '#/components/schemas/federalFundingSource' - type: 'null' fiscalYear: type: - object - 'null' anyOf: - $ref: '#/components/schemas/fiscalYear' - type: 'null' costSharing: type: - object - 'null' anyOf: - $ref: '#/components/schemas/costSharing' - type: 'null' additionalInfo: type: - object - 'null' anyOf: - $ref: '#/components/schemas/additionalInfo' - type: 'null' contactInfo: type: - object - 'null' anyOf: - $ref: '#/components/schemas/contactInfo' - type: 'null' OpportunityBase: type: object properties: createdAt: description: The timestamp (in UTC) at which the record was created. example: '2026-01-01T00:00:00Z' lastModifiedAt: description: The timestamp (in UTC) at which the record was last modified. example: '2026-02-01T00:00:00Z' id: type: - string - 'null' format: uuid description: Globally unique id for the opportunity example: 123e4567-e89b-12d3-a456-426614174000 title: type: - string - 'null' description: Title or name of the funding opportunity example: Community Health Initiative Grant status: description: Status of the opportunity type: - object - 'null' anyOf: - $ref: '#/components/schemas/OppStatus' - type: 'null' description: type: - string - 'null' description: Description of the opportunity's purpose and scope example: Funding to support community health initiatives in underserved areas. funding: description: Details about the funding available type: - object - 'null' anyOf: - $ref: '#/components/schemas/OppFunding' - type: 'null' keyDates: description: Key dates for the opportunity, such as when the application opens and closes type: - object - 'null' anyOf: - $ref: '#/components/schemas/OppTimeline' - type: 'null' source: description: URL for the original source of the opportunity example: https://grants.gov/web/grants/view-opportunity.html?oppId=12345 customFields: description: Additional custom fields specific to this opportunity type: - object - 'null' anyOf: - $ref: '#/components/schemas/OpportunityCustomFields' - type: 'null' PaginatedResultsInfo: type: object properties: page: type: - integer - 'null' description: The page number to retrieve example: 1 pageSize: type: - integer - 'null' description: The number of items per page example: 10 totalItems: type: integer description: The total number of items example: 100 totalPages: type: integer description: The total number of pages example: 10 required: - totalItems - totalPages OpportunitiesListResponse: type: object properties: status: type: integer description: The HTTP status code message: type: string description: The message items: type: array description: The list of opportunities items: type: - object $ref: '#/components/schemas/OpportunityBase' paginationInfo: description: The pagination details type: - object $ref: '#/components/schemas/PaginatedResultsInfo' required: - items - message - paginationInfo - status UserUpdateProfileResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The updated user profile type: - object $ref: '#/components/schemas/UserProfile' status_code: type: integer description: The HTTP status code example: 200 UserUpdateProfileRequestSchema: type: object properties: first_name: type: string description: The first name of the user example: John middle_name: type: - string - 'null' description: The middle name of the user example: Hoover last_name: type: string description: The last name of the user example: Smith WorkflowUserSchema: type: object properties: user_id: type: string format: uuid description: The user's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 email: type: - string - 'null' description: The user's email address example: user@example.com first_name: type: - string - 'null' description: The user's first name example: John last_name: type: - string - 'null' description: The user's last name example: Smith WorkflowEventHistorySchema: type: object properties: event_id: type: string format: uuid description: The tracking ID for the workflow event example: 123e4567-e89b-12d3-a456-426614174000 sent_at: type: string format: date-time description: When the event was sent WorkflowAuditEventSchema: type: object properties: workflow_audit_id: type: string format: uuid description: The audit event's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 acting_user: description: The user who triggered the transition type: - object $ref: '#/components/schemas/WorkflowUserSchema' transition_event: type: string description: The event that triggered the state transition example: approve source_state: type: string description: The state before the transition example: pending_review target_state: type: string description: The state after the transition example: approved event: description: The workflow event that triggered this audit type: - object $ref: '#/components/schemas/WorkflowEventHistorySchema' audit_metadata: type: - object - 'null' description: Additional metadata about the audit event example: comment: Looks good additionalProperties: {} created_at: type: string format: date-time description: When the audit event was created WorkflowApprovalSchema: type: object properties: workflow_approval_id: type: string format: uuid description: The workflow approval's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 approving_user: description: The user who provided the approval type: - object $ref: '#/components/schemas/WorkflowUserSchema' event_id: type: string format: uuid description: The workflow event that created this approval example: 123e4567-e89b-12d3-a456-426614174000 is_still_valid: type: boolean description: Whether this approval is still valid or has been invalidated example: true comment: type: - string - 'null' description: Optional comment from the approver example: Approved with conditions approval_type: description: The type of approval example: !!python/object/apply:src.constants.lookup_constants.ApprovalType - program_officer_approval enum: - initial_prototype_approval - program_officer_approval - budget_officer_approval type: - string approval_response_type: description: The response type of the approval example: !!python/object/apply:src.constants.lookup_constants.ApprovalResponseType - approved enum: - approved - declined - requires_modification type: - string created_at: type: string format: date-time description: When the approval was created WorkflowApprovalConfigItemSchema: type: object properties: approval_type: description: The type of approval required example: !!python/object/apply:src.constants.lookup_constants.ApprovalType - program_officer_approval enum: - initial_prototype_approval - program_officer_approval - budget_officer_approval type: - string required_privileges: type: array description: List of privileges required to provide this approval example: - !!python/object/apply:src.constants.lookup_constants.Privilege - program_officer_approval items: enum: - manage_org_members - manage_org_admin_members - view_org_membership - start_application - list_application - view_application - modify_application - submit_application - update_form - manage_agency_members - get_submitted_applications - legacy_agency_viewer - legacy_agency_grant_retriever - legacy_agency_assigner - manage_internal_roles - manage_competition - read_test_user_token - view_opportunity - create_opportunity - update_opportunity - publish_opportunity - internal_workflow_access - view_org_saved_opportunities - modify_org_saved_opportunities - internal_workflow_event_send - view_award_recommendation - create_award_recommendation - update_award_recommendation - submit_award_recommendation - program_officer_approval - budget_officer_approval - internal_s3_scan type: - string allowed_approval_response_types: type: array description: List of approval response types allowed for this approval example: - !!python/object/apply:src.constants.lookup_constants.ApprovalResponseType - approved - !!python/object/apply:src.constants.lookup_constants.ApprovalResponseType - requires_modification items: enum: - approved - declined - requires_modification type: - string possible_users: type: array description: List of users in the workflow's agency who have the required privileges items: type: - object $ref: '#/components/schemas/WorkflowUserSchema' WorkflowGetResponseDataSchema: type: object properties: workflow_id: type: string format: uuid description: The workflow's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 workflow_type: description: The type of workflow example: !!python/object/apply:src.constants.lookup_constants.WorkflowType - opportunity_publish enum: - opportunity_publish - application_submission - initial_prototype - basic_test_workflow - no_concurrent_test_workflow - limited_approval_test_workflow type: - string current_workflow_state: type: string description: The current state in the workflow example: draft is_active: type: boolean description: Whether the workflow is active (false when workflow reaches end state) example: true created_at: type: string format: date-time description: When the workflow was created updated_at: type: string format: date-time description: When the workflow was last updated workflow_audit_events: type: array description: Ordered list of audit events (sorted by created_at) items: type: - object $ref: '#/components/schemas/WorkflowAuditEventSchema' workflow_approvals: type: array description: Ordered list of approvals (sorted by created_at) items: type: - object $ref: '#/components/schemas/WorkflowApprovalSchema' workflow_approval_config: type: object description: Configuration mapping event names to approval requirements and possible users example: receive_program_officer_approval: approval_type: PROGRAM_OFFICER_APPROVAL required_privileges: - PROGRAM_OFFICER_APPROVAL possible_users: [] additionalProperties: type: - object $ref: '#/components/schemas/WorkflowApprovalConfigItemSchema' valid_events: type: array description: List of events that can be sent for the current workflow state. Empty if the workflow is no longer active. example: - receive_program_officer_approval items: type: string opportunity_id: type: - string - 'null' format: uuid description: The opportunity ID if this is an opportunity workflow example: 123e4567-e89b-12d3-a456-426614174000 application_id: type: - string - 'null' format: uuid description: The application ID if this is an application workflow example: 123e4567-e89b-12d3-a456-426614174000 application_submission_id: type: - string - 'null' format: uuid description: The application submission ID if this is a submission workflow example: 123e4567-e89b-12d3-a456-426614174000 WorkflowGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The workflow details with audit history and approval configuration type: - object $ref: '#/components/schemas/WorkflowGetResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 UserAgencySchema: type: object properties: agency_id: type: string description: The internal ID of the agency example: 123e4567-e89b-12d3-a456-426614174000 agency_name: type: string description: The name of the agency example: Department of Commerce agency_code: type: string description: The unique code for the agency example: DOC UserAgenciesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of agencies the user is associated with items: type: - object $ref: '#/components/schemas/UserAgencySchema' status_code: type: integer description: The HTTP status code example: 200 UserApiKeySchema: type: object properties: api_key_id: type: string format: uuid description: Unique identifier for the API key record example: 123e4567-e89b-12d3-a456-426614174000 key_name: type: string description: Human-readable name for the API key example: Production API Key key_id: type: string description: The actual API key identifier to use for authentication example: k8w2Xd9Zq1mN3pR7sT5vY4uI is_active: type: boolean description: Whether the API key is currently active example: true last_used: type: - string - 'null' format: date-time description: Timestamp when this API key was last used for authentication example: '2024-01-15T10:30:00Z' created_at: type: string format: date-time description: When this API key was created example: '2024-01-01T12:00:00Z' UserApiKeyCreateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The newly created API key type: - object $ref: '#/components/schemas/UserApiKeySchema' status_code: type: integer description: The HTTP status code example: 200 UserApiKeyCreateRequestSchema: type: object properties: key_name: type: string minLength: 1 maxLength: 255 description: Human-readable name for the API key example: Production API Key required: - key_name AwardRecommendationBaseSchema: type: object properties: award_recommendation_id: type: string format: uuid description: The award recommendation's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 award_recommendation_number: type: string description: The generated award recommendation number example: AR-26-0001 award_recommendation_status: description: The status of the award recommendation enum: *id052 type: *id053 award_selection_method: description: The method used to select the award enum: *id054 type: - string - 'null' - 'null' additional_info: type: - string - 'null' description: Additional info about the opportunity example: Program office requests expedited processing due to deadline in September. selection_method_detail: type: - string - 'null' description: Additional detail about the selection method example: Selection factors included technical merit, past performance, and cost. funding_strategy: type: - string - 'null' description: Funding strategy for award recommendations example: Full funding for top 10 applications, partial funding for next 15 based on available budget. other_key_information: type: - string - 'null' description: Other key information example: This opportunity aligns with the agency's rural access initiative and requires interagency coordination. review_workflow_id: type: - string - 'null' format: uuid description: The workflow ID for the review process example: 123e4567-e89b-12d3-a456-426614174000 opportunity: description: The associated opportunity type: *id055 $ref: '#/components/schemas/AwardRecommendationOpportunitySchema' award_recommendation_reviews: type: array description: Reviews associated with the award recommendation items: type: *id056 $ref: '#/components/schemas/AwardRecommendationReviewSchema' AwardRecommendationListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: The list of award recommendations items: type: - object $ref: '#/components/schemas/AwardRecommendationBaseSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationListAgencyIdFilterSchema: type: object properties: one_of: type: - array - 'null' minItems: 1 items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 AwardRecommendationListFilterSchema: type: object properties: agency_id: description: Filter award recommendations by agency. The user must have the view_award_recommendation privilege in each agency listed. type: - object $ref: '#/components/schemas/AwardRecommendationListAgencyIdFilterSchema' required: - agency_id SortOrderAwardRecommendationListPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction AwardRecommendationListPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderAwardRecommendationListPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size AwardRecommendationListRequestSchema: type: object properties: filters: type: - object $ref: '#/components/schemas/AwardRecommendationListFilterSchema' pagination: type: - object $ref: '#/components/schemas/AwardRecommendationListPaginationSchema' required: - filters - pagination GetUserRolesAndPrivilegesOrganizationSchema: type: object properties: organization_id: type: string description: The internal ID of the organization RoleSchema: type: object properties: role_id: type: string description: The internal ID of a role role_name: type: string description: The name of the role privileges: type: array items: description: Privileges for the role enum: - manage_org_members - manage_org_admin_members - view_org_membership - start_application - list_application - view_application - modify_application - submit_application - update_form - manage_agency_members - get_submitted_applications - legacy_agency_viewer - legacy_agency_grant_retriever - legacy_agency_assigner - manage_internal_roles - manage_competition - read_test_user_token - view_opportunity - create_opportunity - update_opportunity - publish_opportunity - internal_workflow_access - view_org_saved_opportunities - modify_org_saved_opportunities - internal_workflow_event_send - view_award_recommendation - create_award_recommendation - update_award_recommendation - submit_award_recommendation - program_officer_approval - budget_officer_approval - internal_s3_scan type: - string UserOrganization: type: object properties: organization: description: Organization details type: - object $ref: '#/components/schemas/GetUserRolesAndPrivilegesOrganizationSchema' organization_user_roles: type: array items: description: Roles the user has for this organization type: - object $ref: '#/components/schemas/RoleSchema' GetUserRolesAndPrivilegesApplicationSchema: type: object properties: application_id: type: string description: The internal ID of the application organization_id: type: string description: The internal ID of the organization that owns the application UserApplication: type: object properties: application: description: Application details type: - object $ref: '#/components/schemas/GetUserRolesAndPrivilegesApplicationSchema' application_user_roles: type: array items: description: Roles the user has for this application type: - object $ref: '#/components/schemas/RoleSchema' GetUserRolesAndPrivilegesAgencySchema: type: object properties: agency_id: type: string description: The internal ID of the agency UserAgency: type: object properties: agency: description: Agency details type: - object $ref: '#/components/schemas/GetUserRolesAndPrivilegesAgencySchema' agency_user_roles: type: array items: description: Roles the user has for this agency type: - object $ref: '#/components/schemas/RoleSchema' GetRolesAndPrivilegesResponseSchema: type: object properties: user_id: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 organization_users: type: array items: description: List of organizations and the user's roles in each type: - object $ref: '#/components/schemas/UserOrganization' application_users: type: array items: description: List of applications and the user's roles in each type: - object $ref: '#/components/schemas/UserApplication' agency_users: type: array items: description: List of agencies and the user's roles in each type: - object $ref: '#/components/schemas/UserAgency' internal_user_roles: type: array items: description: List of roles and the user's roles & privileges in each type: - object $ref: '#/components/schemas/RoleSchema' UserGetRolesAndPrivilegesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/GetRolesAndPrivilegesResponseSchema' status_code: type: integer description: The HTTP status code example: 200 UserCanAccessResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserCanAccessRequestSchema: type: object properties: resource_id: type: string format: uuid description: The internal ID of the resource example: 123e4567-e89b-12d3-a456-426614174000 resource_type: description: Type of the resource to check access enum: - agency - application - organization type: - string privileges: type: array items: description: List of privileges to verify for the specified resource. enum: - manage_org_members - manage_org_admin_members - view_org_membership - start_application - list_application - view_application - modify_application - submit_application - update_form - manage_agency_members - get_submitted_applications - legacy_agency_viewer - legacy_agency_grant_retriever - legacy_agency_assigner - manage_internal_roles - manage_competition - read_test_user_token - view_opportunity - create_opportunity - update_opportunity - publish_opportunity - internal_workflow_access - view_org_saved_opportunities - modify_org_saved_opportunities - internal_workflow_event_send - view_award_recommendation - create_award_recommendation - update_award_recommendation - submit_award_recommendation - program_officer_approval - budget_officer_approval - internal_s3_scan type: - string SortedResultsInfo: type: object properties: sortBy: type: string description: The field to sort by example: lastModifiedAt customSortBy: type: - string - 'null' description: Implementation-defined sort key example: custom_field_1 sortOrder: type: string description: The order in which the results are sorted example: desc errors: type: array default: [] description: Non-fatal errors that occurred during sorting items: type: string required: - sortBy - sortOrder FilterInfo: type: object properties: filters: description: The filters applied to the response items errors: type: array default: [] description: Non-fatal errors that occurred during filtering items: type: string required: - filters OpportunitiesSearchResponse: type: object properties: status: type: integer description: The HTTP status code message: type: string description: The message items: type: array description: The list of opportunities items: type: - object $ref: '#/components/schemas/OpportunityBase' paginationInfo: description: The pagination details type: - object $ref: '#/components/schemas/PaginatedResultsInfo' sortInfo: description: The sorting details type: - object $ref: '#/components/schemas/SortedResultsInfo' filterInfo: description: The filter details type: - object $ref: '#/components/schemas/FilterInfo' required: - filterInfo - items - message - paginationInfo - sortInfo - status StringArrayFilter: type: object properties: operator: type: string description: The operator to apply to the filter value example: in value: type: array description: The array of string values example: - open - forecasted items: type: string required: - operator - value DateRange: type: object properties: min: description: The minimum date in the range example: '2021-01-01' max: description: The maximum date in the range example: '2021-01-02' DateRangeFilter: type: object properties: operator: type: string description: The operator to apply to the filter value example: between value: description: The date range value type: - object $ref: '#/components/schemas/DateRange' required: - operator - value MoneyRange: type: object properties: min: description: The minimum amount in the range type: - object - 'null' anyOf: - $ref: '#/components/schemas/Money' - type: 'null' max: description: The maximum amount in the range type: - object - 'null' anyOf: - $ref: '#/components/schemas/Money' - type: 'null' MoneyRangeFilter: type: object properties: operator: type: string description: The operator to apply to the filter value example: between value: description: The money range value type: - object $ref: '#/components/schemas/MoneyRange' required: - operator - value OppFilters: type: object properties: status: description: '`status.value` matches one of the following values' type: - object - 'null' anyOf: - $ref: '#/components/schemas/StringArrayFilter' - type: 'null' closeDateRange: description: '`keyDates.closeDate` is between the given range' type: - object - 'null' anyOf: - $ref: '#/components/schemas/DateRangeFilter' - type: 'null' totalFundingAvailableRange: description: '`funding.totalAmountAvailable` is between the given range' type: - object - 'null' anyOf: - $ref: '#/components/schemas/MoneyRangeFilter' - type: 'null' minAwardAmountRange: description: '`funding.minAwardAmount` is between the given range' type: - object - 'null' anyOf: - $ref: '#/components/schemas/MoneyRangeFilter' - type: 'null' maxAwardAmountRange: description: '`funding.maxAwardAmount` is between the given range' type: - object - 'null' anyOf: - $ref: '#/components/schemas/MoneyRangeFilter' - type: 'null' customFilters: type: - object - 'null' description: Additional custom filters to apply to the search example: {} additionalProperties: {} OppSorting: type: object properties: sortBy: type: string enum: - lastModifiedAt - createdAt - title - status.value - keyDates.closeDate - funding.maxAwardAmount - funding.minAwardAmount - funding.totalAmountAvailable - funding.estimatedAwardCount - custom description: The field to sort by sortOrder: type: - string - 'null' description: The sort order (asc or desc) example: desc customSortBy: type: - string - 'null' description: The custom field to sort by when sortBy is 'custom' example: custom_field_1 required: - sortBy PaginatedBodyParams: type: object properties: page: type: - integer - 'null' description: The page number to retrieve example: 1 pageSize: type: - integer - 'null' description: The number of items per page example: 10 OpportunitySearchRequest: type: object properties: search: type: - string - 'null' description: Search query string example: community health filters: description: Filters to apply to the opportunity search type: - object $ref: '#/components/schemas/OppFilters' sorting: description: Sorting parameters for opportunities type: - object $ref: '#/components/schemas/OppSorting' pagination: type: - object $ref: '#/components/schemas/PaginatedBodyParams' SamGovEntityResponseSchema: type: object properties: uei: type: string description: Unique Entity Identifier example: 000123456789 legal_business_name: type: string description: Legal business name from SAM.gov example: Example Inc. expiration_date: type: string format: date description: SAM.gov registration expiration date example: '2025-08-11' ebiz_poc_email: type: string description: Email address of the Electronic Business Point of Contact example: ebiz@example.com ebiz_poc_first_name: type: string description: First name of the Electronic Business Point of Contact example: John ebiz_poc_last_name: type: string description: Last name of the Electronic Business Point of Contact example: Smith UserOrganizationSchema: type: object properties: organization_id: type: string description: The internal ID of the organization example: 123e4567-e89b-12d3-a456-426614174000 sam_gov_entity: description: SAM.gov entity information for the organization type: - object - 'null' anyOf: - $ref: '#/components/schemas/SamGovEntityResponseSchema' - type: 'null' UserApplicationOpportunitySchema: type: object properties: opportunity_id: type: string format: uuid description: The opportunity ID example: 123e4567-e89b-12d3-a456-426614174000 opportunity_title: type: - string - 'null' description: The title of the opportunity example: Research into Conservation Techniques agency_name: type: - string - 'null' description: The name of the agency who created the opportunity example: Department of Examples UserApplicationCompetitionSchema: type: object properties: competition_id: type: string format: uuid description: The competition ID example: 123e4567-e89b-12d3-a456-426614174000 competition_title: type: string description: The title of the competition example: Proposal for Advanced Research opening_date: type: - string - 'null' format: date description: The opening date of the competition, the first day applications are accepted closing_date: type: - string - 'null' format: date description: The closing date of the competition, the last day applications are accepted is_open: type: boolean description: Whether the competition is open and accepting applications opportunity: description: Opportunity information for this competition type: - object $ref: '#/components/schemas/UserApplicationOpportunitySchema' UserApplicationListItemSchema: type: object properties: application_id: type: string format: uuid description: The application ID example: 123e4567-e89b-12d3-a456-426614174000 application_name: type: - string - 'null' description: The name of the application example: my app application_status: description: Status of the application enum: - in_progress - submitted - accepted type: - string organization: description: Organization associated with the application type: - object - 'null' anyOf: - $ref: '#/components/schemas/UserOrganizationSchema' - type: 'null' competition: description: Competition information type: - object $ref: '#/components/schemas/UserApplicationCompetitionSchema' UserApplicationListResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of applications for the user items: type: - object $ref: '#/components/schemas/UserApplicationListItemSchema' status_code: type: integer description: The HTTP status code example: 200 UserApplicationApplicationStatusFiilterSchema: type: object properties: one_of: type: array minItems: 1 items: enum: - in_progress - submitted - accepted type: - string UserApplicationApplicationOrganizationIDFilterSchema: type: object properties: one_of: type: - array - 'null' minItems: 1 items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 UserApplicationApplicationCompetitionIDFilterSchema: type: object properties: one_of: type: - array - 'null' minItems: 1 items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 UserApplicationFilterSchema: type: object properties: application_status: type: - object $ref: '#/components/schemas/UserApplicationApplicationStatusFiilterSchema' organization_id: type: - object $ref: '#/components/schemas/UserApplicationApplicationOrganizationIDFilterSchema' competition_id: type: - object $ref: '#/components/schemas/UserApplicationApplicationCompetitionIDFilterSchema' SortOrderUserApplicationPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction UserApplicationPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderUserApplicationPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size UserApplicationListRequestSchema: type: object properties: filters: type: - object - 'null' anyOf: - $ref: '#/components/schemas/UserApplicationFilterSchema' - type: 'null' pagination: type: - object $ref: '#/components/schemas/UserApplicationPaginationSchema' required: - pagination UserOrganizationsResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of organizations the user is associated with items: type: - object $ref: '#/components/schemas/UserOrganizationSchema' status_code: type: integer description: The HTTP status code example: 200 UserApiKeyListResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of API keys for the user items: type: - object $ref: '#/components/schemas/UserApiKeySchema' status_code: type: integer description: The HTTP status code example: 200 UserApiKeyListRequestSchema: type: object properties: {} WorkflowAuditResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: Ordered list of audit events (sorted by created_at) items: type: - object $ref: '#/components/schemas/WorkflowAuditEventSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderWorkflowAuditPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction WorkflowAuditPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderWorkflowAuditPaginationSchema' page_size: type: integer default: 25 minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer default: 1 minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 WorkflowAuditRequestSchema: type: object properties: pagination: description: Pagination parameters for the workflow audit events type: - object $ref: '#/components/schemas/WorkflowAuditPaginationSchema' required: - pagination OpportunityWithAttachmentsV1Schema: type: object properties: opportunity_id: type: string format: uuid description: The internal ID of the opportunity example: 123e4567-e89b-12d3-a456-426614174000 legacy_opportunity_id: type: - integer - 'null' description: The internal legacy ID of the opportunity example: 12345 opportunity_number: type: - string - 'null' description: The funding opportunity number example: ABC-123-XYZ-001 opportunity_title: type: - string - 'null' description: The title of the opportunity example: Research into conservation techniques agency: type: - string - 'null' description: 'DEPRECATED - use: agency_code' example: US-ABC agency_code: type: - string - 'null' description: The agency who created the opportunity example: US-ABC agency_name: type: - string - 'null' description: The name of the agency who created the opportunity example: Department of Examples top_level_agency_name: type: - string - 'null' description: The name of the top level agency who created the oppportunity example: Department of Examples category: description: The opportunity category example: !!python/object/apply:src.constants.lookup_constants.OpportunityCategory - discretionary enum: *id047 type: - string - 'null' - 'null' category_explanation: type: - string - 'null' description: Explanation of the category when the category is 'O' (other) example: null opportunity_assistance_listings: type: array items: type: *id048 $ref: '#/components/schemas/OpportunityAssistanceListingV1Schema' summary: type: *id049 $ref: '#/components/schemas/OpportunitySummaryV1Schema' opportunity_status: description: The current status of the opportunity example: !!python/object/apply:src.constants.lookup_constants.OpportunityStatus - posted enum: *id050 type: *id051 top_level_agency_code: type: - string - 'null' description: The top-level (parent) agency example: HHS created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true attachments: type: array description: List of attachments associated with the opportunity items: type: - object $ref: '#/components/schemas/OpportunityAttachmentV1Schema' competitions: type: array description: List of competitions associated with the opportunity items: type: - object $ref: '#/components/schemas/CompetitionAlphaSchema' OpportunityGetResponseV1Schema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunityWithAttachmentsV1Schema' status_code: type: integer description: The HTTP status code example: 200 SavedSearchResponseSchema: type: object properties: saved_search_id: type: string format: uuid description: The ID of the saved search example: 123e4567-e89b-12d3-a456-426614174000 name: type: string description: Name of the saved search example: Grant opportunities in California search_query: description: The saved search query parameters type: - object $ref: '#/components/schemas/OpportunitySearchRequestV1Schema' created_at: type: string format: date-time description: When the search was saved example: '2024-01-01T00:00:00Z' UserSaveSearchResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/SavedSearchResponseSchema' status_code: type: integer description: The HTTP status code example: 200 UserSaveSearchRequestSchema: type: object properties: name: type: string description: Name of the saved search example: Example search search_query: type: - object $ref: '#/components/schemas/OpportunitySearchRequestV1Schema' required: - name OrganizationDataSchema: type: object properties: organization_id: type: string format: uuid description: Organization unique identifier example: 123e4567-e89b-12d3-a456-426614174000 sam_gov_entity: description: SAM.gov entity information type: - object - 'null' anyOf: - $ref: '#/components/schemas/SamGovEntityResponseSchema' - type: 'null' OrganizationGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: Organization information type: - object $ref: '#/components/schemas/OrganizationDataSchema' status_code: type: integer description: The HTTP status code example: 200 FileScanResultsDataSchema: type: object properties: status: description: The current scan status of the file example: !!python/object/apply:src.constants.lookup_constants.FileScanStatus - pending enum: - pending - in_progress - complete - infected type: - string required: - status FileScanResultsResponseSchema: type: object properties: data: type: - object $ref: '#/components/schemas/FileScanResultsDataSchema' required: - data UserInvitationOrganizationSchema: type: object properties: organization_id: type: string format: uuid description: Organization unique identifier example: 123e4567-e89b-12d3-a456-426614174000 organization_name: type: - string - 'null' description: Organization name example: Example Organization UserInvitationInviterUserSchema: type: object properties: user_id: type: string format: uuid description: Inviter user unique identifier example: 123e4567-e89b-12d3-a456-426614174000 first_name: type: - string - 'null' description: Inviter first name example: John last_name: type: - string - 'null' description: Inviter last name example: Doe email: type: - string - 'null' description: Inviter email example: admin@org.com UserInvitationRoleSchema: type: object properties: role_id: type: string format: uuid description: Role unique identifier example: 123e4567-e89b-12d3-a456-426614174000 role_name: type: string description: Role name example: Organization Member privileges: type: array description: List of privileges for this role items: enum: - manage_org_members - manage_org_admin_members - view_org_membership - start_application - list_application - view_application - modify_application - submit_application - update_form - manage_agency_members - get_submitted_applications - legacy_agency_viewer - legacy_agency_grant_retriever - legacy_agency_assigner - manage_internal_roles - manage_competition - read_test_user_token - view_opportunity - create_opportunity - update_opportunity - publish_opportunity - internal_workflow_access - view_org_saved_opportunities - modify_org_saved_opportunities - internal_workflow_event_send - view_award_recommendation - create_award_recommendation - update_award_recommendation - submit_award_recommendation - program_officer_approval - budget_officer_approval - internal_s3_scan type: - string UserInvitationItemSchema: type: object properties: organization_invitation_id: type: string format: uuid description: Invitation unique identifier example: 123e4567-e89b-12d3-a456-426614174000 organization: description: Organization information type: - object $ref: '#/components/schemas/UserInvitationOrganizationSchema' status: type: string description: Invitation status example: pending created_at: type: string format: date-time description: When the invitation was created example: '2024-01-08T10:30:00Z' expires_at: type: string format: date-time description: When the invitation expires example: '2024-01-15T10:30:00Z' inviter_user: description: Information about who sent the invitation type: - object $ref: '#/components/schemas/UserInvitationInviterUserSchema' roles: type: array description: Roles that would be assigned if invitation is accepted items: type: - object $ref: '#/components/schemas/UserInvitationRoleSchema' UserInvitationListResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of user invitations items: type: - object $ref: '#/components/schemas/UserInvitationItemSchema' status_code: type: integer description: The HTTP status code example: 200 UserInvitationListRequestSchema: type: object properties: {} ApplicationUpdateResponseDataSchema: type: object properties: application_id: type: string format: uuid description: The unique identifier of the updated application example: 789f0123-f45g-67h8-i901-234567890123 ApplicationUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationUpdateResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 application_form_status: description: Status indicating how much of a form has been filled out enum: - in_progress - complete type: - string ApplicationUpdateRequestSchema: type: object properties: application_name: type: string description: The new name for the application example: Updated Research Grant Application required: - application_name ApplicationAttachmentNoLinkSchema: type: object properties: application_attachment_id: type: string format: uuid description: The ID of the application attachment example: 123e4567-e89b-12d3-a456-426614174000 file_name: type: string description: The name of the application attachment file example: my_example.pdf mime_type: type: string description: The MIME type / content-type of the file example: application/pdf file_size_bytes: type: integer description: The size of the attachment in bytes example: 12340 created_at: type: string format: date-time description: When the application attachment was created updated_at: type: string format: date-time description: When the application attachment was last updated ApplicationFormGetResponseDataSchema: type: object properties: application_form_id: type: string format: uuid description: The unique identifier of the application form example: 123e4567-e89b-12d3-a456-426614174000 application_id: type: string format: uuid description: The unique identifier of the application this form belongs to example: 789f0123-f45g-67h8-i901-234567890123 form_id: type: string format: uuid description: The unique identifier of the form template example: 456e7890-e12c-34f5-b678-901234567890 form: description: The form template information type: - object $ref: '#/components/schemas/FormAlphaSchema' application_response: type: object description: The user's responses to the form fields example: project_title: Advanced AI Research budget_amount: 150000 project_duration: 24 months additionalProperties: {} application_form_status: description: Status indicating how much of a form has been filled out enum: - in_progress - complete type: - string created_at: type: string format: date-time description: When the application form was created updated_at: type: string format: date-time description: When the application form was last updated is_required: type: boolean description: Whether this form is required for the application is_included_in_submission: type: - boolean - 'null' description: Whether this form is included in the application submission application_attachments: type: array description: List of attachments associated with this application form items: type: - object $ref: '#/components/schemas/ApplicationAttachmentNoLinkSchema' application_name: type: string description: The name of the application example: My Research Grant Application application_status: description: Current status of the application example: !!python/object/apply:src.constants.lookup_constants.ApplicationStatus - in_progress enum: - in_progress - submitted - accepted type: - string ApplicationUserSchema: type: object properties: user_id: type: string format: uuid description: The unique identifier of the user example: 123e4567-e89b-12d3-a456-426614174000 email: type: string description: The email address of the user example: user@example.com OrganizationSchema: type: object properties: organization_id: type: string format: uuid description: The unique identifier of the organization example: 456e7890-e12c-34f5-b678-901234567890 sam_gov_entity: description: SAM.gov entity information if organization is registered type: - object - 'null' anyOf: - $ref: '#/components/schemas/SamGovEntityResponseSchema' - type: 'null' ApplicationGetResponseDataSchema: type: object properties: application_id: type: string format: uuid description: The unique identifier of the application example: 789f0123-f45g-67h8-i901-234567890123 competition: description: The competition this application is for type: - object $ref: '#/components/schemas/CompetitionAlphaSchema' application_forms: type: array description: List of forms that are part of this application items: type: - object $ref: '#/components/schemas/ApplicationFormGetResponseDataSchema' application_status: description: Current status of the application example: !!python/object/apply:src.constants.lookup_constants.ApplicationStatus - in_progress enum: - in_progress - submitted - accepted type: - string application_name: type: string description: The name of the application example: My Research Grant Application users: type: array description: List of users who have access to this application items: type: - object $ref: '#/components/schemas/ApplicationUserSchema' organization: description: Organization associated with this application, if any type: - object - 'null' anyOf: - $ref: '#/components/schemas/OrganizationSchema' - type: 'null' intends_to_add_organization: type: - boolean - 'null' description: Whether the user intends to add an organization later when applying as an individual form_validation_warnings: type: object description: Specific form validation issues example: 123e4567-e89b-12d3-a456-426614174000: - field: $ message: '''name'' is a required property' type: required value: null additionalProperties: {} application_attachments: type: array description: List of attachments associated with this application items: type: - object $ref: '#/components/schemas/ApplicationAttachmentNoLinkSchema' ApplicationGetResponseSchema: type: object properties: warnings: type: array description: A list of warnings - indicating something you may want to be aware of, but did not prevent handling of the request items: type: *id057 $ref: '#/components/schemas/ValidationIssueSchema' message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationGetResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 CompetitionResponseAlphaSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/CompetitionAlphaSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunityResponse: type: object properties: status: type: integer description: The HTTP status code message: type: string description: The message data: description: The opportunity type: - object $ref: '#/components/schemas/OpportunityBase' required: - data - message - status UserSaveOpportunityResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserSaveOpportunityRequestSchema: type: object properties: opportunity_id: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - opportunity_id UserSavedSearchesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of saved searches items: type: - object $ref: '#/components/schemas/SavedSearchResponseSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderUserGetSavedSearchPaginationV1Schema: type: object properties: order_by: type: string enum: - created_at - updated_at - name description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction UserGetSavedSearchPaginationV1Schema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderUserGetSavedSearchPaginationV1Schema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size UserSavedSearchesRequestSchema: type: object properties: pagination: type: - object $ref: '#/components/schemas/UserGetSavedSearchPaginationV1Schema' required: - pagination RoleSchema1: type: object properties: role_id: type: string format: uuid description: Role unique identifier example: 123e4567-e89b-12d3-a456-426614174000 role_name: type: string description: Role name example: Organization Admin privileges: type: array description: List of privileges for this role example: - !!python/object/apply:src.constants.lookup_constants.Privilege - manage_org_members items: enum: - manage_org_members - manage_org_admin_members - view_org_membership - start_application - list_application - view_application - modify_application - submit_application - update_form - manage_agency_members - get_submitted_applications - legacy_agency_viewer - legacy_agency_grant_retriever - legacy_agency_assigner - manage_internal_roles - manage_competition - read_test_user_token - view_opportunity - create_opportunity - update_opportunity - publish_opportunity - internal_workflow_access - view_org_saved_opportunities - modify_org_saved_opportunities - internal_workflow_event_send - view_award_recommendation - create_award_recommendation - update_award_recommendation - submit_award_recommendation - program_officer_approval - budget_officer_approval - internal_s3_scan type: - string OrganizationUserSchema: type: object properties: user_id: type: string format: uuid description: User unique identifier example: 123e4567-e89b-12d3-a456-426614174000 email: type: - string - 'null' description: User email from login.gov example: user@example.com roles: type: array description: User roles in this organization items: type: - object $ref: '#/components/schemas/RoleSchema1' first_name: type: - string - 'null' description: User first name example: John last_name: type: - string - 'null' description: User last name example: Smith is_ebiz_poc: type: boolean description: Whether the user is the EBiz POC (Electronic Business Point of Contact) for the organization in SAM.gov example: false OrganizationUsersResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: List of organization members items: type: - object $ref: '#/components/schemas/OrganizationUserSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderOrganizationUsersPaginationSchema: type: object properties: order_by: type: string enum: - email - first_name - last_name - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction OrganizationUsersPaginationSchema: type: object properties: sort_order: type: array default: - order_by: email sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderOrganizationUsersPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size OrganizationUsersListRequestSchema: type: object properties: pagination: description: 'Pagination parameters for organization users list (default page size: 10, default sort: email ascending)' type: - object $ref: '#/components/schemas/OrganizationUsersPaginationSchema' required: - pagination CompetitionFlagUpdateSchema: type: object properties: is_simpler_grants_enabled: type: boolean description: Whether simpler grants are enabled for this competition required: - is_simpler_grants_enabled FormReplaceSchema: type: object properties: form_id: type: string format: uuid description: The primary key ID of the form example: 123e4567-e89b-12d3-a456-426614174000 is_required: type: boolean description: Whether the form is required required: - form_id - is_required CompetitionFormsSetRequestSchema: type: object properties: forms: type: array minItems: 1 description: List of forms to set on the competition items: type: - object $ref: '#/components/schemas/FormReplaceSchema' required: - forms OpportunityGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunityGrantorSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunityUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunityGrantorSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunityUpdateRequestSchema: type: object properties: opportunity_title: type: string maxLength: 255 description: The title of the opportunity example: Updated Research Grant for Climate Innovation category: description: The opportunity category enum: - discretionary - mandatory - continuation - earmark - other type: - string category_explanation: type: - string - 'null' default: null maxLength: 255 description: Explanation of the category (required when category is 'other') required: - category - opportunity_title AbstractResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The REST resource object status_code: type: integer description: The HTTP status code example: 200 SavedOpportunitySummaryV1Schema: type: object properties: post_date: type: string format: date description: The date the opportunity was posted example: '2024-01-01' close_date: type: string format: date description: The date the opportunity will close example: '2024-01-01' is_forecast: type: boolean description: Whether the opportunity is forecasted example: false SavedOpportunityOrganizationSchema: type: object properties: organization_id: type: string format: uuid description: The ID of the organization example: 123e4567-e89b-12d3-a456-426614174000 organization_name: type: - string - 'null' description: The name of the organization example: Department of Health SavedOpportunityResponseV1Schema: type: object properties: opportunity_id: type: string format: uuid description: The ID of the saved opportunity example: 123e4567-e89b-12d3-a456-426614174000 opportunity_title: type: - string - 'null' description: The title of the opportunity example: my title opportunity_status: description: The current status of the opportunity example: !!python/object/apply:src.constants.lookup_constants.OpportunityStatus - posted enum: - forecasted - posted - closed - archived type: - string summary: type: - object $ref: '#/components/schemas/SavedOpportunitySummaryV1Schema' saved_to_organizations: type: array items: type: - object - 'null' anyOf: - $ref: '#/components/schemas/SavedOpportunityOrganizationSchema' - type: 'null' UserSavedOpportunitiesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: List of saved opportunities items: type: - object $ref: '#/components/schemas/SavedOpportunityResponseV1Schema' status_code: type: integer description: The HTTP status code example: 200 SavedOpportunityStatusFieldFilterSchema: type: object properties: one_of: type: array minItems: 1 items: example: !!python/object/apply:src.constants.lookup_constants.OpportunityStatus - posted enum: - forecasted - posted - closed - archived type: - string UserSavedOpportunitiesOrganizationIDSFilterSchema: type: object properties: one_of: type: - array - 'null' items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 UserSavedOpportunitiesFilterSchema: type: object properties: opportunity_status: type: - object $ref: '#/components/schemas/SavedOpportunityStatusFieldFilterSchema' organization_ids: type: - object $ref: '#/components/schemas/UserSavedOpportunitiesOrganizationIDSFilterSchema' SortOrderUserGetSavedOpportunityPaginationV1Schema: type: object properties: order_by: type: string enum: - created_at - opportunity_title - close_date description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction UserGetSavedOpportunityPaginationV1Schema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderUserGetSavedOpportunityPaginationV1Schema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size UserSavedOpportunitiesRequestSchema: type: object properties: filters: type: - object - 'null' anyOf: - $ref: '#/components/schemas/UserSavedOpportunitiesFilterSchema' - type: 'null' pagination: type: - object $ref: '#/components/schemas/UserGetSavedOpportunityPaginationV1Schema' required: - pagination OrganizationListRolesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: Role information items: type: - object $ref: '#/components/schemas/RoleSchema1' status_code: type: integer description: The HTTP status code example: 200 UserApiKeyDeleteResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserApiKeyRenameResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The renamed API key type: - object $ref: '#/components/schemas/UserApiKeySchema' status_code: type: integer description: The HTTP status code example: 200 UserApiKeyRenameRequestSchema: type: object properties: key_name: type: string minLength: 1 maxLength: 255 description: New name for the API key example: Production API Key required: - key_name OpportunityListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: List of opportunities items: type: - object $ref: '#/components/schemas/OpportunityGrantorSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderOpportunityListPaginationSchema: type: object properties: order_by: type: string enum: - opportunity_id - opportunity_number - opportunity_title - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction OpportunityListPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderOpportunityListPaginationSchema' page_size: type: integer default: 25 minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer default: 1 minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 AwardRecommendationReadySchema: type: object properties: one_of: type: - array - 'null' items: type: boolean example: true OpportunityListFilterSchema: type: object properties: award_recommendation_ready: description: Filter for opportunities ready for award recommendations. Returns only non-draft Simpler Grants opportunities with application submissions and no existing award recommendations. type: - object $ref: '#/components/schemas/AwardRecommendationReadySchema' OpportunityListRequestSchema: type: object properties: pagination: description: 'Pagination parameters for opportunity list (default sort: created_at descending)' type: - object $ref: '#/components/schemas/OpportunityListPaginationSchema' filters: description: Optional filters for opportunity list type: - object $ref: '#/components/schemas/OpportunityListFilterSchema' required: - pagination OrganizationInvitationResponseSchema: type: object properties: organization_invitation_id: type: string format: uuid description: Invitation unique identifier example: 123e4567-e89b-12d3-a456-426614174000 organization_id: type: string format: uuid description: Organization unique identifier example: 123e4567-e89b-12d3-a456-426614174000 invitee_email: type: string description: Email address of the invited user example: user@example.com status: type: string description: Current status of the invitation example: pending enum: - pending - accepted - rejected - expired expires_at: type: string format: date-time description: When the invitation expires example: '2024-01-15T10:30:00Z' roles: type: array description: Roles assigned to this invitation items: type: - object $ref: '#/components/schemas/RoleSchema1' created_at: type: string format: date-time description: When the invitation was created example: '2024-01-08T10:30:00Z' OrganizationCreateInvitationResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: Created invitation information type: - object $ref: '#/components/schemas/OrganizationInvitationResponseSchema' status_code: type: integer description: The HTTP status code example: 200 OrganizationCreateInvitationRequestSchema: type: object properties: invitee_email: type: string description: Email address of the user to invite example: user@example.com role_ids: type: array minItems: 1 description: List of role IDs to assign to the invited user example: - 123e4567-e89b-12d3-a456-426614174000 items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - invitee_email - role_ids LegacyUserDataSchema: type: object properties: email: type: string description: Legacy user email address example: user@example.com first_name: type: - string - 'null' description: Legacy user first name example: John last_name: type: - string - 'null' description: Legacy user last name example: Doe status: type: string description: Status of the legacy user relative to the organization example: available required: - email - status LegacyUsersListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: List of legacy users items: type: - object $ref: '#/components/schemas/LegacyUserDataSchema' status_code: type: integer description: The HTTP status code example: 200 LegacyUserStatusFilterSchema: type: object properties: one_of: type: array minItems: 1 items: example: available enum: - member - pending_invitation - available type: - string LegacyUserFilterSchema: type: object properties: status: description: Filter legacy users by status type: - object - 'null' anyOf: - $ref: '#/components/schemas/LegacyUserStatusFilterSchema' - type: 'null' SortOrderLegacyUserPaginationSchema: type: object properties: order_by: type: string enum: - email - first_name - last_name - created_date description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction LegacyUserPaginationSchema: type: object properties: sort_order: type: array default: - order_by: email sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderLegacyUserPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size LegacyUsersListRequestSchema: type: object properties: filters: description: Filters to apply to the legacy user list type: - object - 'null' anyOf: - $ref: '#/components/schemas/LegacyUserFilterSchema' - type: 'null' pagination: description: 'Pagination parameters for legacy user list (default sort: email ascending)' type: - object $ref: '#/components/schemas/LegacyUserPaginationSchema' required: - pagination ApplicationAttachmentCreateSchema: type: object properties: application_attachment_id: type: string format: uuid description: The ID of the uploaded application attachment example: 123e4567-e89b-12d3-a456-426614174000 ApplicationAttachmentCreateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationAttachmentCreateSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationAttachmentCreateRequestSchema: type: object properties: file_attachment: description: The file to attach to an application type: string format: binary required: - file_attachment ApplicationSubmissionDataSchema: type: object properties: application_submission_id: type: string format: uuid description: The unique identifier of the application submission example: 123e4567-e89b-12d3-a456-426614174000 download_path: type: string description: The presigned URL path for downloading the submission package example: https://s3.amazonaws.com/bucket/path/to/submission.zip file_size_bytes: type: integer description: The size of the submission file in bytes example: 1234567 legacy_tracking_number: type: integer description: The legacy tracking number for the submission example: 80000001 ApplicationSubmissionsResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array items: type: - object $ref: '#/components/schemas/ApplicationSubmissionDataSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderApplicationSubmissionsRequestPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction ApplicationSubmissionsRequestPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderApplicationSubmissionsRequestPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size ApplicationSubmissionsRequestSchema: type: object properties: pagination: type: - object $ref: '#/components/schemas/ApplicationSubmissionsRequestPaginationSchema' required: - pagination ApplicationAuditAppFormSchema: type: object properties: application_form_id: type: string format: uuid description: The ID of the application form example: 123e4567-e89b-12d3-a456-426614174000 competition_form_id: type: string format: uuid description: The ID of the competition form example: 123e4567-e89b-12d3-a456-426614174000 form_id: type: string format: uuid description: The ID of the form example: 123e4567-e89b-12d3-a456-426614174000 form_name: type: string description: The name of the form ApplicationAuditAttachmentSchema: type: object properties: application_attachment_id: type: string format: uuid description: The ID of the application attachment example: 123e4567-e89b-12d3-a456-426614174000 file_name: type: string description: The file name of the application attachment example: my_example.pdf is_deleted: type: boolean description: Whether the attachment has been deleted ApplicationAuditDataSchema: type: object properties: application_audit_id: type: string format: uuid description: The ID of the application audit event example: 123e4567-e89b-12d3-a456-426614174000 application_audit_event: description: The type of application audit event recorded enum: - application_created - application_name_changed - application_submitted - application_submit_rejected - attachment_added - attachment_deleted - attachment_updated - submission_created - user_added - user_updated - user_removed - form_updated - organization_added type: - string user: description: The user who did the event that was audited type: - object $ref: '#/components/schemas/SimpleUserSchema' target_user: description: The user the audit event affected (if applicable) type: - object $ref: '#/components/schemas/SimpleUserSchema' target_application_form: description: The application form modified (if applicable) type: - object $ref: '#/components/schemas/ApplicationAuditAppFormSchema' target_attachment: description: The application attachment modified (if applicable) type: - object $ref: '#/components/schemas/ApplicationAuditAttachmentSchema' created_at: type: string format: date-time description: When the audit event was created ApplicationAuditResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array items: type: - object $ref: '#/components/schemas/ApplicationAuditDataSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationAuditEventFieldFilterSchema: type: object properties: one_of: type: array minItems: 1 items: example: !!python/object/apply:src.constants.lookup_constants.ApplicationAuditEvent - application_created enum: - application_created - application_name_changed - application_submitted - application_submit_rejected - attachment_added - attachment_deleted - attachment_updated - submission_created - user_added - user_updated - user_removed - form_updated - organization_added type: - string ApplicationAuditFilterSchema: type: object properties: application_audit_event: type: - object $ref: '#/components/schemas/ApplicationAuditEventFieldFilterSchema' SortOrderApplicationAuditRequestPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction ApplicationAuditRequestPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderApplicationAuditRequestPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size ApplicationAuditRequestSchema: type: object properties: filters: type: - object - 'null' anyOf: - $ref: '#/components/schemas/ApplicationAuditFilterSchema' - type: 'null' pagination: type: - object $ref: '#/components/schemas/ApplicationAuditRequestPaginationSchema' required: - pagination OpportunityPublishResponseV1Schema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunityGrantorSchema' status_code: type: integer description: The HTTP status code example: 200 InviterDataSchema: type: object properties: user_id: type: string format: uuid description: Inviter user unique identifier example: 123e4567-e89b-12d3-a456-426614174000 email: type: string description: Inviter email address example: admin@org.com first_name: type: - string - 'null' description: Inviter first name example: John last_name: type: - string - 'null' description: Inviter last name example: Doe InviteeDataSchema: type: object properties: user_id: type: - string - 'null' format: uuid description: Invitee user unique identifier (null if not registered) example: 123e4567-e89b-12d3-a456-426614174000 email: type: - string - 'null' description: Invitee email address example: user@example.com first_name: type: - string - 'null' description: Invitee first name example: Jane last_name: type: - string - 'null' description: Invitee last name example: Smith OrganizationInvitationDataSchema: type: object properties: organization_invitation_id: type: string format: uuid description: Invitation unique identifier example: 123e4567-e89b-12d3-a456-426614174000 invitee_email: type: string description: Email address of the invitee example: user@example.com status: type: string description: Current status of the invitation example: pending created_at: type: string format: date-time description: When the invitation was created example: '2024-01-08T10:30:00Z' expires_at: type: string format: date-time description: When the invitation expires example: '2024-01-15T10:30:00Z' accepted_at: type: - string - 'null' format: date-time description: When the invitation was accepted example: '2024-01-10T14:20:00Z' rejected_at: type: - string - 'null' format: date-time description: When the invitation was rejected example: null inviter_user: description: Information about the user who sent the invitation type: - object $ref: '#/components/schemas/InviterDataSchema' invitee_user: description: Information about the invited user (null if not registered) type: - object - 'null' anyOf: - $ref: '#/components/schemas/InviteeDataSchema' - type: 'null' roles: type: array description: Roles that will be assigned when invitation is accepted items: type: - object $ref: '#/components/schemas/RoleSchema1' OrganizationInvitationListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: List of organization invitations items: type: - object $ref: '#/components/schemas/OrganizationInvitationDataSchema' status_code: type: integer description: The HTTP status code example: 200 InvitationStatusFilterSchema: type: object properties: one_of: type: array minItems: 1 items: example: pending enum: - accepted - rejected - expired - pending type: - string OrganizationInvitationFilterSchema: type: object properties: status: description: Filter invitations by status type: - object - 'null' anyOf: - $ref: '#/components/schemas/InvitationStatusFilterSchema' - type: 'null' SortOrderOrganizationInvitationListPaginationSchema: type: object properties: order_by: type: string enum: - invitee_email - created_at - responded_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction OrganizationInvitationListPaginationSchema: type: object properties: sort_order: type: array default: - order_by: invitee_email sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderOrganizationInvitationListPaginationSchema' page_size: type: integer default: 25 minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer default: 1 minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 OrganizationInvitationListRequestSchema: type: object properties: filters: description: Filters to apply to the invitation list type: - object - 'null' anyOf: - $ref: '#/components/schemas/OrganizationInvitationFilterSchema' - type: 'null' pagination: description: 'Pagination parameters for organization invitation list (default sort: invitee_email ascending)' type: - object $ref: '#/components/schemas/OrganizationInvitationListPaginationSchema' OpportunitySummaryCreateResponseV1Schema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunitySummaryDetailSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunitySummaryCreateRequestV1Schema: type: object properties: summary_description: type: - string - 'null' maxLength: 18000 description: Opportunity summary example: This opportunity... is_cost_sharing: type: - boolean - 'null' description: Whether or not the opportunity has a cost sharing/matching requirement post_date: type: string format: date description: The date the opportunity was posted close_date: type: - string - 'null' format: date description: The date the opportunity closes close_date_description: type: - string - 'null' description: Optional details regarding the close date example: Proposals are due earlier than usual. archive_date: type: - string - 'null' format: date description: When the opportunity will be archived (defaults to 30 days after the close date) expected_number_of_awards: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The number of awards the opportunity is expected to award example: 10 estimated_total_program_funding: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The total program funding of the opportunity in US Dollars example: 10000000 award_floor: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The minimum amount an opportunity would award example: 10000 award_ceiling: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The maximum amount an opportunity would award example: 100000 additional_info_url: type: - string - 'null' maxLength: 250 description: A URL to a website that can provide additional information about the opportunity example: grants.gov additional_info_url_description: type: - string - 'null' maxLength: 250 description: The text to display for the additional_info_url link example: Click me for more info forecasted_post_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be posted, and transition out of being a forecast forecasted_close_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be close once posted. forecasted_close_date_description: type: - string - 'null' maxLength: 255 description: Forecasted opportunity only. Optional details regarding the forecasted closed date. example: Proposals will probably be due on this date forecasted_award_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor plans to award the opportunity. forecasted_project_start_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor expects the award recipient should start their project fiscal_year: type: - integer - 'null' minimum: 1900 maximum: 2100 description: Forecasted opportunity only. The fiscal year the project is expected to be funded and launched example: 2026 funding_categories: type: array minItems: 1 description: Categories of funding for this opportunity example: &id058 - education - health items: enum: &id059 - recovery_act - agriculture - arts - business_and_commerce - community_development - consumer_protection - disaster_prevention_and_relief - education - employment_labor_and_training - energy - environment - food_and_nutrition - health - housing - humanities - infrastructure_investment_and_jobs_act - information_and_statistics - income_security_and_social_services - law_justice_and_legal_services - natural_resources - opportunity_zone_benefits - regional_development - science_technology_and_other_research_and_development - transportation - affordable_care_act - other - energy_infrastructure_and_critical_mineral_and_materials - recreation_and_tourism type: &id060 - string funding_category_description: type: - string - 'null' maxLength: 2500 description: Additional information about the funding category example: Economic Support funding_instruments: type: array minItems: 1 description: Types of funding instruments used for this opportunity example: &id061 - cooperative_agreement - grant items: enum: &id062 - cooperative_agreement - grant - procurement_contract - other type: &id063 - string applicant_types: type: array minItems: 1 description: Types of applicants eligible for this opportunity example: &id064 - state_governments - county_governments items: enum: &id065 - state_governments - county_governments - city_or_township_governments - special_district_governments - independent_school_districts - public_and_state_institutions_of_higher_education - private_institutions_of_higher_education - federally_recognized_native_american_tribal_governments - other_native_american_tribal_organizations - public_and_indian_housing_authorities - nonprofits_non_higher_education_with_501c3 - nonprofits_non_higher_education_without_501c3 - individuals - for_profit_organizations_other_than_small_businesses - small_businesses - other - unrestricted type: &id066 - string applicant_eligibility_description: type: - string - 'null' maxLength: 4000 description: Additional information about the types of applicants that are eligible example: All types of domestic applicants are eligible to apply agency_contact_description: type: - string - 'null' maxLength: 1000 description: Information regarding contacting the agency who owns the opportunity example: For more information, reach out to Jane Smith at agency US-ABC agency_email_address: type: - string - 'null' maxLength: 130 description: The contact email of the agency who owns the opportunity example: fake_email@grants.gov agency_email_address_description: type: - string - 'null' maxLength: 108 description: The text for the link to the agency email address example: Click me to email the agency is_forecast: type: boolean description: Whether the opportunity is forecasted example: false required: - agency_contact_description - agency_email_address - agency_email_address_description - applicant_types - award_ceiling - award_floor - funding_categories - funding_instruments - is_cost_sharing - is_forecast - post_date - summary_description SavedOpportunityNotificationsSelfSchema: type: object properties: email_enabled: type: boolean description: Whether email notifications are enabled for personal saved opportunities example: true SavedOpportunityNotificationsOrgSchema: type: object properties: organization_id: type: string format: uuid description: The organization ID example: 123e4567-e89b-12d3-a456-426614174000 email_enabled: type: boolean description: Whether email notifications are enabled for this organization's saved opportunities example: false SavedOpportunityNotificationsSchema: type: object properties: self: description: Personal notification settings for saved opportunities type: - object $ref: '#/components/schemas/SavedOpportunityNotificationsSelfSchema' organizations: type: array description: Notification settings per organization items: type: - object $ref: '#/components/schemas/SavedOpportunityNotificationsOrgSchema' UserSavedOpportunityNotificationsResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/SavedOpportunityNotificationsSchema' status_code: type: integer description: The HTTP status code example: 200 SetUserSavedOpportunityNotificationResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 SetUserSavedOpportunityNotificationRequestSchema: type: object properties: organization_id: type: - string - 'null' format: uuid description: The ID of the organization for which to set notification. If not provided, the setting applies to the user's own saved opportunities. example: 123e4567-e89b-12d3-a456-426614174000 email_enabled: type: boolean description: Whether the email notifications is enabled required: - email_enabled - organization_id AwardRecommendationUpdateRequestSchema: type: object properties: award_selection_method: description: The method used to select the award enum: - merit_review_ranking_only - merit_review_ranking_with_other_factors - formula - single_source - sole_source - other type: - string additional_info: type: - string - 'null' description: Additional info about the award recommendation example: Program office requests expedited processing due to deadline in September. funding_strategy: type: - string - 'null' description: Funding strategy information for the award recommendation example: Full funding for top 10 applications, partial funding for next 15 based on available budget. selection_method_detail: type: - string - 'null' description: Additional details about the selection method example: Top-ranked applicants based on expert panel scores other_key_information: type: - string - 'null' description: Other key information for the award recommendation example: This opportunity aligns with the agency's rural access initiative and requires interagency coordination. required: - award_selection_method OpportunityAttachmentResponseV1Schema: type: object properties: opportunity_attachment_id: type: string file_description: type: - string - 'null' required: - opportunity_attachment_id OpportunityUploadAttachmentResponseV1Schema: type: object properties: message: type: string status_code: type: integer errors: type: array items: type: string data: type: - object $ref: '#/components/schemas/OpportunityAttachmentResponseV1Schema' required: - message - status_code OpportunityUploadAttachmentRequestV1Schema: type: object properties: file_attachment: description: The file attachment to upload type: string format: binary file_description: type: - string - 'null' description: Description of the file attachment required: - file_attachment OrganizationIgnoreLegacyUserResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 OrganizationIgnoreLegacyUserRequestSchema: type: object properties: email: type: string description: Email address of the legacy user to ignore required: - email OrganizationSaveOpportunityResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: No data returned example: {} status_code: type: integer description: The HTTP status code example: 200 OrganizationSaveOpportunityRequestSchema: type: object properties: opportunity_id: type: string format: uuid description: Opportunity unique identifier to save example: 942e4567-e89b-12d3-a456-426614174000 required: - opportunity_id OrganizationRemoveUserResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: No data returned on successful removal status_code: type: integer description: The HTTP status code example: 200 OrganizationUpdateUserRolesResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: Role information items: type: - object $ref: '#/components/schemas/RoleSchema1' status_code: type: integer description: The HTTP status code example: 200 OrganizationUpdateUserRolesRequestSchema: type: object properties: role_ids: type: array minItems: 1 items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 UserDeleteSavedSearchResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserUpdateSavedSearchResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 UserUpdateSavedSearchRequestSchema: type: object properties: name: type: string description: Name of the saved search example: Example search required: - name ApplicationFormUpdateResponseSchema: type: object properties: warnings: type: array description: A list of warnings - indicating something you may want to be aware of, but did not prevent handling of the request items: type: *id057 $ref: '#/components/schemas/ValidationIssueSchema' message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationFormGetResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationFormUpdateRequestSchema: type: object properties: application_response: type: object description: The form response data to update example: name: John Doe email: john@example.com additionalProperties: {} is_included_in_submission: type: - boolean - 'null' description: Whether this form should be included in the application submission required: - application_response ApplicationSubmissionInfoSchema: type: object properties: award_recommendation_application_submission_id: type: string format: uuid description: The award recommendation application submission ID example: 123e4567-e89b-12d3-a456-426614174000 application_submission_id: type: string format: uuid description: The application submission ID example: 123e4567-e89b-12d3-a456-426614174000 application_submission_number: type: string description: The application submission number example: GRANT-2024-001 AwardRecommendationRiskResponseDataSchema: type: object properties: award_recommendation_risk_id: type: string format: uuid description: The award recommendation risk ID example: 123e4567-e89b-12d3-a456-426614174000 comment: type: string description: Summary of the risk example: Applicant has unresolved audit findings award_recommendation_risk_number: type: string description: The generated risk number example: HHS-00012345 award_recommendation_risk_type: description: The type of risk enum: - additional_monitoring type: - string award_recommendation_application_submission_ids: type: array description: List of award recommendation application submission IDs linked to this risk items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 applications: type: array description: List of application submissions linked to this risk example: - application_submission_id: 123e4567-e89b-12d3-a456-426614174000 application_submission_number: GRANT-2024-001 items: type: - object $ref: '#/components/schemas/ApplicationSubmissionInfoSchema' AwardRecommendationRiskResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The award recommendation risk type: - object $ref: '#/components/schemas/AwardRecommendationRiskResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationRiskRequestSchema: type: object properties: comment: type: string description: Summary of the risk example: Applicant has unresolved audit findings award_recommendation_risk_type: description: The type of risk enum: - additional_monitoring type: - string award_recommendation_application_submission_ids: type: array minItems: 1 description: List of award recommendation application submission IDs to link to this risk items: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - award_recommendation_application_submission_ids - award_recommendation_risk_type - comment UserDeleteSavedOpportunityResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationRiskListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: The list of award recommendation risks items: type: - object $ref: '#/components/schemas/AwardRecommendationRiskResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 SortOrderAwardRecRiskPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction AwardRecRiskPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderAwardRecRiskPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size AwardRecommendationRiskListRequestSchema: type: object properties: pagination: type: - object $ref: '#/components/schemas/AwardRecRiskPaginationSchema' required: - pagination OrganizationSchema1: type: object properties: organization_id: type: string format: uuid description: The unique identifier of the organization example: 456e7890-e12c-34f5-b678-901234567890 organization_name: type: - string - 'null' description: Organization name example: Legal business name of the corresponding Sam Gov Entity InvitationRoleSchema: type: object properties: role_id: type: string format: uuid description: Role unique identifier example: 123e4567-e89b-12d3-a456-426614174000 role_name: type: string description: Role name OrganizationInvitationSchema: type: object properties: organization_invitation_id: type: string format: uuid description: Organization invitation ID example: 123e4567-e89b-12d3-a456-426614174000 status: description: User response to invitation enum: - accepted - rejected - expired - pending type: - string responded_at: type: string format: date-time description: Time User responded to invitation organization: description: Organization information type: - object $ref: '#/components/schemas/OrganizationSchema1' roles_granted: type: array description: Roles granted items: type: - object $ref: '#/components/schemas/InvitationRoleSchema' UserResponseOrgInvitationResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OrganizationInvitationSchema' status_code: type: integer description: The HTTP status code example: 200 UserResponseOrgInvitationRequestSchema: type: object properties: status: enum: - accepted - rejected - expired - pending description: User response to invitation type: - string ApplicationFormInclusionUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationFormGetResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationFormInclusionUpdateRequestSchema: type: object properties: is_included_in_submission: type: boolean description: Whether this form should be included in the application submission required: - is_included_in_submission FormInstructionUploadResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The REST resource object status_code: type: integer description: The HTTP status code example: 200 FormInstructionUploadRequestSchema: type: object properties: file: description: The form instruction file to upload type: string format: binary required: - file AwardRecommendationAuditRiskSchema: type: object properties: award_recommendation_risk_id: type: string format: uuid description: The risk's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 award_recommendation_risk_type: description: The type of risk enum: - additional_monitoring type: - string award_recommendation_risk_number: type: string description: The risk number is_deleted: type: boolean description: Whether the risk has been deleted AwardRecommendationAuditAttachmentSchema: type: object properties: award_recommendation_attachment_id: type: string format: uuid description: The attachment's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 file_name: type: string description: The file name of the attachment example: my_example.pdf award_recommendation_attachment_type: description: The type of the attachment enum: - standard_terms - standard_conditions - program_terms - program_conditions - other type: - string is_deleted: type: boolean description: Whether the attachment has been deleted AwardRecommendationAuditReviewSchema: type: object properties: award_recommendation_review_id: type: string format: uuid description: The review's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 is_reviewed: type: boolean description: Whether the review has been completed AwardRecommendationAuditAppSubmissionSchema: type: object properties: award_recommendation_application_submission_id: type: string format: uuid description: The award recommendation application submission's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 application_submission_id: type: string format: uuid description: The application submission ID example: 123e4567-e89b-12d3-a456-426614174000 application_submission_number: type: - string - 'null' description: The application submission number AwardRecommendationAuditWorkflowApprovalSchema: type: object properties: workflow_approval_id: type: string format: uuid description: The workflow approval's unique identifier example: 123e4567-e89b-12d3-a456-426614174000 workflow_id: type: string format: uuid description: The workflow ID example: 123e4567-e89b-12d3-a456-426614174000 approval_type: description: The type of approval enum: - initial_prototype_approval - program_officer_approval - budget_officer_approval type: - string approval_response_type: description: The approval response type enum: - approved - declined - requires_modification type: - string AwardRecommendationAuditDataSchema: type: object properties: award_recommendation_audit_id: type: string format: uuid description: The ID of the audit event example: 123e4567-e89b-12d3-a456-426614174000 award_recommendation_audit_event: description: The type of audit event recorded enum: - award_recommendation_created - award_recommendation_updated - attachment_created - attachment_updated - attachment_deleted - exception_created - exception_updated - exception_deleted - risk_created - risk_updated - risk_deleted - application_submission_updated - award_recommendation_submission_updated - review_created - review_updated - review_deleted type: - string user: description: The user who performed the audited action type: - object $ref: '#/components/schemas/SimpleUserSchema' award_recommendation_risk: description: The risk affected by this event (if applicable) type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditRiskSchema' - type: 'null' award_recommendation_attachment: description: The attachment affected by this event (if applicable) type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditAttachmentSchema' - type: 'null' award_recommendation_review: description: The review affected by this event (if applicable) type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditReviewSchema' - type: 'null' award_recommendation_application_submission: description: The application submission affected by this event (if applicable) type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditAppSubmissionSchema' - type: 'null' workflow_approval: description: The workflow approval affected by this event (if applicable) type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditWorkflowApprovalSchema' - type: 'null' audit_metadata: type: - object - 'null' description: Additional metadata about the audit event additionalProperties: {} created_at: type: string format: date-time description: When the audit event was created AwardRecommendationAuditResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array items: type: - object $ref: '#/components/schemas/AwardRecommendationAuditDataSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecAuditEventFilterSchema: type: object properties: one_of: type: array minItems: 1 items: example: !!python/object/apply:src.constants.lookup_constants.AwardRecommendationAuditEvent - award_recommendation_created enum: - award_recommendation_created - award_recommendation_updated - attachment_created - attachment_updated - attachment_deleted - exception_created - exception_updated - exception_deleted - risk_created - risk_updated - risk_deleted - application_submission_updated - award_recommendation_submission_updated - review_created - review_updated - review_deleted type: - string AwardRecommendationAuditFilterSchema: type: object properties: award_recommendation_audit_event: type: - object $ref: '#/components/schemas/AwardRecAuditEventFilterSchema' SortOrderAwardRecAuditPaginationSchema: type: object properties: order_by: type: string enum: - created_at description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction AwardRecAuditPaginationSchema: type: object properties: sort_order: type: array default: - order_by: created_at sort_direction: descending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderAwardRecAuditPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size AwardRecommendationAuditRequestSchema: type: object properties: filters: type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationAuditFilterSchema' - type: 'null' pagination: type: - object $ref: '#/components/schemas/AwardRecAuditPaginationSchema' required: - pagination AwardRecommendationOrganizationSchema: type: object properties: organization_id: type: string format: uuid description: The organization ID example: 123e4567-e89b-12d3-a456-426614174000 organization_name: type: - string - 'null' description: The organization name AwardRecommendationApplicationSchema: type: object properties: application_id: type: string format: uuid description: The application ID example: 123e4567-e89b-12d3-a456-426614174000 competition_id: type: string format: uuid description: The competition ID example: 123e4567-e89b-12d3-a456-426614174000 organization: description: The organization that submitted the application type: - object - 'null' anyOf: - $ref: '#/components/schemas/AwardRecommendationOrganizationSchema' - type: 'null' AwardRecommendationApplicationSubmissionSchema: type: object properties: application_submission_id: type: string format: uuid description: The application submission ID example: 123e4567-e89b-12d3-a456-426614174000 application_submission_number: type: - string - 'null' description: The application submission number example: SUB-2026-00001 project_title: type: - string - 'null' description: The project title example: Rural broadband expansion initiative total_requested_amount: type: - number - 'null' description: The total requested funding amount example: '250000.00' application: description: The application associated with this submission type: - object $ref: '#/components/schemas/AwardRecommendationApplicationSchema' AwardRecommendationSubmissionDetailSchema: type: object properties: recommended_amount: type: - number - 'null' description: The recommended funding amount example: '200000.00' scoring_comment: type: - string - 'null' description: Comments from the scoring process general_comment: type: - string - 'null' description: General comments about the submission award_recommendation_type: description: The recommendation type for this submission enum: - recommended_for_funding - recommended_without_funding - not_recommended type: - string - 'null' - 'null' has_exception: type: boolean description: Whether the submission has an exception exception_detail: type: - string - 'null' description: Details about the exception, if any AwardRecommendationSubmissionDataSchema: type: object properties: award_recommendation_application_submission_id: type: string format: uuid description: The award recommendation application submission ID example: 123e4567-e89b-12d3-a456-426614174000 application_submission: description: The application submission type: - object $ref: '#/components/schemas/AwardRecommendationApplicationSubmissionSchema' submission_detail: description: The recommendation details for this submission type: - object $ref: '#/components/schemas/AwardRecommendationSubmissionDetailSchema' AwardRecommendationSubmissionListResponseSchema: type: object properties: pagination_info: description: The pagination information for paginated endpoints type: *id040 $ref: '#/components/schemas/PaginationInfoSchema' message: type: string description: The message to return example: Success data: type: array description: The list of award recommendation submissions items: type: - object $ref: '#/components/schemas/AwardRecommendationSubmissionDataSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecSubmissionTypeFilterSchema: type: object properties: one_of: type: array minItems: 1 items: enum: - recommended_for_funding - recommended_without_funding - not_recommended type: - string AwardRecSubmissionExceptionFilterSchema: type: object properties: one_of: type: - array - 'null' items: type: boolean AwardRecommendationSubmissionFilterSchema: type: object properties: award_recommendation_type: type: - object $ref: '#/components/schemas/AwardRecSubmissionTypeFilterSchema' has_exception: type: - object $ref: '#/components/schemas/AwardRecSubmissionExceptionFilterSchema' SortOrderAwardRecSubmissionPaginationSchema: type: object properties: order_by: type: string enum: - application_submission_number description: The field to sort the response by sort_direction: description: Whether to sort the response ascending or descending enum: - ascending - descending type: - string required: - order_by - sort_direction AwardRecSubmissionPaginationSchema: type: object properties: sort_order: type: array default: - order_by: application_submission_number sort_direction: ascending minItems: 1 maxItems: 5 description: The list of sorting rules items: type: - object $ref: '#/components/schemas/SortOrderAwardRecSubmissionPaginationSchema' page_size: type: integer minimum: 1 maximum: 5000 description: The size of the page to fetch example: 25 page_offset: type: integer minimum: 1 description: The page number to fetch, starts counting from 1 example: 1 required: - page_offset - page_size AwardRecommendationSubmissionListRequestSchema: type: object properties: filters: type: - object $ref: '#/components/schemas/AwardRecommendationSubmissionFilterSchema' pagination: type: - object $ref: '#/components/schemas/AwardRecSubmissionPaginationSchema' required: - pagination ApplicationFormGetResponseSchema: type: object properties: warnings: type: array description: A list of warnings - indicating something you may want to be aware of, but did not prevent handling of the request items: type: *id057 $ref: '#/components/schemas/ValidationIssueSchema' message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationFormGetResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationAddOrganizationResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationUpdateResponseDataSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationSubmissionDetailsBatchUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: array description: The updated award recommendation submissions items: type: - object $ref: '#/components/schemas/AwardRecommendationSubmissionDataSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationSubmissionDetailUpdateSchema: type: object properties: recommended_amount: type: - number - 'null' description: The recommended funding amount example: '200000.00' scoring_comment: type: - string - 'null' description: Comments from the scoring process example: Strong technical approach with clear methodology. Budget well-justified and aligned with project goals. general_comment: type: - string - 'null' description: General comments about the submission example: Applicant has demonstrated successful implementation of similar projects in the past. Team qualifications exceed requirements. award_recommendation_type: description: The recommendation type for this submission enum: - recommended_for_funding - recommended_without_funding - not_recommended type: - string - 'null' - 'null' has_exception: type: boolean description: Whether the submission has an exception exception_detail: type: - string - 'null' description: Details about the exception, if any example: Budget exceeds guidelines by 12%. Recommend partial funding with revised scope focusing on core deliverables. AwardRecommendationSubmissionDetailsBatchUpdateRequestSchema: type: object properties: award_recommendation_submissions: type: object minLength: 1 description: Dictionary of submission IDs to update details, where keys are award_recommendation_application_submission_id additionalProperties: type: - object $ref: '#/components/schemas/AwardRecommendationSubmissionDetailUpdateSchema' required: - award_recommendation_submissions OrganizationDeleteSavedOpportunityResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: No data returned example: {} status_code: type: integer description: The HTTP status code example: 200 ApplicationAttachmentGetSchema: type: object properties: download_path: type: string description: The file's download path file_size_bytes: type: integer description: The size of the file in bytes example: 1024 created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true application_attachment_id: type: string format: uuid description: The ID of the uploaded application attachment example: 123e4567-e89b-12d3-a456-426614174000 file_name: type: string description: The name of the application attachment file example: my_example.pdf mime_type: type: string description: The mime type / content type of the file example: application/pdf ApplicationAttachmentGetResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationAttachmentGetSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationAttachmentUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/ApplicationAttachmentCreateSchema' status_code: type: integer description: The HTTP status code example: 200 ApplicationAttachmentUpdateRequestSchema: type: object properties: file_attachment: description: The file to attach to an application type: string format: binary required: - file_attachment ApplicationAttachmentDeleteResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 OpportunitySummaryUpdateResponseV1Schema: type: object properties: message: type: string description: The message to return example: Success data: type: - object $ref: '#/components/schemas/OpportunitySummaryDetailSchema' status_code: type: integer description: The HTTP status code example: 200 OpportunitySummaryUpdateRequestV1Schema: type: object properties: summary_description: type: - string - 'null' maxLength: 18000 description: Opportunity summary example: This opportunity... is_cost_sharing: type: - boolean - 'null' description: Whether or not the opportunity has a cost sharing/matching requirement post_date: type: string format: date description: The date the opportunity was posted close_date: type: - string - 'null' format: date description: The date the opportunity closes close_date_description: type: - string - 'null' description: Optional details regarding the close date example: Proposals are due earlier than usual. archive_date: type: - string - 'null' format: date description: When the opportunity will be archived (defaults to 30 days after the close date) expected_number_of_awards: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The number of awards the opportunity is expected to award example: 10 estimated_total_program_funding: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The total program funding of the opportunity in US Dollars example: 10000000 award_floor: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The minimum amount an opportunity would award example: 10000 award_ceiling: type: - integer - 'null' minimum: 0 maximum: 999999999999999 description: The maximum amount an opportunity would award example: 100000 additional_info_url: type: - string - 'null' maxLength: 250 description: A URL to a website that can provide additional information about the opportunity example: grants.gov additional_info_url_description: type: - string - 'null' maxLength: 250 description: The text to display for the additional_info_url link example: Click me for more info forecasted_post_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be posted, and transition out of being a forecast forecasted_close_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the opportunity is expected to be close once posted. forecasted_close_date_description: type: - string - 'null' maxLength: 255 description: Forecasted opportunity only. Optional details regarding the forecasted closed date. example: Proposals will probably be due on this date forecasted_award_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor plans to award the opportunity. forecasted_project_start_date: type: - string - 'null' format: date description: Forecasted opportunity only. The date the grantor expects the award recipient should start their project fiscal_year: type: - integer - 'null' minimum: 1900 maximum: 2100 description: Forecasted opportunity only. The fiscal year the project is expected to be funded and launched example: 2026 funding_categories: type: array minItems: 1 description: Categories of funding for this opportunity example: *id058 items: enum: *id059 type: *id060 funding_category_description: type: - string - 'null' maxLength: 2500 description: Additional information about the funding category example: Economic Support funding_instruments: type: array minItems: 1 description: Types of funding instruments used for this opportunity example: *id061 items: enum: *id062 type: *id063 applicant_types: type: array minItems: 1 description: Types of applicants eligible for this opportunity example: *id064 items: enum: *id065 type: *id066 applicant_eligibility_description: type: - string - 'null' maxLength: 4000 description: Additional information about the types of applicants that are eligible example: All types of domestic applicants are eligible to apply agency_contact_description: type: - string - 'null' maxLength: 1000 description: Information regarding contacting the agency who owns the opportunity example: For more information, reach out to Jane Smith at agency US-ABC agency_email_address: type: - string - 'null' maxLength: 130 description: The contact email of the agency who owns the opportunity example: fake_email@grants.gov agency_email_address_description: type: - string - 'null' maxLength: 108 description: The text for the link to the agency email address example: Click me to email the agency required: - agency_contact_description - agency_email_address - agency_email_address_description - applicant_types - award_ceiling - award_floor - funding_categories - funding_instruments - is_cost_sharing - post_date - summary_description DeleteAttachmentResponseV1Schema: type: object properties: message: type: string status_code: type: integer errors: type: array items: type: string required: - message - status_code AwardRecommendationRiskDeleteResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationReviewUpdateResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: description: The updated review type: - object $ref: '#/components/schemas/AwardRecommendationReviewSchema' status_code: type: integer description: The HTTP status code example: 200 AwardRecommendationReviewUpdateRequestSchema: type: object properties: is_reviewed: type: boolean description: Whether the review has been completed required: - is_reviewed AwardRecommendationAttachmentDeleteResponseSchema: type: object properties: message: type: string description: The message to return example: Success data: example: null status_code: type: integer description: The HTTP status code example: 200 securitySchemes: ApiJwtAuth: type: apiKey in: header name: X-SGG-Token InternalApiJwtAuth: type: apiKey in: header name: X-SGG-Internal-Token ApiUserKeyAuth: type: apiKey in: header name: X-API-Key