{"id":"73e76f26-8465-45aa-9584-b55923e5888c","task":"Retrieve a Brightspace course's content structure (modules and topics) via the Valence Content API","domain":"education","steps":["Get an access token scoped with content:modules:readonly (and content:topics:readonly for individual topic detail).","GET /d2l/api/le/{version}/{orgUnitId}/content/root/ to retrieve the root-level Module content objects (type value 0 in the CONTENT_T enum) for the course org unit.","For each module, GET /d2l/api/le/{version}/{orgUnitId}/content/modules/{moduleId}/structure/ to retrieve its direct child Module and Topic ContentObject blocks.","Recurse into any returned child modules with the same structure/ call to walk the full table of contents.","GET /d2l/api/le/{version}/{orgUnitId}/content/topics/{topicId} for a specific topic's full detail, including TopicType, Url, dates, and ToolId/ToolItemId for tool-linked topics."],"gotchas":["As of LMS v20.23.4, use the content:modules:readonly / content:topics:readonly scopes; the older content:modules:read / content:topics:read scopes still work but are deprecated.","content/root/ and content/modules/.../structure/ both return arrays of ContentObject blocks mixing Module (type 0) and Topic (type 1) records — check the Type field before assuming shape."],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","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":"sampled","url":"https://mcp.waymark.network/r/73e76f26-8465-45aa-9584-b55923e5888c"}