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

# Get assessment progress

> 
Returns the progress the student has made in the given PowerPath lesson.

A 'Lesson' in this context is a ComponentResource object paired with a Resource object representing an activity.




## OpenAPI

````yaml /openapi/beyond-ai/powerpath-api.yaml get /powerpath/getAssessmentProgress
openapi: 3.1.0
info:
  title: PowerPath API
  version: 1.0.0
  description: >
    TimeBack PowerPath 100 API


    # Authentication


    All endpoints require authentication using the `Authorization: Bearer
    <token>` header.


    The token can be obtained with:


    ```

    curl -X POST
    https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
    \

    -H "Content-Type: application/x-www-form-urlencoded" \

    -d
    "grant_type=client_credentials&client_id=<your-client-id>&client_secret=<your-client-secret>"

    ```


    Use the correct IDP server depending on the environment you're using:


    IDP Server for this environment:

    ```

    https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com

    ```


    Reach out to the platform team to get a client/secret pair for your
    application.


    # Pagination


    Our API uses offset pagination for list endpoints. Paginated responses
    include the following fields:


    - `offset`: Offset for the next page of results

    - `limit`: Number of items per page (default: 100, maximum: 3000)


    **Note:** While the OneRoster specification does not define a maximum limit,
    this implementation enforces a maximum of 3000 items per page to prevent
    abuse and ensure optimal performance.


    Example request:


    ```

    GET /ims/oneroster/rostering/v1p2/users?offset=20&limit=20

    ```


    All listing endpoints support offset pagination.


    # Filtering


    All listing endpoints support filtering using the `filter` query parameter,
    following 1EdTech's filtering specification.


    The filter should be a string with the following format:


    ```

    ?filter=[field][operator][value]

    ```


    Example request:


    ```

    GET /ims/oneroster/rostering/v1p2/users?filter=status='active'

    ```


    Example request with multiple filters:


    ```

    GET /ims/oneroster/rostering/v1p2/users?filter=status='active' AND
    name='John'

    ```


    **Filtering by nested relations is not supported**.


    # Sorting


    All listing endpoints support sorting using the `sort` and `orderBy` query
    parameters, following 1EdTech's sorting specification


    Example request:


    ```

    GET /ims/oneroster/rostering/v1p2/users?sort=lastName&orderBy=asc

    ```


    # Proprietary Extensions


    This implementation includes proprietary extensions that extend beyond the
    official OneRoster 1.2 specification to provide additional functionality.


    ## Search Parameter


    In addition to the standard `filter` parameter, this implementation provides
    a `search` query parameter for simplified free-text searching:


    ```

    GET /ims/oneroster/rostering/v1p2/users?search=john

    ```


    **Purpose**: The `search` parameter enables convenient text-based queries
    across multiple fields simultaneously, whereas the standard `filter`
    parameter requires specifying exact field names and operators:


    ```

    # Search parameter - searches across multiple fields automatically

    GET /ims/oneroster/rostering/v1p2/users?search=john


    # Equivalent using standard filter parameter

    GET /ims/oneroster/rostering/v1p2/users?filter=givenName~'john' OR
    familyName~'john'

    ```


    The `search` parameter performs case-insensitive partial matching across
    predefined fields for each endpoint, providing a more user-friendly querying
    experience.


    ## OneRoster 1.2 Standard Parameters


    The official OneRoster 1.2 specification defines these standard parameters:


    - `limit` - pagination limit

    - `offset` - pagination offset

    - `sort` - field to sort by

    - `orderBy` - sort direction (asc/desc)

    - `filter` - filtering expression

    - `fields` - field selection


    ## Affected Endpoints


    The proprietary `search` parameter is available on the following endpoints:


    **Rostering API**:


    - `GET /ims/oneroster/rostering/v1p2/academicSessions/`

    - `GET /ims/oneroster/rostering/v1p2/classes/`

    - `GET /ims/oneroster/rostering/v1p2/classes/{classSourcedId}/students`

    - `GET /ims/oneroster/rostering/v1p2/classes/{classSourcedId}/teachers`

    - `GET /ims/oneroster/rostering/v1p2/courses/`

    - `GET /ims/oneroster/rostering/v1p2/courses/{courseSourcedId}/classes`

    - `GET /ims/oneroster/rostering/v1p2/demographics/`

    - `GET /ims/oneroster/rostering/v1p2/enrollments/`

    - `GET
    /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/classes/{classSourcedId}/students`

    - `GET /ims/oneroster/rostering/v1p2/users/`


    **Gradebook API**:


    - `GET /ims/oneroster/gradebook/v1p2/assessmentLineItems/`

    - `GET /ims/oneroster/gradebook/v1p2/assessmentResults/`

    - `GET
    /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/students/{studentSourcedId}/results`

    - `GET /ims/oneroster/gradebook/v1p2/results/`


    **Resources API**:


    - `GET /ims/oneroster/resources/v1p2/resources/`


    ## Parameter Usage Guide


    ### Filter Parameter


    The standard `filter` parameter provides precise control over queries using
    these operators:


    - `=` - Exact match

    - `!=` - Not equal

    - `~` - Contains (case-insensitive)

    - `>`, `>=`, `<`, `<=` - Comparison operators

    - `@` - In list (comma-separated values)


    ### Logical Operators


    Combine multiple conditions in filter expressions:


    - `AND` - Both conditions must be true

    - `OR` - Either condition must be true


    ### Usage Examples


    ```bash

    # Simple text search across multiple fields

    GET /users?search=john


    # Equivalent precise filtering

    GET /users?filter=givenName~'john' OR familyName~'john'


    # Complex filtering with multiple conditions

    GET /users?filter=status='active' AND givenName~'john'


    # Advanced filtering with different operators

    GET /users?filter=dateLastModified>'2023-01-01' AND status='active'

    ```


    ## Search Fields by Endpoint


    Different endpoints search across these predefined fields:


    - **Users**: `givenName`, `familyName`, `email`

    - **Courses**: `title`, `courseCode`

    - **Classes**: `title`

    - **Organizations**: `name`


    ## Interoperability Notes


    The `search` parameter is a proprietary extension specific to this
    implementation. Other OneRoster-compliant systems may only support the
    standard `filter` parameter. When building applications that need to work
    with multiple OneRoster providers, consider using the standard filtering
    approach.


    ## Additional Schema Fields


    ### AssessmentLineItem Extensions


    The AssessmentLineItem schema includes two proprietary fields that extend
    curriculum mapping capabilities:


    #### Component Field


    - **Field**: `component`

    - **Type**: Object reference (`{ sourcedId: string }`)

    - **Purpose**: Direct association between assessment line items and course
    components, enabling enhanced curriculum mapping and learning pathway
    tracking.


    #### ComponentResource Field


    - **Field**: `componentResource`

    - **Type**: Object reference (`{ sourcedId: string }`)

    - **Purpose**: Direct association between assessment line items and specific
    learning resources, supporting detailed content-to-assessment relationships
    and adaptive learning features.


    **Example Usage**:


    ```json

    {
      "sourcedId": "assessment-123",
      "title": "Chapter 5 Quiz",
      "component": { "sourcedId": "component-456" },
      "componentResource": { "sourcedId": "resource-789" }
    }

    ```


    ## Affected Endpoints


    ### Schema Extensions Availability


    The proprietary schema fields are available in:


    **Gradebook API**:


    - `GET /ims/oneroster/gradebook/v1p2/assessmentLineItems/` - Returns
    assessmentLineItems with `component` and `componentResource` fields

    - `GET /ims/oneroster/gradebook/v1p2/assessmentLineItems/{sourcedId}` -
    Returns individual assessmentLineItem with extended fields

    - `POST /ims/oneroster/gradebook/v1p2/assessmentLineItems/` - Accepts
    `component` and `componentResource` in request body

    - `PUT /ims/oneroster/gradebook/v1p2/assessmentLineItems/{sourcedId}` -
    Accepts extended fields for updates
servers:
  - url: https://api.alpha-1edtech.ai
    description: PowerPath API
security:
  - OAuth2: []
tags:
  - name: Course Mastery
  - name: Course Sequence
    description: >-
      Manage course sequences and query course sequence to get the next stage in
      the student learning path
  - name: Lesson Mastery
    description: >-
      Track and manage student mastery of lesson objectives, through PowerPath
      100 lessons
  - name: Lesson Plans
    description: Manage lesson plans and instructional content
  - name: Placement
  - name: Test Assignments
  - name: Test Out
    description: >-
      Self-elected test-out endpoints for students to verify mastery and advance
      to the next grade level
paths:
  /powerpath/getAssessmentProgress:
    get:
      tags:
        - Lesson Mastery
        - Course Mastery
      summary: Get assessment progress
      description: >

        Returns the progress the student has made in the given PowerPath lesson.


        A 'Lesson' in this context is a ComponentResource object paired with a
        Resource object representing an activity.
      operationId: getAssessmentProgress
      parameters:
        - in: query
          name: student
          description: The sourcedId of the student who is answering the question
          schema:
            type: string
            description: The sourcedId of the student who is answering the question
          required: true
        - in: query
          name: lesson
          description: The sourcedId of the lesson (ComponentResource)
          schema:
            type: string
            description: The sourcedId of the lesson (ComponentResource)
          required: true
        - in: query
          name: attempt
          description: The attempt number of the lesson that the student is answering
          schema:
            type: string
            description: The attempt number of the lesson that the student is answering
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PowerPath100ProgressResult'
                  - type: object
                    properties:
                      lessonType:
                        type: string
                        enum:
                          - quiz
                          - test-out
                          - placement
                          - unit-test
                      finalized:
                        type: boolean
                        description: >-
                          Whether the lesson has been finalized in the current
                          attempt
                      score:
                        type: number
                        description: The current score for this attempt
                      questions:
                        type: array
                        items:
                          $ref: '#/components/schemas/PowerPathTestQuestion'
                      toolProvider:
                        type:
                          - string
                          - 'null'
                        description: The tool provider of the lesson if external
                      enrollmentFailed:
                        type: boolean
                        description: >-
                          Whether auto-enrollment failed due to missing subject
                          track or enrollment error. Only present for finalized
                          external tests.
                      testResultId:
                        type: string
                        description: The sourcedId of the parent test AssessmentResult
                      attempt:
                        type: number
                        description: The attempt number
                      xp:
                        type:
                          - number
                          - 'null'
                        description: The XP the student has earned in the lesson
                      multiplier:
                        type:
                          - number
                          - 'null'
                        description: The multiplier for the student's XP
                      accuracy:
                        type: number
                        description: The accuracy of the student's attempted questions
                      correctQuestions:
                        type: number
                        description: >-
                          The number of correct questions the student has
                          answered in the lesson
                      totalQuestions:
                        type: number
                        description: The total number of questions in the lesson
                    required:
                      - lessonType
                      - finalized
                      - questions
                      - toolProvider
                      - attempt
                      - xp
                      - multiplier
                      - accuracy
                      - correctQuestions
                      - totalQuestions
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedRequestResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Unprocessable Entity / Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
components:
  schemas:
    PowerPath100ProgressResult:
      type: object
      properties:
        lessonType:
          type: string
          const: powerpath-100
        remainingQuestionsPerDifficulty:
          type: object
          properties:
            easy:
              type: number
            medium:
              type: number
            hard:
              type: number
          required:
            - easy
            - medium
            - hard
        score:
          type: number
          description: The current score for this attempt
        seenQuestions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: The ID that represents the question in the test
              index:
                type: number
                description: The index of the question in the test
              title:
                type: string
                description: The title of the question
              url:
                type: string
                format: uri
                description: The URL of the QTI question
              difficulty:
                type: string
                enum:
                  - easy
                  - medium
                  - hard
                default: medium
                description: The difficulty of the question
              humanApproved:
                type:
                  - boolean
                  - 'null'
                description: Whether the question has been approved by a human
              content:
                type: object
                properties:
                  type:
                    type: string
                    description: The type of the question
                  rawXml:
                    type: string
                    description: The raw XML question in QTI format
                required:
                  - rawXml
                description: The QTI content of the question
              response:
                anyOf:
                  - type: string
                  - type: array
                    items:
                      type: string
                description: The student's response to the question
              responses:
                type: object
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                description: >-
                  Object containing response identifiers as keys and their
                  corresponding values as strings or arrays of strings
              correct:
                type: boolean
                description: Whether the student's response is correct
              result:
                type: object
                properties:
                  outcomes:
                    type: object
                    additionalProperties:
                      type: string
                    description: The outcomes of the question
                  score:
                    type: number
                    description: >-
                      The score assigned to the question, considering the
                      student's response
                  feedback:
                    type: string
                    description: The feedback for the question
                required:
                  - score
                  - feedback
                description: The result of the question
              resultId:
                type: string
                description: >-
                  The sourcedId of the AssessmentResult for this question
                  attempt
              learningObjectives:
                type: array
                items:
                  type: string
                description: Array of learning objective IDs associated with the question
              playerState:
                type: string
                description: >-
                  Opaque renderer state for session restoration (Mode B external
                  renderers only)
            required:
              - id
              - index
              - title
              - url
              - difficulty
            description: A PowerPath Test Question
        testResultId:
          type: string
          description: The sourcedId of the parent test AssessmentResult
        attempt:
          type: number
          description: The attempt number
        xp:
          type:
            - number
            - 'null'
          description: The XP the student has earned in the lesson
        multiplier:
          type:
            - number
            - 'null'
          description: The multiplier for the student's XP
        accuracy:
          type: number
          description: The accuracy of the student's attempted questions
        correctQuestions:
          type: number
          description: >-
            The number of correct questions the student has answered in the
            lesson
        totalQuestions:
          type: number
          description: The total number of questions in the lesson
      required:
        - lessonType
        - remainingQuestionsPerDifficulty
        - score
        - seenQuestions
        - attempt
        - xp
        - multiplier
        - accuracy
        - correctQuestions
        - totalQuestions
      description: Represents the progress of the student in the PowerPath100 lesson
    PowerPathTestQuestion:
      type: object
      properties:
        id:
          type: string
          description: The ID that represents the question in the test
        index:
          type: number
          description: The index of the question in the test
        title:
          type: string
          description: The title of the question
        url:
          type: string
          format: uri
          description: The URL of the QTI question
        difficulty:
          type: string
          enum:
            - easy
            - medium
            - hard
          default: medium
          description: The difficulty of the question
        humanApproved:
          type:
            - boolean
            - 'null'
          description: Whether the question has been approved by a human
        content:
          type: object
          properties:
            type:
              type: string
              description: The type of the question
            rawXml:
              type: string
              description: The raw XML question in QTI format
          required:
            - rawXml
          description: The QTI content of the question
        response:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
          description: The student's response to the question
        responses:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
          description: The student's responses to the question
        correct:
          type: boolean
          description: Whether the student's response is correct
        result:
          type: object
          properties:
            outcomes:
              type: object
              additionalProperties:
                type: string
              description: The outcomes of the question
            score:
              type: number
              description: >-
                The score assigned to the question, considering the student's
                response
            feedback:
              type: string
              description: The feedback for the question
          required:
            - score
            - feedback
          description: The result of the question
        resultId:
          type: string
          description: The sourcedId of the AssessmentResult for this question attempt
        learningObjectives:
          type: array
          items:
            type: string
          description: Array of learning objective IDs associated with the question
      required:
        - id
        - index
        - title
        - url
        - difficulty
      description: A PowerPath Test Question
    BadRequestResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: invaliddata
                    description: The field value for the minor code
                    example: invaliddata
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    UnauthorizedRequestResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: unauthorisedrequest
                    description: The field value for the minor code
                    example: unauthorisedrequest
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    ForbiddenResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: forbidden
                    description: The field value for the minor code
                    example: forbidden
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    NotFoundResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: unknownobject
                    description: The field value for the minor code
                    example: unknownobject
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    UnprocessableEntityResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: invaliddata
                    description: The field value for the minor code
                    example: invaliddata
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    TooManyRequestsResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: server_busy
                    description: The field value for the minor code
                    example: server_busy
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
    InternalServerErrorResponse:
      type: object
      properties:
        imsx_codeMajor:
          type: string
          default: failure
          description: The major response code
          example: failure
        imsx_severity:
          type: string
          default: error
          description: The severity of the response
          example: error
        imsx_description:
          type: string
        imsx_CodeMinor:
          type: object
          properties:
            imsx_codeMinorField:
              type: array
              items:
                type: object
                properties:
                  imsx_codeMinorFieldName:
                    type: string
                    default: TargetEndSystem
                    description: The field name for the minor code
                    example: TargetEndSystem
                  imsx_codeMinorFieldValue:
                    type: string
                    default: internal_server_error
                    description: The field value for the minor code
                    example: internal_server_error
                required:
                  - imsx_codeMinorFieldName
                  - imsx_codeMinorFieldValue
          required:
            - imsx_codeMinorField
        imsx_error_details:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
        - imsx_codeMajor
        - imsx_severity
        - imsx_description
        - imsx_CodeMinor
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            https://purl.imsglobal.org/spec/or/v1p1/scope/admin: Admin access to the API
            https://purl.imsglobal.org/spec/or/v1p2/scope/admin.own: Admin access restricted to own resources
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster-core.readonly: Read access to roster core
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster.readonly: Read access to roster
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster.createput: Create and update access to roster
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster.delete: Delete access to roster
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster-demographics.readonly: Read access to roster demographics
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster-demographics.createput: Create and update access to roster demographics
            https://purl.imsglobal.org/spec/or/v1p1/scope/roster-demographics.delete: Delete access to roster demographics
            https://purl.imsglobal.org/spec/or/v1p1/scope/resource.readonly: Read access to resource
            https://purl.imsglobal.org/spec/or/v1p1/scope/resource.createput: Create and update access to resource
            https://purl.imsglobal.org/spec/or/v1p1/scope/resource.delete: Delete access to resource
            https://purl.imsglobal.org/spec/or/v1p1/scope/gradebook.readonly: Read access to gradebook
            https://purl.imsglobal.org/spec/or/v1p1/scope/gradebook.createput: Create and update access to gradebook
            https://purl.imsglobal.org/spec/or/v1p1/scope/gradebook.delete: Delete access to gradebook
            https://purl.imsglobal.org/spec/powerpath/v1p1/scope/powerpath.readonly: Read access to powerpath
            https://purl.imsglobal.org/spec/powerpath/v1p1/scope/powerpath.createput: Create and update access to powerpath
            https://purl.imsglobal.org/spec/powerpath/v1p1/scope/powerpath.delete: Delete access to powerpath
            https://purl.imsglobal.org/spec/powerpath/v1p1/scope/powerpath.admin: Admin access to powerpath
            https://purl.imsglobal.org/spec/ob/v3p0/scope/credential.readonly: Read your issued badges
            https://purl.imsglobal.org/spec/ob/v3p0/scope/credential.upsert: Store new badges in your account
            https://purl.imsglobal.org/spec/ob/v3p0/scope/credential.delete: Delete access to open badges
            https://purl.imsglobal.org/spec/ob/v3p0/scope/credential.admin: Administrative access to open badges
            https://purl.imsglobal.org/spec/clr/v2p0/scope/credential.readonly: Read access to CLR
            https://purl.imsglobal.org/spec/clr/v2p0/scope/credential.upsert: Create and update access to CLR
            https://purl.imsglobal.org/spec/clr/v2p0/scope/credential.admin: Administrative access to CLR
            https://api.alpha-1edtech.ai/edubridge/progression.readonly: Browse lesson catalog via progression proxy
            https://api.alpha-1edtech.ai/edubridge/progression.createput: Create hole-filling courses via progression proxy
          tokenUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token

````