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

# Listing submissions

> Returns a paginated list of form submissions with their responses.

<Tip>
  <b>Looking for real-time submissions?</b> The most efficient way to instantly retrieve new
  submissions is by using a [webhook](https://tally.so/help/webhooks). This allows you to receive
  data as soon as a form is submitted, without needing to poll the API.
</Tip>


## OpenAPI

````yaml GET /forms/{formId}/submissions
openapi: 3.0.1
info:
  title: OpenAPI
  description: Tally's API
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.tally.so
security:
  - bearerAuth: []
paths:
  /forms/{formId}/submissions:
    get:
      tags:
        - Forms
      summary: List form submissions
      description: Returns a paginated list of form submissions with their responses.
      parameters:
        - name: formId
          in: path
          required: true
          description: The ID of the form
          schema:
            type: string
        - name: page
          in: query
          required: false
          description: 'Page number for pagination (default: 1)'
          schema:
            type: number
        - name: filter
          in: query
          required: false
          description: Filter submissions by status
          schema:
            type: string
            enum:
              - all
              - completed
              - partial
        - name: startDate
          in: query
          required: false
          description: Filter submissions submitted on or after this date (ISO 8601 format)
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          required: false
          description: >-
            Filter submissions submitted on or before this date (ISO 8601
            format)
          schema:
            type: string
            format: date-time
        - name: afterId
          in: query
          required: false
          description: Get submissions that came after a specific submission ID
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: 'Number of submissions to return per page (default: 50, max: 500)'
          schema:
            type: number
            minimum: 1
            maximum: 500
            default: 50
      responses:
        '200':
          description: List of form submissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: number
                    description: Current page number
                  limit:
                    type: number
                    description: Number of submissions per page
                  hasMore:
                    type: boolean
                    description: Whether there are more pages available
                  totalNumberOfSubmissionsPerFilter:
                    type: object
                    properties:
                      all:
                        type: number
                        description: Total number of all submissions
                      completed:
                        type: number
                        description: Total number of completed submissions
                      partial:
                        type: number
                        description: Total number of partial submissions
                  questions:
                    type: array
                    description: List of form questions
                    items:
                      $ref: '#/components/schemas/Question'
                  submissions:
                    type: array
                    description: List of form submissions
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Submission ID
                        formId:
                          type: string
                          description: Form ID
                        isCompleted:
                          type: boolean
                          description: Whether the submission is completed
                        submittedAt:
                          type: string
                          format: date-time
                          description: When the submission was submitted
                        previewUrl:
                          type: string
                          format: uri
                          description: >-
                            Signed URL to view the submission in a browser.
                            Includes an access token, no expiry.
                        pdfUrl:
                          type: string
                          format: uri
                          description: >-
                            Signed URL to download the submission as a PDF.
                            Includes an access token, no expiry.
                        responses:
                          type: array
                          description: >-
                            List of responses to form questions. Note: Only
                            questions that have been answered will appear in
                            this array.
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                description: Response ID
                              formId:
                                type: string
                                description: Form ID
                              questionId:
                                type: string
                                description: Question ID
                              respondentId:
                                type: string
                                description: Respondent ID
                              submissionId:
                                type: string
                                nullable: true
                                description: Submission ID
                              sessionUuid:
                                type: string
                                format: uuid
                                description: Session UUID
                              answer:
                                description: >-
                                  The answer value for this question. Type
                                  varies based on question type.
                                nullable: true
                                oneOf:
                                  - type: string
                                  - type: number
                                  - type: boolean
                                  - type: array
                                    items: {}
                                  - type: object
                              formattedAnswer:
                                type: string
                                description: >-
                                  Formatted answer (e.g., for number inputs with
                                  custom formatting)
                              createdAt:
                                type: string
                                format: date-time
                                description: When the response was created
                              updatedAt:
                                type: string
                                format: date-time
                                description: When the response was last updated
                            required:
                              - id
                              - formId
                              - questionId
                              - respondentId
                              - sessionUuid
                              - answer
                              - createdAt
                              - updatedAt
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Form not found
      security:
        - bearerAuth: []
components:
  schemas:
    Question:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/BlockType'
        title:
          type: string
        isTitleModifiedByUser:
          type: boolean
        formId:
          type: string
        isDeleted:
          type: boolean
        numberOfResponses:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        fields:
          type: array
          items:
            $ref: '#/components/schemas/QuestionField'
    BlockType:
      type: string
      enum:
        - FORM_TITLE
        - TEXT
        - LABEL
        - TITLE
        - HEADING_1
        - HEADING_2
        - HEADING_3
        - DIVIDER
        - PAGE_BREAK
        - IMAGE
        - EMBED
        - EMBED_VIDEO
        - EMBED_AUDIO
        - QUESTION
        - MATRIX
        - INPUT_TEXT
        - INPUT_NUMBER
        - INPUT_EMAIL
        - INPUT_LINK
        - INPUT_PHONE_NUMBER
        - INPUT_DATE
        - INPUT_TIME
        - TEXTAREA
        - FILE_UPLOAD
        - LINEAR_SCALE
        - RATING
        - HIDDEN_FIELDS
        - MULTIPLE_CHOICE_OPTION
        - CHECKBOX
        - DROPDOWN_OPTION
        - RANKING_OPTION
        - MULTI_SELECT_OPTION
        - PAYMENT
        - SIGNATURE
        - MATRIX_ROW
        - MATRIX_COLUMN
        - WALLET_CONNECT
        - CONDITIONAL_LOGIC
        - CALCULATED_FIELDS
        - CAPTCHA
        - RESPONDENT_COUNTRY
    QuestionField:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        type:
          $ref: '#/components/schemas/BlockType'
        blockGroupUuid:
          type: string
          format: uuid
        title:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````