Microsoft Learn Catalog API frequently asked questions

This article lists frequently asked questions about the Microsoft Learn Catalog API, with their answers and links to more information as needed.

General

Q: How much does it cost to use the Learn Catalog API?

There's no cost to use the Learn Catalog API. For more information, see the Availability and Pricing section of the Learn Catalog API feature overview article.

Q: What are the rules for using the Learn Catalog API?

See the Microsoft Learn and Microsoft API Terms of Use.

Q: Do I need to onboard or get keys to use the Learn Catalog API?

No. The API is publicly available. See the Getting started with the Learn Catalog API using cURL and Visual Studio Code article and/or the Learn Catalog API Developer Reference article.

Q: Will this API let our users consume the Learn content inside our platform?

No. The Learn Catalog API provides metadata about the content, and direct links to the content. Users can integrate these links into any LMS or web experience according to the Microsoft API Terms of Use.

Q: Does the data returned from the Learn Catalog API remain static or change?

The data changes whenever new content is added, modified, or deleted, which is usually on a daily basis.

API Response

Q: Can I grab all the data at once?

Yes. Use the base endpoint, learn.microsoft.com/api/catalog to get the full response. See the Learn Catalog API Developer Reference article for more API request information.

Q: Can I pre-filter the response?

Yes. See the query filters available in the Learn Catalog API Developer Reference article.

Q: Are the UIDs unique for each content object?

Yes. UID stands for “Unique ID” and is unique for each content object. If a UID changes, even if the title or other metadata stays the same, the content is considered a new object.

Q: Why are there HTML tags in the summary of the module?

We typically try to keep the formatting of the summary as raw as possible, but sometimes we need to emphasize or link certain text.

Q: Why are there not links for the individual units?

The units aren't written as standalone content. They're intended to be taken in a specific order for the module. For this reason, we include the link to the module detail page and the first unit so that users can start there and proceed through the content.

Q: How do I tell what content is new?

The last_modified value will tell you when the record was last modified.

Q: Is Single Sign-On (SSO) enabled for the content links?

Not at this time. We aim to enable SSO in the future.

Content

Q: Is the UID unique for content?

Yes. UID stands for “Unique ID” and is unique for each content object. If a UID changes, even if the title or other metadata stays the same, the content is considered a new object.

Q: Are all modules a part of a learning path?

No. Modules are all capable of standing alone, in the sense that they teach a scenario or concept end-to-end within them and don't require taking prerequisite modules. For some, this is it and they aren't a part of a learning path. For others, they're bundled together in one or more learning paths that take a user through building more advanced concepts. A module doesn't have to be a part of a learning path, or it can be a part of one or more.

Q: How do I know when content has been added, refreshed, or deleted?

When new content objects are added, they'll appear as a new object (identified by UID) in the response. When content is modified, you can tell based on its last_modified value. When content is deleted, it will be removed from the response. Although there's sometimes a slight delay on content being updated in the API response, when a user follows the URL to the content, they'll always see the most current information. If content is deleted, the old URL will redirect to the new content or experience.

Notably, content is being updated all the time. We publish updates typically twice a day. They may either be minor, such as minor text changes, or major, such as major revisions, additions, or deletions. In general, the content portfolio is managed as a massive, highly governed open-source project with thousands of contributors, and as such, changes are happening all the time. If you use the Learn Catalog API in your production system, you should be aware of how content versioning works and have your system able to handle it.

Q: How do I get access to the documentation, video, and code sample catalogs?

There's no programmatic way at this time to get access to these catalogs. We aim to enable programmatic access to these catalogs in the future.

Localization

Q: What languages are available in Microsoft Learn?

There are over 65 locales available in Microsoft Learn. You can see a full list here via the site footer (select the language you're viewing to see the full list).

Q: Is the content available in other languages?

It depends. We aim to make the content available in all the languages that the product(s) being taught in the content is available in. When learners visit the Microsoft Learn site in a given locale, if the content isn't available in that locale, the user will see the header and footer in their desired locale, and the core content will default back to English until a localized version is available.

Q: Is the content different for a given content object, depending on what language you view it in?

Possibly. When updates are published to the English content, our localization pipelines work to get the localized versions updated as soon as possible – usually within a few days of the original change.

Other

Q: Is there any reporting API or functionality to get data such as views, clicks, completion?

We don't have a reporting API at this time. We do have organizational reporting functionality that allows organizations to report on their users completions.

Next steps

You can learn more about the Learn Catalog API by visiting the following links: