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

# Get all courses progress of a given user 

> Get all courses progress of a given user. Use this to get their progress and completion data.

Authentication with the "FERMION-API-KEY" header is required to use this endpoint.

Rate limit: Maximum 300 requests in a window of 1m.



## OpenAPI

````yaml https://backend.codedamn.com/webhook/fermion-backend-openapi.yaml post /public/get-user-all-courses-progress
openapi: 3.0.0
info:
  version: 1.0.0
  title: Fermion Backend API
  description: Documentation for interacting with the Fermion API
  contact:
    name: Fermion Support
    email: support@codedamn.com
servers:
  - url: https://backend.codedamn.com/api
    description: Fermion primary backend server
security: []
externalDocs:
  description: Fermion Docs
  url: https://docs.fermion.app
paths:
  /public/get-user-all-courses-progress:
    post:
      tags:
        - Analytics
      summary: 'Get all courses progress of a given user '
      description: >-
        Get all courses progress of a given user. Use this to get their progress
        and completion data.


        Authentication with the "FERMION-API-KEY" header is required to use this
        endpoint.


        Rate limit: Maximum 300 requests in a window of 1m.
      requestBody:
        description: API Request Body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      data:
                        type: object
                        properties:
                          filterData:
                            type: object
                            properties:
                              maximumCourseProgress:
                                type: number
                                minimum: 0
                                maximum: 100
                              minimumCourseProgress:
                                type: number
                                minimum: 0
                                maximum: 100
                            description: Pass down optional filters to filter out results
                          userIdentifier:
                            anyOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - email
                                  email:
                                    type: string
                                    format: email
                                    description: User email
                                required:
                                  - type
                                  - email
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - user-id
                                  userId:
                                    type: string
                                    description: >-
                                      User ID. Pass the same user ID that you
                                      used to create this user
                                required:
                                  - type
                                  - userId
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - fermion-user-id
                                  fermionUserId:
                                    type: string
                                    description: >-
                                      Fermion user ID. Pass the Fermion provided
                                      user ID of the user.
                                required:
                                  - type
                                  - fermionUserId
                        required:
                          - userIdentifier
                    required:
                      - data
              required:
                - data
      responses:
        '200':
          description: API Response Body
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    output:
                      anyOf:
                        - type: object
                          properties:
                            status:
                              type: string
                              enum:
                                - ok
                            data:
                              type: object
                              properties:
                                coursesData:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      title:
                                        type: string
                                      thumbnailUrl:
                                        type: string
                                        format: uri
                                      enrolledAt:
                                        type: string
                                      completionPercentageOutOf100:
                                        type: number
                                      expectedCourseCompletionTimeInDays:
                                        anyOf:
                                          - type: number
                                          - nullable: true
                                          - nullable: true
                                      courseItems:
                                        type: array
                                        items:
                                          anyOf:
                                            - type: object
                                              properties:
                                                uniqueId:
                                                  type: string
                                                title:
                                                  type: string
                                                isCompleted:
                                                  type: boolean
                                                type:
                                                  type: string
                                                  enum:
                                                    - Article
                                                    - Ebook
                                                    - Lab
                                                    - LiveClass
                                                    - LiveEvent
                                                    - Quiz
                                                    - Video
                                                    - ScormFile
                                                    - IframeEmbed
                                                    - Assignment
                                                    - Resources
                                              required:
                                                - uniqueId
                                                - title
                                                - isCompleted
                                                - type
                                            - type: object
                                              properties:
                                                uniqueId:
                                                  type: string
                                                title:
                                                  type: string
                                                isCompleted:
                                                  type: boolean
                                                contestId:
                                                  type: string
                                                attemptsData:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      isDeletedAttempt:
                                                        type: boolean
                                                      attemptStartedAt:
                                                        type: string
                                                        format: date-time
                                                      attemptId:
                                                        type: string
                                                      userScore:
                                                        type: number
                                                      maxScore:
                                                        type: number
                                                    required:
                                                      - isDeletedAttempt
                                                      - attemptStartedAt
                                                      - attemptId
                                                      - userScore
                                                      - maxScore
                                                type:
                                                  type: string
                                                  enum:
                                                    - Contest
                                              required:
                                                - uniqueId
                                                - title
                                                - isCompleted
                                                - contestId
                                                - attemptsData
                                                - type
                                    required:
                                      - title
                                      - thumbnailUrl
                                      - enrolledAt
                                      - completionPercentageOutOf100
                                      - expectedCourseCompletionTimeInDays
                                      - courseItems
                              required:
                                - coursesData
                          required:
                            - status
                            - data
                        - type: object
                          properties:
                            status:
                              type: string
                              enum:
                                - error
                            errorMessage:
                              type: string
                          required:
                            - status
                            - errorMessage
                  required:
                    - output
      security:
        - FERMION-API-KEY: []
components:
  securitySchemes:
    FERMION-API-KEY:
      name: FERMION-API-KEY
      type: apiKey
      in: header

````