> ## 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.

# Read full subject goal snapshots for multiple students

> Full subject-goals read for up to 100 unique students after trimming and deduplication. Each successful results entry has the same body as `GET /goals/{studentId}/subjects`, including dailyTargetXPTotal, progress, pacing, calendar, and projection data. The existing managed-minimum initialization may create missing goals and revisions. Uses the individual route's tenant visibility policy; callers must restrict the requested roster to authorized students. Per-student not_found, internal_error, and deadline_exceeded errors remain in the HTTP 200 response, including an all-error batch. Retry failed students or fall back to individual reads. Shared preflight failures can still fail the entire request. POST /goals/subjects/daily-targets/batch is an additional compact option for callers that only need saved daily targets; it does not replace this full contract.



## OpenAPI

````yaml /openapi/beyond-ai/edubridge-api.yaml post /goals/subjects/batch
openapi: 3.1.0
info:
  title: Edubridge API
  version: 1.0.0
  description: >
    # EduBridge API Overview


    The Edubridge API provides simplified interfaces for digital schools to
    manage their digital courses and student enrollments,

    abstracting away the complexities of the OneRoster standard while
    maintaining compatibility.


    It offers streamlined endpoints to enroll students in courses without the
    need to understand the underlying academic hierarchy.


    This API significantly reduces integration complexity for third-party
    systems by handling

    the background creation and management of academic sessions (per year),
    classes (per course), and enrollment relationships,

    allowing consumers to focus on educational experiences rather than data
    management.


    Entities involved in the Edubridge API:


    - Year academic session (per school)

    - Term academic session (spans the whole year)

    - Class (per course + term)

    - Enrollment (per student per class)


    ## Auto-managed entities


    The Edubridge API automatically manages the following entities:


    - Year academic session

    - Term academic session (spans the whole year)

    - Class (per course + term)


    ## Course-centric enrollment


    This API offers a course-centric view of enrollments, allowing consumers to
    focus on what courses the student is enrolled in rather than details about
    the underlying academic hierarchy.


    You as an API consumer do not need to understand the underlying academic
    hierarchy to use this API, if you are only interested in what courses a
    student is enrolled in.


    Consumers that need to interact with the underlying academic hierarchy
    through flows not covered by this API can do so by using the raw OneRoster
    API.


    ## Pre-requisites


    Before you can enroll a user in a course, you need the following entities
    created:


    - A school or equivalent organization

    - A course (linked to the organization via orgSourcedId)

    - A user (that will be enrolled in the course)


    ## Analytics API


    The Edubridge Analytics API provides student activity data and metrics
    across enrollments.


    ### Available Endpoints


    **Weekly Facts** - Get facts for a specific week by student email or ID

    - Returns: List of individual facts grouped by date


    **Activity (Date Range)** - Get facts for a custom date range by student
    email or ID

    - Returns: Aggregated metrics grouped by date → subject and date → subject →
    app


    **Enrollment Facts** - Get facts for a specific enrollment

    - Returns: Aggregated metrics for all activity within an enrollment

    - Supports optional date range filtering via `startDate` and `endDate` query
    parameters

    - Supports timezone conversion via `timezone` query parameter


    **Highest Grade Mastered** - Get the highest grade a student has mastered
    for a subject

    - Returns: Grade data from multiple sources (Edulastic, placement tests,
    test-out)


    **Student Percentiles** - Get the latest MAP percentile snapshots for a
    student

    - Returns: Per-subject percentile, RIT score, assessment date, and season

    - Used by: Goals UI setup and percentile/x-factor previews


    ### Metrics Included


    - **Activity Metrics**: Questions answered (total/correct), XP earned, units
    mastered

    - **Time Metrics**: Active seconds, inactive seconds, waste seconds

    - **Grouping**: Subject, application/platform, course, campus, date


    ### Authorization


    All analytics endpoints require the `analytics.readOnly` OAuth scope.


    ## Goals API


    The Goals API enables students to preview, track, and update learning goals
    through the Lambda-backed `/goals/*` surface.


    ### Goal Types


    | Type | Description | Required Fields |

    |------|-------------|-----------------|

    | `minimum` | Daily minimum XP target (ongoing) | `subject`, `targetValue`,
    `targetMetric` |

    | `grade_mastery` | Master content up to target grade | `subject`,
    `targetValue` |

    | `percentile` | Reach target percentile (RIT subjects only) | `subject`,
    `targetValue` |

    | `x_factor` | Grow Nx faster than typical (e.g., 2x growth) | `subject`,
    `targetValue` |

    | `course` | Complete a specific course or explicit course set | `subject`,
    `targetValue`, `targetMetric`, and either `stageId` or `courseIds` |


    ### Pace Type


    Milestone goals (`grade_mastery`, `percentile`, `x_factor`, `course`)
    support two pacing approaches:


    | paceType | User Sets | System Calculates |

    |----------|-----------|-------------------|

    | `target_date` | End date | Daily XP needed |

    | `daily_time` | Daily time commitment | Projected completion timeline |


    Example: "Reach 6th grade Math by May 15" (`target_date`) vs "Work toward
    6th grade Math at a steady daily pace" (`daily_time`).


    ### Available Endpoints


    **Subject Goals**

    - `GET /:studentId/subjects` - List subject goal snapshots for a student;
    bootstrap reads ensure managed minimum goals exist for currently enrolled
    supported subjects

    - `POST /:studentId/subjects` - Create the active learner-facing subject
    goal for a subject

    - `PATCH /:studentId/subjects/:subject` - Update the active learner-facing
    subject goal for a subject

    - `DELETE /:studentId/subjects/:subject` - Delete the active learner-facing
    subject goal for a subject

    - `PATCH /:studentId/subjects/:subject/minimum` - Update the managed minimum
    baseline for a subject

    - `POST /:studentId/subjects/preview` - Preview a learner-facing subject
    goal without saving it


    **Course Goals**

    - `GET /:studentId/courses` - List course goal snapshots for a student

    - `POST /:studentId/courses` - Create an atomic course goal

    - `PATCH /:studentId/courses/:goalId` - Update an atomic course goal

    - `DELETE /:studentId/courses/:goalId` - Delete an atomic course goal

    - `POST /:studentId/courses/preview` - Preview an atomic course goal without
    saving it


    ### Response Notes


    - Subject list responses return `{ studentId, subjects: [...] }`.

    - Subject create/update/minimum-patch responses return `{ subject: ... }`.

    - Subject preview responses return `{ preview: ... }`.

    - Course list responses return `{ studentId, courses: [...] }`.

    - Course create/update responses return `{ course: ... }`.

    - Course preview responses return `{ preview: ... }`.
      - `progress.resolution`
    - Preview responses return `{ preview: { goal: ... } }` using the same inner
    goal shape as saved goal detail.

    - Minimum goals are internally managed baseline rows:
      - auto-created for supported enrolled subjects on the canonical bootstrap goals-list read
      - readable and patchable
      - not creatable or deletable by clients
    - Filtered/history list reads are pure reads and do not run minimum-goal
    sync.

    - Standalone pace and NWEA helper endpoints are intentionally not part of
    the public goals surface.


    ### Supported Subjects


    RIT subjects (for percentile and x-factor goals): Math, Reading, Language,
    Science


    All subjects: Math, Reading, Language, Vocabulary, Science, Writing,
    FastMath, Social Studies


    ### Authorization


    All goals endpoints require authentication. Endpoints that rely on upstream
    analytics or sequence resolution also require the same auth context/API
    Gateway flow used by the Lambda-backed goals service.


    ## Student Progress API


    These Lambda-backed endpoints expose non-goal progress projections outside
    the goals namespace.


    ### Available Endpoints


    - `GET /students/:studentId/courses/:courseId/progress` - Get progress for a
    single course

    - `GET /students/:studentId/subjects/:subject/grades/:grade/progress` - Get
    aggregate progress for all courses in a subject-grade band


    ### Authorization


    Student progress endpoints require the same authenticated Lambda-backed flow
    used by the goals service.


    ## AP Readiness API


    The AP Readiness API provides a specialized workflow for AP exam
    preparation. It stores AP readiness goals in `learning_goals` using the
    `ap_readiness` goal type, but it has its own API surface, scoring pipeline,
    dashboard, and drill-down views.


    ### Available Endpoints


    **Reference Data**

    - `GET /subjects` - List supported AP exam subjects and title-matching
    patterns


    **Dashboard & Drill-down**

    - `GET /dashboard?subject=...` - Get dashboard rows for all active AP
    readiness goals in one AP subject

    - `GET /students/:studentId/drill-down?goalId=...` - Get per-unit drill-down
    data for one student's AP goal


    **Goal Management**

    - `GET /goals?subject=...` - List active AP readiness goals for an AP
    subject

    - `POST /goals` - Create an AP readiness goal

    - `PATCH /goals/:goalId` - Update the tracked courses or exam date for an AP
    readiness goal


    **Enrollment Validation**

    - `GET /enrollment-check?studentId=...&courseIds=id1,id2,...` - Return
    courses where the student has no active enrollment


    ### Goal Model


    - `goalType` is always `ap_readiness`

    - `targetMetric` is always `percent`

    - `paceType` is always `target_date`

    - `targetValue` is currently fixed to the readiness threshold for a
    predicted AP score of `5`

    - `courseIds` stores all tracked courses

    - `metadata.practice_test_course_ids` stores the subset of tracked courses
    that are practice tests

    - `curriculumCourseIds` is a derived field returned by the API and equals
    `courseIds - practice_test_course_ids`


    ### Dashboard Metrics


    Each dashboard row includes:


    - `readiness.componentA` - curriculum course progress percentage from XP

    - `readiness.componentB` - weighted practice-test accuracy percentage

    - `readiness.componentC` - final readiness percentage

    - `readiness.predictedScore` - predicted AP score from `1-5`

    - `coverage` - how many curriculum units have assessed activity

    - `topFocusAreas` - weakest unit names

    - `timeRemainingPct` - percent of time remaining until the exam date


    ### Response Notes


    - Create and update responses return `{ goal: ... }`

    - List responses return `{ goals: [...], totalCount }`

    - Dashboard responses return `{ rows: [...] }`

    - Drill-down responses return `{ units: [...] }`

    - Enrollment-check responses return `{ missingEnrollments: [...] }`


    ### Authorization


    AP Readiness endpoints require authentication and the same API Gateway auth
    context used by the Lambda-backed service.
servers:
  - url: https://api.alpha-1edtech.ai
    description: Edubridge API
security:
  - OAuth2: []
tags:
  - name: Analytics
    description: >-
      Analytics endpoints for retrieving and aggregating student activity data,
      including weekly facts and activity reports across date ranges.
  - name: AP Readiness
    description: >-
      AP exam readiness endpoints for creating AP readiness goals, viewing
      dashboard metrics, drilling into weak units, and checking enrollment gaps
      for AP preparation courses.
  - name: Application Metrics
    description: Track and manage application metrics for monitoring and analytics purposes
  - name: Applications
    description: >-
      Manage and retrieve applications available in the system. Applications
      represent different learning platforms or educational software that can be
      integrated.
  - name: Calendar Days
    description: >-
      Calendar day management for tracking instructional days, holidays, breaks,
      and other non-instructional days. Enables accurate school day counting for
      attendance, progress tracking, and compliance reporting.
  - name: Enrollments
    description: >-
      Simplified, course-centric enrollment management that abstracts away the
      complex OneRoster academic hierarchy
  - name: Goals
    description: >-
      Learning goal management endpoints for setting, tracking, and projecting
      learning goals including daily minimums, grade mastery targets, percentile
      targets, and course completion goals.
  - name: Learning Reports
    description: >-
      Learning reports endpoints for retrieving and aggregating student activity
      data, including weekly facts and activity reports.
  - name: Progression
    description: >-
      Proxy endpoints for the student progression pipeline. These routes forward
      requests to Lambda-backed API Gateway endpoints that handle Caliper event
      ingestion, progression enqueuing, and hole-filling course creation.
  - name: Reports
    description: >-
      Report PDF endpoints for storing generated reports and retrieving
      short-lived signed URLs for browser viewing.
  - name: Subject Track
    description: >-
      Subject tracks determine the target course for each subject and grade
      level. For example, for subject 'Math' grade level '9', the target course
      can be 'Math Academy 9th Grade' (this is the course that students will be
      enrolled in when they get placed to Math Grade 9). There can be only one
      target course per subject and grade level.
  - name: Users
    description: >-
      User management endpoints that provide simplified access to user data with
      enhanced filtering and querying capabilities beyond the standard OneRoster
      API.
paths:
  /goals/subjects/batch:
    post:
      tags:
        - Goals
      summary: Read full subject goal snapshots for multiple students
      description: >-
        Full subject-goals read for up to 100 unique students after trimming and
        deduplication. Each successful results entry has the same body as `GET
        /goals/{studentId}/subjects`, including dailyTargetXPTotal, progress,
        pacing, calendar, and projection data. The existing managed-minimum
        initialization may create missing goals and revisions. Uses the
        individual route's tenant visibility policy; callers must restrict the
        requested roster to authorized students. Per-student not_found,
        internal_error, and deadline_exceeded errors remain in the HTTP 200
        response, including an all-error batch. Retry failed students or fall
        back to individual reads. Shared preflight failures can still fail the
        entire request. POST /goals/subjects/daily-targets/batch is an
        additional compact option for callers that only need saved daily
        targets; it does not replace this full contract.
      operationId: listGoalSubjectsBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                studentIds:
                  type: array
                  items:
                    type: string
                    pattern: \S
                    description: >-
                      A string containing at least one non-whitespace character.
                      This full-read endpoint does not impose the compact
                      endpoint's character or length restrictions.
                  minItems: 1
                  description: >-
                    Non-empty list of student sourcedIds. IDs are trimmed and
                    deduplicated before enforcing a maximum of 100 unique
                    students. Duplicate entries are accepted. The caller must
                    restrict the roster to students they are authorized to view.
              required:
                - studentIds
              additionalProperties: true
      responses:
        '200':
          description: Full subject snapshots and per-student errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        studentId:
                          type: string
                          description: Student sourcedId
                        dailyTargetXPTotal:
                          type: number
                          minimum: 120
                          description: >-
                            Student daily XP goal, calculated from canonical
                            subject baseline.dailyTargetXP values with a minimum
                            of 120 XP. This Goals aggregate does not apply
                            organization metadata or enrollment filtering. The
                            co-returned subjects array is raw (duplicate aliases
                            are not removed; each baseline.dailyTargetXP is
                            normalized so malformed or negative stored targets
                            fall back to the subject default while intentional
                            zeros are preserved), so summing its
                            baseline.dailyTargetXP values may not equal this
                            total.
                        subjects:
                          type: array
                          items:
                            type: object
                            properties:
                              subject:
                                type: string
                                description: Goal subject
                              baseline:
                                type:
                                  - object
                                  - 'null'
                                properties:
                                  goalId:
                                    type: string
                                    description: Managed minimum-goal identifier
                                  dailyTargetXP:
                                    type: number
                                    description: Current baseline daily XP target
                                  defaultDailyTargetXP:
                                    type: number
                                    description: >-
                                      Default baseline daily XP target for the
                                      subject
                                  startDate:
                                    type: string
                                    description: Managed minimum goal start date
                                  updatedAt:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      Last date the managed minimum goal was
                                      updated
                                required:
                                  - goalId
                                  - dailyTargetXP
                                  - defaultDailyTargetXP
                                  - startDate
                                  - updatedAt
                                description: >-
                                  Managed minimum baseline policy when one
                                  exists for the subject
                              goal:
                                type:
                                  - object
                                  - 'null'
                                properties:
                                  id:
                                    type: string
                                    description: Active subject-outcome goal identifier
                                  type:
                                    type: string
                                    enum:
                                      - grade_mastery
                                      - percentile
                                      - x_factor
                                    description: Subject-outcome goal type
                                  status:
                                    type: string
                                    enum:
                                      - active
                                      - completed
                                      - cancelled
                                    description: Business status for the saved subject goal
                                  startDate:
                                    type: string
                                    description: Subject-outcome goal start date
                                  updatedAt:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      Last date the subject-outcome goal was
                                      updated
                                  objective:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - grade_mastery
                                          - percentile
                                          - x_factor
                                        description: >-
                                          Learner-facing K-8 subject objective
                                          type
                                      value:
                                        type: string
                                        minLength: 1
                                        description: >-
                                          Objective value (grade level,
                                          percentile, or x-factor multiplier)
                                    required:
                                      - type
                                      - value
                                  pacing:
                                    type: object
                                    properties:
                                      mode:
                                        type:
                                          - string
                                          - 'null'
                                        enum:
                                          - target_date
                                          - daily_time
                                          - null
                                        description: How the subject goal pace is set
                                      endDate:
                                        type:
                                          - string
                                          - 'null'
                                        description: >-
                                          Optional target end date in YYYY-MM-DD
                                          format
                                      dailyTargetXP:
                                        type:
                                          - number
                                          - 'null'
                                        exclusiveMinimum: 0
                                        description: >-
                                          Daily XP budget used for daily_time
                                          previews
                                    required:
                                      - mode
                                      - endDate
                                required:
                                  - id
                                  - type
                                  - status
                                  - startDate
                                  - updatedAt
                                  - objective
                                  - pacing
                                description: >-
                                  Active learner-facing subject-outcome goal, if
                                  one exists
                              execution:
                                type:
                                  - object
                                  - 'null'
                                properties:
                                  stageId:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      Saved routed stage identifier when
                                      applicable
                                  courseIds:
                                    type: array
                                    items:
                                      type: string
                                    description: >-
                                      Saved routed course-path snapshot for
                                      execution
                                required:
                                  - stageId
                                  - courseIds
                                description: >-
                                  Saved routed execution snapshot for the active
                                  subject goal
                              computed:
                                type: object
                                properties:
                                  xp:
                                    type:
                                      - object
                                      - 'null'
                                    properties:
                                      total:
                                        type: number
                                        description: Total XP tracked by the goal
                                      earned:
                                        type: number
                                        description: XP already earned toward the goal
                                      remaining:
                                        type: number
                                        description: Remaining XP to complete the goal
                                      pctComplete:
                                        type: number
                                        description: Completion percentage from 0 to 100
                                    required:
                                      - total
                                      - earned
                                      - remaining
                                      - pctComplete
                                    description: >-
                                      Goal-tracked XP totals when an active
                                      subject-outcome goal exists
                                  pace:
                                    type: object
                                    properties:
                                      requiredDailyXP:
                                        type:
                                          - number
                                          - 'null'
                                        description: >-
                                          Per-goal daily XP required on the
                                          current timeline
                                      effectiveDailyXP:
                                        type:
                                          - number
                                          - 'null'
                                        description: >-
                                          Effective daily XP after combining all
                                          subject goal pressure
                                      schoolDaysRemaining:
                                        type:
                                          - number
                                          - 'null'
                                        description: >-
                                          Remaining school days on the current
                                          timeline
                                    required:
                                      - requiredDailyXP
                                      - effectiveDailyXP
                                      - schoolDaysRemaining
                                  projection:
                                    type: object
                                    properties:
                                      currentGrade:
                                        type:
                                          - string
                                          - 'null'
                                        description: Current highest grade mastered
                                      daysToNextGrade:
                                        type:
                                          - number
                                          - 'null'
                                        description: Days until next grade is mastered
                                      gradeTimeline:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            grade:
                                              type: string
                                              description: Grade level
                                            courseIds:
                                              type: array
                                              items:
                                                type: string
                                              description: >-
                                                Course IDs used to compute this grade
                                                milestone. Clients can use these to
                                                scope graph activity to the same course
                                                path.
                                            remainingXP:
                                              type: number
                                              description: XP remaining to complete this grade
                                            daysToComplete:
                                              type: number
                                              description: School days needed at current pace
                                            projectedDate:
                                              type:
                                                - string
                                                - 'null'
                                              description: Projected completion date
                                            status:
                                              type: string
                                              enum:
                                                - completed
                                                - in_progress
                                                - future
                                              description: >-
                                                Projected status of the grade at the
                                                current pace
                                            totalXP:
                                              type: number
                                              description: Total XP in the grade band
                                            earnedXP:
                                              type: number
                                              description: XP already earned in the grade band
                                          required:
                                            - grade
                                            - remainingXP
                                            - daysToComplete
                                            - projectedDate
                                            - status
                                            - totalXP
                                            - earnedXP
                                        description: >-
                                          Timeline showing when each grade will be
                                          reached
                                    required:
                                      - currentGrade
                                      - daysToNextGrade
                                      - gradeTimeline
                                  resolution:
                                    type:
                                      - object
                                      - 'null'
                                    properties:
                                      strategy:
                                        type: string
                                        enum:
                                          - percentile
                                          - x_factor
                                        description: >-
                                          Milestone resolution strategy used to
                                          determine the target grade
                                      resolvedTargetGrade:
                                        type: string
                                        description: >-
                                          Resolved target grade after applying the
                                          strategy
                                      targetRit:
                                        type:
                                          - number
                                          - 'null'
                                        description: >-
                                          Target RIT produced by the milestone
                                          strategy when applicable
                                    required:
                                      - strategy
                                      - resolvedTargetGrade
                                      - targetRit
                                    description: >-
                                      Resolved milestone target details when
                                      applicable
                                  issue:
                                    type:
                                      - object
                                      - 'null'
                                    properties:
                                      code:
                                        type: string
                                        enum:
                                          - starting_grade_missing
                                          - dependency_unavailable
                                          - target_unavailable
                                          - unknown
                                        description: >-
                                          Machine-readable reason computed fields
                                          are unavailable
                                      message:
                                        type: string
                                        description: Human-readable issue summary
                                      service:
                                        type:
                                          - string
                                          - 'null'
                                        description: >-
                                          Upstream service name when
                                          dependency-backed
                                      path:
                                        type:
                                          - string
                                          - 'null'
                                        description: Upstream route path when available
                                      status:
                                        type:
                                          - number
                                          - 'null'
                                        description: Upstream HTTP status when available
                                    required:
                                      - code
                                      - message
                                      - service
                                      - path
                                      - status
                                    description: >-
                                      Subject-scoped availability issue. List
                                      endpoints may return this instead of
                                      failing the entire page.
                                required:
                                  - xp
                                  - pace
                                  - projection
                                  - resolution
                            required:
                              - subject
                              - baseline
                              - goal
                              - execution
                              - computed
                      required:
                        - studentId
                        - dailyTargetXPTotal
                        - subjects
                  errors:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                            - not_found
                            - internal_error
                            - deadline_exceeded
                        message:
                          type: string
                      required:
                        - code
                        - message
                required:
                  - results
                  - errors
        '400':
          description: >-
            Malformed/invalid body, more than 100 unique trimmed IDs, or missing
            Authorization header if the request reaches the Lambda.
          content:
            application/json:
              schema:
                type: object
                properties:
                  imsx_codeMajor:
                    type: string
                    const: failure
                  imsx_severity:
                    type: string
                    const: error
                  imsx_description:
                    type: string
                required:
                  - imsx_codeMajor
                  - imsx_severity
                  - imsx_description
        '401':
          description: API Gateway rejected a missing or invalid authentication token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
        '403':
          description: >-
            API Gateway rejected insufficient authorization, or the Lambda could
            not resolve tenant context. Gateway errors use message; Lambda
            errors use the flat imsx fields.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      message:
                        type: string
                    required:
                      - message
                  - type: object
                    properties:
                      imsx_codeMajor:
                        type: string
                        const: failure
                      imsx_severity:
                        type: string
                        const: error
                      imsx_description:
                        type: string
                    required:
                      - imsx_codeMajor
                      - imsx_severity
                      - imsx_description
        '500':
          description: >-
            Unhandled Lambda failure, including a shared dependency failure
            before per-student processing. No batch results body is guaranteed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  imsx_codeMajor:
                    type: string
                    const: failure
                  imsx_severity:
                    type: string
                    const: error
                  imsx_description:
                    type: string
                required:
                  - imsx_codeMajor
                  - imsx_severity
                  - imsx_description
      security:
        - OAuth2:
            - https://purl.imsglobal.org/spec/or/v1p1/scope/admin
        - OAuth2:
            - https://purl.imsglobal.org/spec/or/v1p1/scope/roster-core.readonly
        - OAuth2:
            - https://purl.imsglobal.org/spec/or/v1p1/scope/roster.readonly
components:
  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

````