> ## Documentation Index
> Fetch the complete documentation index at: https://docs.azalt.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get form

> Retrieve a complete form configuration with all elements and settings for authenticated users.

**Parameters**:
- `id`: Form identifier

**Response includes**:
- **Basic Information**: Name, description, instructions, creation metadata
- **Form Elements**: Complete list of 11 supported element types with configurations
  - Text inputs, numbers, dates, dropdowns, checkboxes, radio buttons
  - File uploads, rich text, sections, calculations, lookup tables
- **Conditional Logic**: Element dependencies and show/hide rules
- **Validation Rules**: Required fields, data type constraints, custom validation
- **Period Configuration**: Time-based data collection settings
- **Sites Association**: Which sites this form is deployed to
- **Submission Settings**: Public access, password protection, submission limits

**Element Types Supported**:
- Input fields (text, number, date, email)
- Selection controls (dropdown, checkbox, radio)
- Rich content (HTML, file upload)
- Calculated fields with mathematical expressions
- Lookup tables for dynamic options



## OpenAPI

````yaml https://app.azalt.co/api/v1/openapi.json get /forms/{id}
openapi: 3.0.3
info:
  title: Erguvan Public API
  version: 1.0.0
servers:
  - url: https://app.azalt.co/api/v1
security: []
paths:
  /forms/{id}:
    get:
      tags:
        - Form
      summary: Get form
      description: >-
        Retrieve a complete form configuration with all elements and settings
        for authenticated users.


        **Parameters**:

        - `id`: Form identifier


        **Response includes**:

        - **Basic Information**: Name, description, instructions, creation
        metadata

        - **Form Elements**: Complete list of 11 supported element types with
        configurations
          - Text inputs, numbers, dates, dropdowns, checkboxes, radio buttons
          - File uploads, rich text, sections, calculations, lookup tables
        - **Conditional Logic**: Element dependencies and show/hide rules

        - **Validation Rules**: Required fields, data type constraints, custom
        validation

        - **Period Configuration**: Time-based data collection settings

        - **Sites Association**: Which sites this form is deployed to

        - **Submission Settings**: Public access, password protection,
        submission limits


        **Element Types Supported**:

        - Input fields (text, number, date, email)

        - Selection controls (dropdown, checkbox, radio)

        - Rich content (HTML, file upload)

        - Calculated fields with mathematical expressions

        - Lookup tables for dynamic options
      operationId: getForm
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  isPublic:
                    type: boolean
                  metadata:
                    nullable: true
                  settings:
                    nullable: true
                  formSites:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          nullable: true
                        siteId:
                          type: string
                          nullable: true
                        year:
                          type: number
                          nullable: true
                        disabledElementIds:
                          type: array
                          items:
                            type: string
                      required:
                        - id
                        - siteId
                        - year
                        - disabledElementIds
                  elements:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        key:
                          type: string
                        label:
                          type: string
                        required:
                          type: boolean
                        options:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              label:
                                type: string
                              value:
                                type: string
                              description:
                                type: string
                                nullable: true
                              points:
                                type: number
                              actionText:
                                type: string
                                nullable: true
                            required:
                              - label
                              - value
                        conditions:
                          nullable: true
                        parentElementId:
                          type: string
                          nullable: true
                        type:
                          type: string
                          enum:
                            - NUMBER
                            - ACTIVITY
                            - SHORT_TEXT
                            - LONG_TEXT
                            - SINGLE_CHOICE
                            - MULTIPLE_CHOICE
                            - FILE_UPLOAD
                            - IMAGE
                            - GROUP
                            - PAGE
                            - TITLE
                            - PARAGRAPH
                            - DIVIDER
                        config:
                          nullable: true
                        unitId:
                          type: string
                          nullable: true
                        period:
                          type: string
                          enum:
                            - MONTHLY
                            - QUARTERLY
                            - YEARLY
                            - TIMESTAMP
                        order:
                          type: number
                        createdAt:
                          type: string
                        updatedAt:
                          type: string
                        deletedAt:
                          type: string
                          nullable: true
                        activityDefinitionId:
                          type: string
                          nullable: true
                        distributionMode:
                          type: string
                          nullable: true
                        formId:
                          type: string
                        unitName:
                          type: string
                          nullable: true
                        metadata:
                          type: object
                          nullable: true
                          additionalProperties:
                            anyOf:
                              - type: string
                              - type: boolean
                        schedule:
                          type: object
                          nullable: true
                          properties:
                            dataEntry:
                              type: object
                              properties:
                                dueDate:
                                  oneOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - fixed-day
                                        day:
                                          type: integer
                                          minimum: 1
                                          maximum: 31
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - day
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - weekday-occurrence
                                        weekday:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                            - type: number
                                              enum:
                                                - 5
                                            - type: number
                                              enum:
                                                - 6
                                        occurrence:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - weekday
                                        - occurrence
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - last-weekday
                                        weekday:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                            - type: number
                                              enum:
                                                - 5
                                            - type: number
                                              enum:
                                                - 6
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - weekday
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - specific-date
                                        month:
                                          type: integer
                                          minimum: 1
                                          maximum: 12
                                        day:
                                          type: integer
                                          minimum: 1
                                          maximum: 31
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - month
                                        - day
                                reminders:
                                  type: object
                                  properties:
                                    enabled:
                                      type: boolean
                                    offsets:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - days-before
                                          days:
                                            type: integer
                                            minimum: 1
                                            maximum: 30
                                        required:
                                          - type
                                          - days
                                  required:
                                    - enabled
                                    - offsets
                              required:
                                - dueDate
                            approval:
                              type: object
                              properties:
                                dueDate:
                                  oneOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - fixed-day
                                        day:
                                          type: integer
                                          minimum: 1
                                          maximum: 31
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - day
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - weekday-occurrence
                                        weekday:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                            - type: number
                                              enum:
                                                - 5
                                            - type: number
                                              enum:
                                                - 6
                                        occurrence:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - weekday
                                        - occurrence
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - last-weekday
                                        weekday:
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 1
                                            - type: number
                                              enum:
                                                - 2
                                            - type: number
                                              enum:
                                                - 3
                                            - type: number
                                              enum:
                                                - 4
                                            - type: number
                                              enum:
                                                - 5
                                            - type: number
                                              enum:
                                                - 6
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - weekday
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - specific-date
                                        month:
                                          type: integer
                                          minimum: 1
                                          maximum: 12
                                        day:
                                          type: integer
                                          minimum: 1
                                          maximum: 31
                                        timing:
                                          type: string
                                          enum:
                                            - current-period
                                            - next-period
                                      required:
                                        - type
                                        - month
                                        - day
                                reminders:
                                  type: object
                                  properties:
                                    enabled:
                                      type: boolean
                                    offsets:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - days-before
                                          days:
                                            type: integer
                                            minimum: 1
                                            maximum: 30
                                        required:
                                          - type
                                          - days
                                  required:
                                    - enabled
                                    - offsets
                              required:
                                - dueDate
                      required:
                        - id
                        - key
                        - label
                        - required
                        - options
                        - parentElementId
                        - type
                        - unitId
                        - period
                        - order
                        - createdAt
                        - updatedAt
                        - deletedAt
                        - activityDefinitionId
                        - distributionMode
                        - formId
                        - unitName
                        - metadata
                  years:
                    type: array
                    items:
                      type: string
                  sites:
                    type: array
                    items:
                      type: string
                      nullable: true
                required:
                  - id
                  - name
                  - description
                  - isPublic
                  - formSites
                  - elements
                  - years
                  - sites
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````