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.

  1. modules: is an array of published modules.
  2. units: is an array of published units.
  3. learningPaths: is an array of published learning paths.
  4. appliedSkills: is an array of published applied skills.
  5. mergedCertifications: is an array of published certifications merged with exams.
  6. certifications: is an array of published certifications.
  7. exams: is an array of published exams.
  8. courses: is an array of published instructor-led training courses.
  9. levels: is an array of possible audience levels.
  10. products: is an array of possible products and services covered in the catalog.
  11. roles: is an array of possible job roles.
  12. 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&amp;utm_medium=certpage&amp;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: