> ## 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.

# Submit public form

> Submit data to a public form without authentication, enabling external data collection.

**Parameters**:
- `formSiteId`: Unique identifier for the form-site combination
- `password`: Required if the form is password-protected
- `values`: Array of form element values with their corresponding data
- `submitterInfo`: Optional contact information for the submitter

**Value Structure per Element**:
- `elementId`: Form element identifier
- `value`: The actual data value (varies by element type)
- `periodUnit`: For time-series data, specifies the period (e.g., monthly, quarterly)
- `docs`: Optional file attachments supporting the data

**Validation**:
- All required fields must be provided
- Data types must match element configurations
- Numeric values validated against min/max constraints
- File uploads checked against allowed types and sizes

**Common Use Cases**:
- Supplier environmental data collection
- Third-party compliance reporting
- Stakeholder sustainability surveys
- External facility data submissions



## OpenAPI

````yaml https://app.azalt.co/api/v1/openapi.json post /forms/public/{formSiteId}/submit
openapi: 3.0.3
info:
  title: Erguvan Public API
  version: 1.0.0
servers:
  - url: https://app.azalt.co/api/v1
security: []
paths:
  /forms/public/{formSiteId}/submit:
    post:
      tags:
        - Form
      summary: Submit public form
      description: >-
        Submit data to a public form without authentication, enabling external
        data collection.


        **Parameters**:

        - `formSiteId`: Unique identifier for the form-site combination

        - `password`: Required if the form is password-protected

        - `values`: Array of form element values with their corresponding data

        - `submitterInfo`: Optional contact information for the submitter


        **Value Structure per Element**:

        - `elementId`: Form element identifier

        - `value`: The actual data value (varies by element type)

        - `periodUnit`: For time-series data, specifies the period (e.g.,
        monthly, quarterly)

        - `docs`: Optional file attachments supporting the data


        **Validation**:

        - All required fields must be provided

        - Data types must match element configurations

        - Numeric values validated against min/max constraints

        - File uploads checked against allowed types and sizes


        **Common Use Cases**:

        - Supplier environmental data collection

        - Third-party compliance reporting

        - Stakeholder sustainability surveys

        - External facility data submissions
      operationId: submitPublicForm
      parameters:
        - in: path
          name: formSiteId
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                submissionId:
                  type: string
                values:
                  type: array
                  items:
                    type: object
                    properties:
                      elementId:
                        type: string
                      value: {}
                      periodUnit:
                        type: number
                      sequence:
                        type: number
                      selectedUnitId:
                        type: string
                    required:
                      - elementId
                      - periodUnit
                      - sequence
              required:
                - values
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  score:
                    type: object
                    properties:
                      totalScore:
                        type: number
                      maxPossibleScore:
                        type: number
                      tierAchieved:
                        type: object
                        nullable: true
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          minScore:
                            type: number
                          maxScore:
                            type: number
                          color:
                            type: string
                          description:
                            type: string
                            nullable: true
                        required:
                          - id
                          - name
                          - minScore
                          - maxScore
                      sectionScores:
                        type: array
                        items:
                          type: object
                          properties:
                            sectionId:
                              type: string
                            sectionName:
                              type: string
                            points:
                              type: number
                            maxPoints:
                              type: number
                          required:
                            - sectionId
                            - sectionName
                            - points
                            - maxPoints
                    required:
                      - totalScore
                      - maxPossibleScore
                      - tierAchieved
                required:
                  - id
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
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.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: []

````