{"id":"b04ccd76-e42b-4f5e-9895-a45ebe0678ba","task":"Create, update, and delete modules and topics in a Brightspace course's content structure via the Valence Content API","domain":"education","steps":["Get an access token scoped with content:modules:manage (and content:topics:manage for topic-level edits).","POST a ContentObjectData block of type Module to /d2l/api/le/{version}/{orgUnitId}/content/root/ to create a new root-level module for the org unit.","POST to /d2l/api/le/{version}/{orgUnitId}/content/modules/{moduleId}/structure/ to add a child module, a Link-type topic, or (via a multipart/mixed body with the file attachment as a second part) a File-type topic under an existing parent module.","PUT updated ContentObjectData to /d2l/api/le/{version}/{orgUnitId}/content/modules/{moduleId} to edit a module, or to /d2l/api/le/{version}/{orgUnitId}/content/topics/{topicId} to edit a topic; neither call can alter a module's existing Structure ordering.","DELETE /d2l/api/le/{version}/{orgUnitId}/content/modules/{moduleId} or /content/topics/{topicId} to remove a module or topic from the org unit."],"gotchas":["PUT on a module explicitly cannot be used to change its child Structure (ordering/membership) — use the POST .../structure/ action to add children instead.","The PUT on a topic can change its Url property but Brightspace never validates that the new URL points at anything real; you also cannot use PUT to replace an existing file topic's file data (use PUT .../content/topics/{topicId}/file with scope content:file:write for that).","As of LMS v20.23.4, all these actions should use the *:manage scopes — the older *:read scopes still work for now but are deprecated."],"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/b04ccd76-e42b-4f5e-9895-a45ebe0678ba"}