HHS (US Department of Health and Human Services) Form Alpha API

The Form Alpha API from HHS (US Department of Health and Human Services) — 2 operation(s) for form alpha.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

hhs-form-alpha-api-openapi.yml Raw ↑
openapi: 3.1.0
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 Form Alpha API
  version: v0
servers: .
tags:
- name: Form Alpha
paths:
  /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: []
  /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: []
components:
  schemas:
    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:
          - 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
    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:
            - object
            $ref: '#/components/schemas/ValidationIssueSchema'
    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:
          - 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
    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
    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
    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
    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
    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
    FormInstructionUploadRequestSchema:
      type: object
      properties:
        file:
          description: The form instruction file to upload
          type: string
          format: binary
      required:
      - file
  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