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

# Submit Form

> Submit user-entered data for the specified form. Supports JSON-stringified form mapping in a multipart request, plus optional file uploads for media fields. Returns submission status and any processing result.

Before calling this endpoint, make sure you’ve generated an API token and picked the correct domain. See [Authentication & Base URLs](/api-reference/authbaseurl).


## OpenAPI

````yaml POST /apis/setting-service/public/v1/forms/{form_id}/submit
openapi: 3.1.0
info:
  title: OpenAPI Plant Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://apis.experro.app
    description: Admin Server
  - url: https://{base-address}
    description: Custom Server
    variables:
      base-address:
        default: ''
        description: Enter your custom domain or server address.
security:
  - bearerAuth: []
paths:
  /apis/setting-service/public/v1/forms/{form_id}/submit:
    post:
      summary: Submit Form Data
      description: >-
        Submit user-entered data for the specified form. Supports
        JSON-stringified form mapping in a multipart request, plus optional file
        uploads for media fields. Returns submission status and any processing
        result.
      parameters:
        - name: form_id
          in: path
          required: true
          schema:
            type: string
          description: Unique identifier of the form to submit.
        - $ref: '#/components/parameters/LocaleQryPrm'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                formData:
                  type: string
                  description: >-
                    Stringifying JSON, the key must be "form_mapping", and its
                    value should contain the fields from the selected form
                    builder. For any media field, an additional key in the
                    format "<media_field>_images" must be included, with its
                    value as a list of the original names of uploaded files.
                files:
                  type: string
                  format: binary
                  description: >-
                    Files to be sent as attachments in notification email (e.g.
                    images uploaded in form).
              required:
                - formData
      responses:
        '200':
          description: Submission accepted. Returns submission ID or result message.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Status:
                    type: string
                    example: success
                    description: Indicates whether submission succeeded.
                  Data:
                    type: object
                    properties:
                      item:
                        type: string
                        description: Identifier for the created submission.
        '400':
          description: Bad Request – missing required form_mapping or invalid payload.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Status:
                    type: string
                    example: failure
                  Data:
                    $ref: '#/components/schemas/Error404'
        '401':
          description: Unauthorized – Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Status:
                    type: string
                    example: failure
                  Data:
                    $ref: '#/components/schemas/Error401'
        '500':
          description: Internal Server Error – an unexpected error on the server.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Status:
                    type: string
                    example: failure
                  Data:
                    $ref: '#/components/schemas/Error500'
      security: []
      servers:
        - url: https://{base-address}
          description: Custom Server
          variables:
            base-address:
              default: ''
              description: Enter your custom domain or server address.
components:
  parameters:
    LocaleQryPrm:
      name: locale
      in: query
      description: Specifies the language or region for the response data
      required: true
      schema:
        type: string
  schemas:
    Error404:
      type: object
      properties:
        Status:
          type: string
          example: failure
        Error:
          type: object
          properties:
            message:
              type: string
            name:
              type: string
            code:
              type: string
          required:
            - message
            - name
      required:
        - Status
        - Error
    Error401:
      type: object
      properties:
        Status:
          type: string
          example: failure
        Error:
          type: object
          properties:
            message:
              type: string
            name:
              type: string
            code:
              type: string
          required:
            - message
            - name
      required:
        - Status
        - Error
    Error500:
      type: object
      properties:
        Status:
          type: string
          example: failure
        Error:
          type: object
          properties:
            message:
              type: string
            name:
              type: string
            code:
              type: string
          required:
            - message
            - name
      required:
        - Status
        - Error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````