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

# Query submissions

> Retrieve submissions with optional filtering by email, type, and date range



## OpenAPI

````yaml GET /submissions
openapi: 3.0.3
info:
  title: UAG Work-Based Learning API
  description: >-
    API for managing work-based learning submissions, authentication, and
    verification
  version: 1.0.0
servers:
  - url: https://wbl.monolisk.dev
    description: Production server
  - url: http://localhost:8787
    description: Development server
security: []
tags:
  - name: Authentication
    description: Authentication and user information endpoints
  - name: Submissions
    description: Work experience submission management
  - name: Verification
    description: Supervisor verification task management
paths:
  /submissions:
    get:
      tags:
        - Submissions
      summary: Fetch submissions with filtering and pagination
      description: >-
        Retrieve submissions with optional filtering by email, type, and date
        range
      parameters:
        - name: page
          in: query
          schema:
            type: integer
            minimum: 0
            default: 0
          description: Page number for pagination
        - name: size
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          description: Number of items per page
        - name: email
          in: query
          schema:
            type: string
          description: Filter by email (partial match)
        - name: type
          in: query
          schema:
            type: string
          description: Filter by experience type/kind (partial match)
        - name: minDate
          in: query
          schema:
            type: string
            format: date
          description: Filter submissions created on or after this date (YYYY-MM-DD)
        - name: maxDate
          in: query
          schema:
            type: string
            format: date
          description: Filter submissions created on or before this date (YYYY-MM-DD)
      responses:
        '200':
          description: Submissions retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSubmissionsResponse'
        '400':
          description: Invalid page or size parameters
components:
  schemas:
    GetSubmissionsResponse:
      type: object
      properties:
        submissions:
          type: array
          items:
            $ref: '#/components/schemas/SubmissionWithMetadata'
        pagination:
          $ref: '#/components/schemas/PaginationInfo'
      required:
        - submissions
        - pagination
    SubmissionWithMetadata:
      allOf:
        - $ref: '#/components/schemas/SerializedWorkExperience'
        - type: object
          properties:
            submissionToken:
              type: string
            email:
              type: string
              format: email
            verificationTask:
              type: string
              nullable: true
            verificationInfo:
              type: object
              nullable: true
              properties:
                status:
                  $ref: '#/components/schemas/VerificationTaskStatus'
                createdAt:
                  type: integer
                  description: Unix timestamp
                updatedAt:
                  type: integer
                  description: Unix timestamp
            createdAt:
              type: integer
              description: Unix timestamp
            updatedAt:
              type: integer
              description: Unix timestamp
          required:
            - submissionToken
            - email
            - createdAt
            - updatedAt
    PaginationInfo:
      type: object
      properties:
        page:
          type: integer
          description: Current page number
        length:
          type: integer
          description: Number of items per page
        total:
          type: integer
          description: Total number of items
        totalPages:
          type: integer
          description: Total number of pages
      required:
        - page
        - length
        - total
        - totalPages
    SerializedWorkExperience:
      type: object
      properties:
        kind:
          type: string
          description: Type of work experience
        hours:
          type: integer
          nullable: true
          description: Number of hours worked
        supervisor:
          type: string
          nullable: true
          format: email
          description: Supervisor email address
        dateRange:
          type: object
          nullable: true
          properties:
            start:
              type: string
              format: date
              description: Start date
            end:
              type: string
              format: date
              description: End date
          required:
            - start
            - end
        date:
          type: string
          nullable: true
          format: date
          description: Single date for the experience
        shortResponse:
          type: string
          nullable: true
          description: Brief description of the experience
        longResponse:
          type: string
          nullable: true
          description: Detailed description of the experience
        wasInSchool:
          type: boolean
          nullable: true
          description: Whether the experience was during school time
      required:
        - kind
    VerificationTaskStatus:
      type: integer
      enum:
        - 0
        - 1
        - 2
      description: 0 = PENDING, 1 = VERIFIED, 2 = REJECTED

````