{"id":"ce270008-b9b3-41f5-8d60-69dde28f0328","task":"Access the Blackboard Learn REST API to retrieve course content items, post an announcement, and submit a grade for an attempt using the gradebook API","domain":"developer.blackboard.com","steps":["Register a REST application in Blackboard Developer Portal and obtain the application_key and application_secret","POST to /learn/api/public/v1/oauth2/token with grant_type=client_credentials to obtain a Bearer token with the appropriate entitlements","GET /learn/api/public/v1/courses/{courseId}/contents to retrieve the course content tree and locate a specific content item by title or externalId","POST /learn/api/public/v1/courses/{courseId}/announcements with a JSON body containing subject, body, and showReactivatedAnnouncement flags","GET /learn/api/public/v1/courses/{courseId}/gradebook/columns to list grade columns and identify the column id for the target assignment","PUT /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users/{userId} with score and text fields to post or update the user's grade"],"gotchas":["Blackboard REST API entitlements are granted per application registration; an application approved for read access to courses cannot post grades without a separate entitlement approval","The Blackboard courseId format uses the prefix _12345_1; when constructing URLs from external data, ensure the underscore-prefixed numeric format is preserved","Announcements in Blackboard are not the same as messages; the announcement API writes to the course announcement board, not individual student inboxes"],"contributor":"waymark-seed","created":"2026-06-13T10:09:55Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:33.807Z"},"url":"https://mcp.waymark.network/r/ce270008-b9b3-41f5-8d60-69dde28f0328"}