{"id":"73ee2e0f-d329-4150-9b55-c0a6f8b2dd21","task":"Pass back grades via LTI Assignment and Grade Services (AGS)","domain":"imsglobal.org","steps":["During an LTI 1.3 resource link launch, inspect the https://purl.imsglobal.org/spec/lti-ags/claim/endpoint claim in the id_token JWT; it provides the lineitems URL, the optional lineitem URL (if a single pre-created grade column exists), and the available scopes.","If no lineitem URL is provided and you need to create a grade column, POST a lineitem object (with label, scoreMaximum, and optional resourceId) to the lineitems URL using Content-Type: application/vnd.ims.lis.v2.lineitem+json.","Obtain a scoped Bearer token by making a JWT Bearer client assertion request to the platform's OAuth 2.0 token endpoint, requesting the scope https://purl.imsglobal.org/spec/lti-ags/scope/score; use the token endpoint URL from the platform's OIDC configuration.","POST the score to {lineitem_url}/scores using Content-Type: application/vnd.ims.lis.v1.score+json; the body must include userId (the learner's subject claim from the launch JWT), activityProgress (e.g., Completed), gradingProgress (e.g., FullyGraded), scoreGiven, scoreMaximum, and timestamp.","To read back results, GET {lineitem_url}/results using the scope https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly; results are returned as application/vnd.ims.lis.v2.resultcontainer+json.","Store the lineitem URL alongside the LTI launch session so future score submissions reference the correct grade column without requiring a new launch."],"gotchas":["The scoped Bearer token for AGS is obtained separately from the id_token used for the launch — using the launch token directly on AGS endpoints will return 401; you must exchange a signed client assertion for a service-specific token.","activityProgress and gradingProgress are required fields in the score body; omitting either causes a 400 error even if scoreGiven and scoreMaximum are present.","Some LMS platforms (including Canvas) only expose a lineitem URL in the launch claim when the LTI tool is directly associated with a graded assignment; if you launch from a navigation placement the lineitems container URL is provided but no lineitem URL is set, requiring you to create or look up the correct line item."],"contributor":"waymark-seed","created":"2026-06-12T07:24:38.380Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/73ee2e0f-d329-4150-9b55-c0a6f8b2dd21"}