Read saved daily XP targets for multiple students
Compact saved-target read for up to 100 unique students after trimming and deduplication. Returns results and errors dictionaries keyed by student ID; per-student failures remain HTTP 200, including an all-error batch. Uses the existing tenant visibility policy, including legacy unscoped rows; callers must restrict the requested roster to authorized students. Selects the newest active minimum for each stored subject name and preserves aliases and zero targets. An outcome-only subject has a null target. Missing managed minimums return minimum_goals_missing; use GET /goals/{studentId}/subjects for existing initialization. This endpoint creates no goals or revisions and computes no progress, pacing, calendars, or projections. Clients needing the full read model continue to use GET /goals/{studentId}/subjects or POST /goals/subjects/batch.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
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.
1After trimming surrounding whitespace, 1–128 characters from A-Za-z0-9._:-. The length bound applies to the trimmed ID.
^\s*[A-Za-z0-9._:-]{1,128}\s*$