Microsoft Learn Catalog API developer reference documentation
This article provides information for developers and requestors implementing the Microsoft Learn Catalog API. We also recommend checking out the Learn Catalog API best practices, release notes, and frequently asked questions articles to support your development journey.
API endpoint
The Microsoft Learn Catalog API is a REST-based Web API that returns a JSON-encoded response. To request the full catalog, send a GET request to:
https://learn.microsoft.com/api/catalog/
Note
The endpoint listed above is the current endpoint. If you are using a different, older endpoint, it will still work as expected when you onboarded, but the benefits of switching to the new endpoint are that it will give you enhanced features such as additional query parameters.
Query parameters
The following are the query parameters that the request can include. All are optional. You must URL encode the query parameter values. You can use the endpoint with none, one, some, or all of these parameters.
Important
If you use more than one, the query will be assessed using the AND operator.
Name | Value | Type | Required | Example |
---|---|---|---|---|
locale | A single, valid locale code from the supported list of locales. The returned metadata will be in the requested locale if available. If this parameter isn't supplied, the en-us response will be returned. |
string | No | ?locale=en-us |
type | A comma-separated list of one or more of the top-level content or taxonomies objects we currently provide in the response to return. Supported values are: modules , units , learningPaths , appliedSkills , certifications , mergedCertifications , exams , courses , levels , roles , products , subjects . |
string | No | ?type=modules,learningPaths |
uid | A comma-separated list of one or more valid content unique IDs (uid) from the available content types. Note: uids are case-sensitive. | string | No | ?uid=learn.azure.intro-to-azure-fundamentals |
last_modified | An operator and datetime to filter by the last modified date of objects. Operator includes lt (less than), lte (less than or equal to), eq (equal to), gt (greater than), gte (greater than or equal to). When you use this parameter, the operator will default to gte if not specified. |
string | No | ?last_modified=gte 2022-01-01 |
popularity | An operator and value to filter by the popularity value (in a range of 0-1) of objects. Operator includes lt (less than), lte (less than or equal to), eq (equal to), gt (greater than), gte (greater than or equal to). When you use this parameter, the operator will default to gte if not specified. |
string | No | ?popularity=gte 0.5 |
level | A comma-separated list of one or more of the levels we currently have available (full list is in the levels object of the API response). | string | No | ?level=beginner |
role | A comma-separated list of one or more of the roles we currently have available (full list is in the roles object of the API response). | string | No | ?role=developer |
product | A comma-separated list of one or more of the roles we currently have available (full list is in the products object of the API response). The API doesn't support product hierarchy, so add every product to the list you want to include in your query. | string | No | ?product=azure |
subject | A comma-separated list of one or more of the roles we currently have available (full list is in the subjects object of the API response). The API doesn't support subject hierarchy, so add every subject to the list you want to include in your query. | string | No | ?subject=cloud-computing |
Sample queries
The queries listed below are samples to help you get a sense of what you can request and how to form the request.
Description | Query |
---|---|
All items in the Learn Catalog API | https://learn.microsoft.com/api/catalog/ |
All Spanish modules | https://learn.microsoft.com/api/catalog/?locale=es-es&type=modules |
All modules with a popularity score of 0.9 or higher | https://learn.microsoft.com/api/catalog/?type=modules&popularity>0.9 |
All beginner security training and certification objects | https://learn.microsoft.com/api/catalog/?level=beginner&subject=security |
All advanced accessibility modules with a popularity score over 0.5 and updated in the last month | https://learn.microsoft.com/api/catalog/?level=advanced&subject=accessibility&popularity>0.5&last_modified=gte 2022-10-01 |
API response
The service may return the following HTTP status codes.
Status code | Description |
---|---|
200 | Success. The body of the response includes the JSON-encoded data. |
400 | One of the query parameters is missing or not valid. |
404 | The URL wasn't found on the server. |
500 | Unexpected server error. |
503 | The service is temporarily unavailable. |
A successful response will include details about all modules and learning paths, as shown below.
Response body
A successful response body will be encoded in JSON and have 12 sections:
{
"modules": [ ... ],
"units": [...],
"learningPaths": [ ... ],
"appliedSkills": [ ... ],
"mergedCertifications": [ ... ],
"certifications": [ ... ],
"exams": [ ... ],
"courses": [ ... ],
"levels": [ ... ],
"products": [ ... ],
"roles": [ ... ],
"subjects": [...],
}
Each array has one or more JSON-encoded objects containing data specific to that section of the response.
modules
: is an array of published modules.units
: is an array of published units.learningPaths
: is an array of published learning paths.appliedSkills
: is an array of published applied skills.mergedCertifications
: is an array of published certifications merged with exams.certifications
: is an array of published certifications.exams
: is an array of published exams.courses
: is an array of published instructor-led training courses.levels
: is an array of possible audience levels.products
: is an array of possible products and services covered in the catalog.roles
: is an array of possible job roles.subjects
: is an array of possible subject tags.
Module records
Module records
Each module record will have the following form:
{
"summary": "Explore the core concepts of cloud computing and how it can help your business.",
"levels": [
"beginner"
],
"roles": [
"administrator",
"business-analyst",
"developer"
],
"products": [
"azure",
"azure-portal",
"azure-resource-manager"
],
"subjects": [
"data-visualization"
],
"uid": "learn.principles-cloud-computing",
"type": "module",
"title": "Cloud Concepts - Principles of cloud computing",
"duration_in_minutes": 62,
"rating": {
count: 2014,
average: 4.84
},
"popularity": 0.8839785477023878,
"icon_url": "https://learn.microsoft.com/learn/achievements/principles-cloud-computing.svg",
"social_image_url": "https://learn.microsoft.com/learn/achievements/principles-cloud-computing-social.png",
"locale": "en-us",
"last_modified": "2018-09-24T00:00:00Z",
"url": "https://learn.microsoft.com/learn/modules/principles-cloud-computing",
"firstUnitUrl": "https://learn.microsoft.com/learn/modules/principles-cloud-computing/1-introduction",
"units": [
"learn.principles-cloud-computing.1-introduction",
"learn.principles-cloud-computing.2-types-of-cloud-computing",
"learn.principles-cloud-computing.3-benefits-of-cloud-computing",
"learn.principles-cloud-computing.4-categories-of-cloud-services",
"learn.principles-cloud-computing.5-knowledge-check",
"learn.principles-cloud-computing.6-summary"
],
"number_of_children": 6
}
Field details
Field | Type | Description |
---|---|---|
summary |
string | A string that provides a short description of the module. The value is expressed as an HTML paragraph tag with the inner text being the summary. |
levels |
array of strings | A list of the levels associated with this module, which indicate how much experience in the role is necessary to understand all aspects of this module. Details about the units can be referenced in the level records. |
roles |
array of strings | A list of the job roles that this module is relevant to. |
products |
array of strings | A list of relevant products this module covers. Details about the products can be referenced in the product records. |
subjects |
array of strings | A list of relevant subjects this learning path covers. |
uid |
string | A unique identifier for this module - this value will be unique across all of MS Learn. |
type |
string | The type of record. The value will always be 'module'. |
title |
string | The title for the module in the locale requested, or US English as a fallback. |
duration_in_minutes |
integer | The average time this module takes to complete in minutes. |
rating |
object | Contains both count , which is the number of people who have rated the module, and average , an aggregate of the ratings, which will be 1-5 |
popularity |
double | A normalized value from 0-1 indicating the popularity of the module |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the module achievement image with a transparent background. |
social_image_url |
string | A fully qualified URL to a PNG image that represents the module achievement image with a rectangular opaque background, suited for social media or tile experiences. If it isn't available for this module, this property won't be returned in the response. |
locale |
string | The language this JSON data is written in. This value will be the requested locale if available, or 'en-us' if not. |
last_modified |
date | The last time this module had a major revision. |
url |
string | A fully qualified URL to the Learn module in the requested locale. |
firstUnitUrl |
string | A fully qualified URL to the first unit of the Learn module in the requested locale. |
units |
array of strings | A list of the associated unit UIDs. Details about the units can be referenced in the unit records. |
number_of_children |
integer | The number of pages (units) this module has in it. |
Unit records
Each unit record will have the following form:
{
"uid": "learn.azure.fundamental-azure-concepts.types-of-cloud-computing",
"type": "unit",
"title": "Discuss different types of cloud models",
"duration_in_minutes": 5,
"locale": "en-us",
"last_modified": "2021-12-09T02:45:00+00:00"
},
Note
The unit record does not have the associated URL because units are not written as standalone content. They are 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 in the module record so that users can start there and proceed through the content. However, the unit records can be used to get details about the units to display in LMSes or other experiences.
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this module - this value will be unique across all of MS Learn. |
type |
string | The type of record. The value will always be 'unit'. |
title |
string | The title for the unit in the locale requested, or US English as a fallback. |
duration_in_minutes |
The duration of the unit. If you add all the duration_in_minutes of the units associated with each module, you'll get the total module time. | |
locale |
string | The language this JSON data is written in. This value will be the requested locale if available, or 'en-us' if not. |
last_modified |
date | The last time this module had a major revision. |
Learning path records
Each learning path record will have the following form:
{
"summary": "Azure Functions enable the creation of event driven, compute-on-demand systems that can be triggered by various external events. Learn how to leverage functions to execute server-side logic and build serverless architectures.",
"levels": [
"beginner",
"intermediate"
],
"roles": [
"developer",
"solution-architect"
],
"products": [
"azure",
"azure-portal",
"azure-functions",
"azure-cosmos-db",
"azure-cloud-shell"
],
"subjects": [
"data-visualization"
],
"uid": "learn.create-serverless-applications",
"type": "learningPath",
"title": "Create serverless applications",
"duration_in_minutes": 450,
"rating": {
count: 2014,
average: 4.84
},
"popularity": 0.8839785477023878,
"icon_url": "https://learn.microsoft.com/learn/achievements/create-serverless-applications.svg",
"social_image_url": "https://learn.microsoft.com/learn/achievements/create-serverless-applications-social.png",
"locale": "en-us",
"last_modified": "2018-12-27T00:00:00Z",
"url": "https://learn.microsoft.com/learn/paths/create-serverless-applications",
"firstModuleUrl": "https://learn.microsoft.com/learn/modules/choose-azure-service-to-integrate-and-automate-business-processes/",
"modules": [
"learn.choose-azure-service-to-integrate-and-automate-business-processes",
"learn.create-serverless-logic-with-functions",
"learn.execute-azure-function-with-triggers",
"learn.chain-azure-functions-data-using-input-output-bindings",
"learn.azure-create-long-running-serverless-workflow-with-durable-functions",
"learn-pr.develop-test-deploy-azure-functions-core-tools",
"learn.develop-test-deploy-azure-functions-with-visual-studio",
"learn.azure.monitor-github-events-with-a-function-triggered-by-a-webhook",
"learn.advocates.azure-functions-and-signalr"
],
"number_of_children": 9
}
Field details
Field | Type | Description |
---|---|---|
summary |
string | A string that provides a short description of the learning path. The value is expressed as an HTML paragraph tag with the inner text being the summary. |
levels |
array of strings | A list of the levels associated with this learning path, which indicate how much experience in the role is necessary to understand all aspects of this learning path. Details about the units can be referenced in the level records. |
roles |
array of strings | A list of the relevant job roles for this learning path. |
products |
array of strings | A list of relevant products this learning path covers. Details about the products can be referenced in the product records. |
subjects |
array of strings | A list of relevant subjects this learning path covers. |
uid |
string | A unique identifier for this learning path - this value will be unique across all of MS Learn. |
type |
string | The type of record. The value will always be 'learningPath'. |
title |
string | The title for the learning path in the locale requested, or US English as a fallback. |
duration_in_minutes |
integer | The average time this learning path takes to complete in minutes. This value is a sum of data from all the modules included. |
rating |
object | Contains both count , which is the number of people who have rated the learning path, and average , an aggregate of the ratings, which will be 1-5 |
popularity |
double | A normalized value from 0-1 indicating the popularity of the learning path |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the learning path. |
social_image_url |
string | A fully qualified URL to a PNG image that represents the learning path achievement image with a rectangular opaque background, suited for social media or tile experiences. If it isn't available for this module, this property won't be returned in the response. |
locale |
string | The language this JSON data is written in. This value will be the requested locale if available, or 'en-us' if not. |
last_modified |
date | The last time this learning path was changed. |
url |
string | A fully qualified URL to the learning path in Microsoft Learn in the requested locale. |
firstModuleUrl |
string | A fully qualified URL to the first module of the learning path in Microsoft Learn in the requested locale. |
modules |
array of strings | A list of the associated module UIDs. Details about the modules can be referenced in the module records. |
number_of_children |
integer | The number of modules this learning path has in it. |
Applied Skills records
Each Applied Skills record will have the following form:
{
"uid": "applied-skill.deploy-and-configure-azure-monitor",
"locale": "en-us",
"url": "https://learn.microsoft.com/en-us/credentials/applied-skills/deploy-and-configure-azure-monitor/?WT.mc_id=api_CatalogApi",
"title": "Deploy and configure Azure Monitor",
"summary": "<p>To earn this Microsoft Applied Skills credential, learners demonstrate the ability to deploy and configure monitoring for Azure infrastructure.</p>\n<p>Candidates for this assessment lab should be familiar with operating systems, networking, servers, and virtualization.</p>\n",
"levels": [
"intermediate"
],
"roles": [
"administrator"
],
"products": [
"azure-monitor",
"azure-virtual-machines",
"azure-virtual-network",
"windows-server"
],
"subjects": [
"it-management-monitoring"
],
"study_guide": [
{
"uid": "learn.wwl.deploy-configure-azure-monitor",
"type": "learningPath"
}
],
"last_modified": "2023-10-25T17:07:00+00:00"
}
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this Applied Skill - this value will be unique across all of MS Learn. |
locale |
string | The language this JSON data is written in. This value will be the requested locale if available, or 'en-us' if not. |
title |
string | The title for the Applied Skill in the locale requested, or US English as a fallback. |
summary |
string | The summary for the Applied Skill in the locale requested, or US English as a fallback. |
url |
string | A fully qualified URL to the Applied Skill in Microsoft Learn in the requested locale. |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the Applied Skill (when available, otherwise not included). |
levels |
array of strings | A list of the levels associated with this Applied Skill. |
roles |
array of strings | A list of the relevant job roles for this Applied Skill. Details about the roles can be referenced in the role records. |
subjects |
array of strings | A list of relevant subjects this Applied Skill covers. |
study_guide |
array of objects | A list of the associated content to study for this Applied Skill. Details about the objects can be referenced in their associated records. |
last_modified |
date | The last time this Applied Skill was changed. |
Merged certification records
Each merged certification record will have the following form:
{
"uid": "certification.d365-functional-consultant-manufacturing",
"title": "Microsoft Certified: Dynamics 365 Supply Chain Management, Manufacturing Functional Consultant Associate",
"summary": "<div class=\"WARNING\">\n<p>Warning</p>\n<p>This certification retired on June 30, 2023. You can renew it for at least six months after the retirement date by completing the free online assessment available on the <a href=\"/credentials/certifications/d365-functional-consultant-manufacturing/renew\">certification renewal page</a>. <a href=\"https://aka.ms/BACertPortfolioUpdatesBlog\">Read the blog post</a>.</p>\n</div>\n<p>If you’re a functional consultant or a business user with a deep understanding of manufacturing industry standards, this certification might be for you. You also need experience configuring and implementing Dynamics 365 Supply Chain Management to meet the needs of your organization. Supply chain management, manufacturing functional consultants are key resources who work with developers, solution architects, project managers, and functional consultants in finance, commerce, and supply chain.</p>\n<p>If you need more experience before you try to earn this certification, here are some suggestions:</p>\n<ul>\n<li>Study the supply chain management and supply chain management, manufacturing modules on Microsoft Learn, and complete more hands-on practice.</li>\n<li>Sign up for an instructor-led training course that covers the MB-300 or MB-320 track.</li>\n<li>Take part in the community at <a href=\"https://community.dynamics.com/\">community.dynamics.com</a>, or join a user group.</li>\n<li>Shadow a manufacturing functional consultant in a manufacturing workstream.</li>\n<li>Get a mentor, tour manufacturing lines, and learn how things are made.</li>\n<li>Ask questions, and learn from experts and customers.</li>\n</ul>\n",
"url": "https://learn.microsoft.com/en-us/credentials/certifications/d365-functional-consultant-manufacturing/?WT.mc_id=api_CatalogApi",
"icon_url": "https://learn.microsoft.com/en-us/media/learn/certification/badges/microsoft-certified-associate-badge.svg",
"last_modified": "2023-09-19T00:47:00+00:00",
"type": "cert",
"certification_type": "role-based",
"products": [
"dynamics-365",
"dynamics-finance"
],
"levels": [
"intermediate"
],
"roles": [
"functional-consultant"
],
"subjects": [],
"renewal_frequency_in_days": 0,
"prerequisites": [],
"skills": [
"Describe finance and operations apps, and extend apps by using Microsoft Power Platform technologies",
"Configure administrative features and workflows",
"Manage finance and operations data",
"Validate and support solutions",
"Configure Dynamics 365 Supply Chain Management, Manufacturing",
"Manage manufacturing processes",
"Implement master planning for production",
"Implement other manufacturing features"
],
"recommendation_list": [],
"study_guide": [],
"exam_duration_in_minutes": 0,
"locales": [],
"providers": [],
"career_paths": []
}
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this certification - this value will be unique across all of MS Learn. |
title |
string | The title for the certification in the locale requested, or US English as a fallback. |
summary |
string | The summary for the certification in the locale requested, or US English as a fallback. |
url |
string | A fully qualified URL to the certification in Microsoft Learn in the requested locale. |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the certification. |
last_modified |
date | The last time this certification was changed. |
type |
string | The type of record. The value will always be 'cert'. |
certification_type |
string | The type of certification. The possible values are 'fundamentals', 'mce', 'mcsa', 'mcsd', 'mcse', 'mos', 'mta', 'role-based', 'specialty'. |
products |
array of strings | A list of relevant products this certification covers. Details about the products can be referenced in the product records. |
levels |
array of strings | A list of the levels associated with this certification, which indicate how much experience in the role is necessary to understand all aspects of the exams of this certification. Details about the units can be referenced in the level records. |
roles |
array of strings | A list of the relevant job roles for this certification. Details about the roles can be referenced in the role records. |
subjects |
array of strings | A list of relevant subjects this certification covers. |
renewal_frequency_in_days |
integer | The number of days before this certification expires and needs to be renewed. If the value is 0, the certification doesn't expire. |
prerequisites |
array of strings | A list of the recommended pre-requisites to earn this certification. Details about the certifications can be referenced in the certification records. |
skills |
array of strings | A list of the skills measured on the exam required for this certification. |
recommendation_list |
array of strings | A list of the recommendeds related to this certification. |
study_guide |
array of objects | A list of the associated content to study for this certification. Details about the objects can be referenced in their associated records. |
exam_duration_in_minutes |
integer | The number of minutes allotted to complete the exam. |
locales |
array of strings | A list of the languages this certification is offered in. |
providers |
array of objects | A list of providers for this certification. The type describes which provider and a fully qualified URL with a link to schedule an exam with the provider. |
career_paths |
array of objects | A list of career paths for this certification. |
Note
Certifications that only require one exam will be returned as part of this mergedCertifications property.
Certification records
Each certification record will have the following form:
{
"uid": "certification.d365-functional-consultant-customer-service",
"title": "Microsoft Certified: Dynamics 365 Customer Service Functional Consultant Associate",
"subtitle": "Microsoft Dynamics 365 Customer Service functional consultants are responsible for implementing omnichannel solutions that focus on service, quality, reliability, efficiency, and customer satisfaction.",
"url": "https://learn.microsoft.com/cert-exam-sandbox/cert/?WT.mc_id=api_CatalogApi",
"icon_url": "https://learn.microsoft.com/media/learn/certification/badges/microsoft-certified-associate-badge.svg",
"type": "cert",
"certification_type": "role-based",
"exams": [
"exam.77-881"
],
"levels": [
"intermediate"
],
"roles": [
"functional-consultant"
],
"study_guide": [
{
"uid": "learn.get-started-with-d365",
"type": "module"
},
{
"uid": "learn.d365-notebook",
"type": "module"
},
{
"uid": "learn.d365-fundamentals",
"type": "learningPath"
}
]
}
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this certification - this value will be unique across all of MS Learn. |
title |
string | The title for the certification in the locale requested, or US English as a fallback. |
subtitle |
string | The subtitle for the certification in the locale requested, or US English as a fallback. |
url |
string | A fully qualified URL to the certification in Microsoft Learn in the requested locale. |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the certification. |
type |
string | The type of record. The value will always be 'cert'. |
certification_type |
string | The type of certification. The possible values are 'fundamentals', 'mce', 'mcsa', 'mcsd', 'mcse', 'mos', 'mta', 'role-based', 'specialty'. |
exams |
array of strings | A list of the associated exams required for this certification. Details about the units can be referenced in the certification records. |
levels |
array of strings | A list of the levels associated with this certification, which indicate how much experience in the role is necessary to understand all aspects of the exams of this certification. Details about the units can be referenced in the level records. |
roles |
array of strings | A list of the relevant job roles for this certification. Details about the roles can be referenced in the role records. |
study_guide |
array of objects | A list of the associated content to study for this certification. Details about the objects can be referenced in their associated records. |
Note
Certifications requiring more than one exam will be present in this Certifications record referencing the exams array.
Exam records
Each exam record will have the following form:
{
"uid": "exam.77-881",
"title": "Word 2010",
"subtitle": "The core-level Microsoft Office Word 2010 user should be able to navigate Microsoft Office Word 2010 software at the feature and functional level. They should be familiar with and know how to use at least 80 percent of the features and capabilities of Microsoft Office Word 2010. The core-level user should be able to use Microsoft Office Word 2010 to create and edit professional-looking documents for a variety of purposes and situations. Users would include people from a wide variety of job roles from almost all areas of professional, student, and personal life.",
"display_name": "77-881",
"url": "https://learn.microsoft.com/cert-exam-sandbox/exam/77-881/?WT.mc_id=api_CatalogApi",
"icon_url": "https://learn.microsoft.com/media/learn/certification/badges/certification-exam.svg",
"pdf_download_url": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4trjX",
"practice_test_url": "https://www.mindhub.com/70-413-Designing-and-Implementing-a-Server-Infrast-p/mu-70-413_p.htm?utm_source=microsoft&utm_medium=certpage&utm_campaign=msofficialpractice",
"practice_assessment_url": "https://learn.microsoft.com/en-us/certifications/exams/{exam}/practice/assessment?assessment-type=practice&assessmentId={assessmentId}",
"locales": [],
"type": "exam",
"courses": [
"course.pl-200t00",
"course.mb-230t01"
],
"levels": [
"beginner"
],
"roles": [
"business-user"
],
"products": [
"office-word"
],
"providers": [],
"study_guide": [
{
"uid": "learn.get-started-with-word-2010",
"type": "module"
},
{
"uid": "learn.office2010-notebook",
"type": "module"
},
{
"uid": "learn.office2010-fundamentals",
"type": "learningPath"
}
]
}
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this exam - this value will be unique across all of MS Learn. |
title |
string | The title for the exam in the locale requested, or US English as a fallback. |
subtitle |
string | The subtitle for the exam in the locale requested, or US English as a fallback. |
display_name |
string | The display name for the exam in the locale requested, or US English as a fallback. |
url |
string | A fully qualified URL to the exam in Microsoft Learn in the requested locale. |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the exam. |
pdf_download_url |
string | A fully qualified URL to the PDF outlining the skills measured by this exam. |
practice_test_url |
string | A fully qualified URL to a practice test associated with the exam. |
practice_assessment_url |
string | A fully qualified URL to a free practice assessment associated with the exam. |
locales |
array of strings | A list of languages this exam is offered in. |
type |
string | The type of record. The value will always be 'exam'. |
courses |
array of strings | A list of the associated course UIDs. Details about the courses can be referenced in the course records. |
levels |
array of strings | A list of the levels associated with this exam, which indicate how much experience in the role is necessary to understand all aspects of this exam. Details about the units can be referenced in the level records. |
roles |
array of strings | A list of the relevant job roles for this exam. Details about the roles can be referenced in the role records. |
products |
array of strings | A list of relevant products this exam covers. Details about the products can be referenced in the product records. |
providers |
array of objects | A list of providers for this exam. The type describes which provider and a fully qualified URL with a link to schedule an exam with the provider. |
study_guide |
array of objects | A list of the associated content to study for this exam. Details about the objects can be referenced in their associated records. |
Instructor-led course records
Each course record will have the following form:
{
"uid": "course.mb-230t01",
"course_number": "MB-230T01",
"title": "Microsoft Dynamics 365 Customer Service - added non-exist studyguide",
"summary": "Microsoft Dynamics 365 Customer Service offers any organization an opportunity for customer success. Using tools such as automatic case creation and queue management frees up your time to dedicate it where you can have a greater impact, directly with your customers. Join our team of globally recognized experts as they take you step by step from creating cases to interacting with customers to resolving those cases. Once you’ve resolved those cases you can learn from data analysis the key details to help you resolve similar cases faster or avoid new issues altogether. A Dynamics 365 Customer Engagement Functional Consultant is responsible for performing discovery, capturing requirements, engaging subject matter experts and stakeholders, translating requirements, and configuring the solution and applications. The Functional Consultant implements a solution using out of the box capabilities, codeless extensibility, application and service integrations.",
"duration_in_hours": 72,
"url": "https://learn.microsoft.com/cert-exam-sandbox/course/mb-230t01/?WT.mc_id=api_CatalogApi",
"icon_url": "https://learn.microsoft.com/media/learn/certification/course.svg",
"locales": [
"en"
],
"type": "course",
"certification": "certification.d365-functional-consultant-customer-service",
"exam": "exam.77-881",
"levels": [
"intermediate"
],
"roles": [
"functional-consultant"
],
"products": [
"dynamics-365"
],
"study_guide": [
{
"uid": "learn.align-requirements-in-azure",
"type": "module"
},
{
"uid": "learn.manage-resources-in-azure",
"type": "learningPath"
}
]
},
Field details
Field | Type | Description |
---|---|---|
uid |
string | A unique identifier for this instructor-led course - this value will be unique across all of MS Learn. |
course_number |
string | The instructor-led course number identifier. |
title |
string | The title for the instructor-led course in the locale requested, or US English as a fallback. |
summary |
string | A string that provides a short description of the instructor-led. The value is expressed as an HTML paragraph tag with the inner text being the summary. |
duration_in_hours |
integer | The average time this instructor-led course takes to complete in hours. |
url |
string | A fully qualified URL to the instructor-led course detail page in Microsoft Learn in the requested locale. |
icon_url |
string | A fully qualified URL to a 100x100 SVG image that represents the instructor-led course achievement. |
locales |
array of strings | A list of languages this instructor-led course is officially offered in. Other languages may be supported by learning partners. |
type |
string | The type of record. The value will always be 'course' for instructor-led courses. |
certification |
string | Certification associated with the instructor-led course. |
exam |
string | Exam associated with the instructor-led course. |
levels |
array of strings | A list of the levels associated with this instructor-led course, which indicate how much experience in the role is necessary to understand all aspects of this course. Details about the units can be referenced in the level records. |
study_guide |
array of objects | A list of the associated content to study for this course. Details about the objects can be referenced in their associated records. |
Level, product, role, and subject records
The levels
, products
, roles
, and subjects
collections provide friendly names for the values used in the module and learning path data. All four collections have the same shape:
{
"id": "unique-id",
"name": "name-of-item",
"children": [
{ "id": "unique-id", "name": "name-of-item" },
{ "id": "unique-id", "name": "name-of-item" },
...
]
}
The id
will match the values for levels, products, roles, and subjects included in the other catalog entries. The associated name
provides a proper name in English for the entry. The children
array is optional and enables hierarchical for values that have child relationships such as products.
As an example, here's a set of possible roles:
{
...
"roles": [
{
"id": "administrator",
"name": "Administrator"
},
{
"id": "ai-engineer",
"name": "AI Engineer"
},
{
"id": "business-analyst",
"name": "Business Analyst"
},
{
"id": "developer",
"name": "Developer"
},
...
]
}
Here's an example set of products, with children included to provide a more specific product category.
{
...
"products": [
{
"id": "dotnet",
"name": ".NET",
"children": [
{ "id": "dotnet-core", "name": ".NET Core" },
{ "id": "dotnet-standard", "name": ".NET Standard" },
{ "id": "aspnet-core", "name": "ASP.NET Core" },
{ "id": "ef-core", "name": "Entity Framework Core" }
]
},
{
"id": "ms-graph",
"name": "Microsoft Graph"
},
{
"id": "office",
"name": "Office",
"children": [
{ "id": "office-365", "name": "Office 365" },
{ "id": "office-add-ins", "name": "Office Add-ins" },
{ "id": "office-teams", "name": "Teams" }
]
},
{
"id": "sql-server",
"name": "SQL Server"
},
...
]
}
Code samples
There are many ways to call the Learn Catalog API, but the code samples below are examples of how it can be used.
jQuery
$(function() {
var params = {
locale:'en-us'
};
$.ajax({
url: "https://learn.microsoft.com/api/learn/catalog?" + $.param(params),
type: "GET"
}).done(function(data) {
alert("success");
}).fail(function(error) {
alert("error");
});
})
.NET C#
using System.Net.Http.Json;
var httpClient = new HttpClient();
var response = await httpClient.GetAsync("https://learn.microsoft.com/api/learn/catalog?locale=en-us");
response.EnsureSuccessStatusCode();
var responseContent = await response.Content.ReadFromJsonAsync<dynamic>(); // .NET 5 or later
Console.WriteLine(responseContent);
PHP using cURL extension
<?php
// From URL to get webpage contents.
$url = "https://learn.microsoft.com/api/learn/catalog";
// Initialize a CURL session.
$ch = curl_init();
// Return Page contents.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//grab URL and pass it to the variable.
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
echo $result;
?>
PYTHON 3 using 'requests' library
#!/usr/bin/env python3
#Using Python 3.8.2 install 5/6/2020
import requests
import json
#if given error 'response / requests not defined', install requests via 'pip install requests' in the command line
parameters= {"locale": "en-us"}
response = requests.get("https://learn.microsoft.com/api/learn/catalog/", parameters)
#print(response.status_code)
rawJson = response._content
#Create python objects based on the data using json.loads
data = json.loads(rawJson)
print(data)
Next steps
Review the resources below to help you on your development journey: