How To: Determine Whether a REST API Is Available in Learn Release Qn YYYY

I'm writing this to share how you can determine whether a given REST API is available in a particular Learn Release. I'm sharing this because we've had several queries, this should make it clear. If not, please do provide feed back in the comments section.

We'll use POST /learn/api/public/v1/courses/{courseId}/gradebook/columns as an example as this is a REST API one partner asked about.

Start by looking at developer.blackboard.com and click the Explore button on the page. Look through the APIs and find course grades. Expand the API of interest by clicking on it. In this case, POST /learn/api/public/v1/courses/{courseId}/gradebook/columns Notice Since: 3000.7.0 This is the build number that the POST REST API for gradebook columns was released. IMPORTANT: We never back port REST APIs. A cumulative update will not include a REST API release in a later build number. Example: 3000.0.9 will not include the POST gradebook/columns API.

The Build Number is what determines whether a REST API is available. The REST APIs are never backported via a cumulative update. We see that 3000.1.X is the build number for all Q2 2016 releases. The POST REST API for gradebook is not available there. The build number for all Q4 2016 releases and up is 3100 and greater. The POST REST API for grade book is available for all of these as we saw that is is available since 3000.7.0.

In conclusion, you should now be able to find out when any REST API became available for any QN YYYY release of Learn. For example, can you figure out which Learn releases now have the GET /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/attempts API?

Thank you Mark. This took awhile to learn the in's and outs, and I can now read the documentation for the calls and params without an issue. Two other things have changed between self hosted versions that are worth mentioning:

Payloads.

In Q2 2016, 'Disabled' is not an allowable state for {'availability':'{'available': }}, and 'Disabled' courses do not appear in GET calls.

In Q4 2017, 'Disabled' is allowable for user and course availability - and enables disabling and enabling of courses and memberships via api.

Headers.

In Q2 2016, there are no rate limits available in the responses from API calls, and it's more difficult to track what has been used.

In Q4 2017, these are included as 'X-Rate-Limit-Remaining' (quantity), and 'X-Rate-Limit-Reset' (time).