MCT Catalogs API


Description

This API provides access to a collection of ESD image catalogs used by the Media Creation Tool.

The collection is automatically updated every 30 minutes (if necessary).

Usage

Base path: https://worproject.com/dldserv/esd

Endpoints

Get all versions

GET /getversions.php

Retrieves a list of all the existing catalogs / releases.

Parameters:

  • None

Response:

  • In case of success:
    • XML (unformatted)

Request example:

https://worproject.com/dldserv/esd/getversions.php
curl -G 'https://worproject.com/dldserv/esd/getversions.php'

Formatted (needs xmllint from libxml2):

curl -G 'https://worproject.com/dldserv/esd/getversions.php' | xmllint --format -

Response example:

<productsDb>
    <versions>
        <version number="11">
            <latestCabLink>https://go.microsoft.com/fwlink/?LinkId=2156292</latestCabLink>
            <releases>
                <release build="22621.525">
                    <date>20220926</date>
                    <cabLink>https://download.microsoft.com/download/a/e/5/ae50fa4c-e37b-4ef1-bf6b-60a0e4382d08/products_Win11_20220926.cab</cabLink>
                </release>
            </releases>
        </version>
        <version number="10">
            <latestCabLink>https://go.microsoft.com/fwlink/?LinkId=841361</latestCabLink>
            <releases>
                <release build="19045.2006">
                <date>20220916</date>
                <cabLink>https://download.microsoft.com/download/e/6/c/e6c6ef82-8b05-4c0f-9852-d2b86129de29/products_Win10_20220916.cab</cabLink>
                </release>
            </releases>
        </version>
    </versions>
</productsDb>

Get catalog

GET /getcatalog.php

Retrieves a catalog.

Parameters: (leave empty for the latest catalog)

  • ver [string] (optional)

    • Description: Windows version
    • Possible values: a version number retrieved from the Get all versions endpoint
    • Default value: first version in the list (latest)
  • date [string] (optional)

    • Description: release date for the specified ver
    • Possible values: a release date retrieved from the Get all versions endpoint
    • Default value: first date in the list (latest)
  • build [string] (optional)

    • Description: show release whose build number starts with the specified value
    • Possible values: a build number retrieved from the Get all versions endpoint. If ver and/or date are specified, the build will be searched according to that. Otherwise it will return the first occurrence starting from the latest release.
    • Default value: first build in the list (latest)
  • lang [string] (optional)

    • Description: return File(s) with the specified language code
    • Possible values: one of the existing language codes in the catalog
    • Default value: null (shows all languages)
  • edition [string] (optional)

    • Description: return File(s) whose Edition contains the specified value
    • Possible values: one of the existing editions in the catalog
    • Default value: null (shows all editions)
  • arch [string] (optional)

    • Description: return File(s) with the specified architecture
    • Possible values: one of the existing architectures in the catalog
    • Default value: null (shows all architectures)
  • retailonly [string] (optional)

    • Description: return File(s) with the specified retail only value
    • Possible values: True, False
    • Default value: null (ignore)
  • dl [integer] (optional)

    • Description: set Location header to the FilePath of the File with the specified index (for automatic download)
    • Possible values: zero-based index of the File in the catalog
    • Default value: null (ignore)

Response:

  • In case of success:
    • Media Creation Tool XML (from products.cab) that was optimized to take less space (editions with duplicate links were merged together), unformatted
  • In case of failure:
    • VER_NOT_FOUND - specified version not found
    • DATE_NOT_FOUND - specified release date not found
    • BUILD_NOT_FOUND - specified build number not found

Request example:

https://worproject.com/dldserv/esd/getcatalog.php?arch=ARM64&edition=Professional&lang=en-us
curl -G \
 'https://worproject.com/dldserv/esd/getcatalog.php' \
 -d arch=ARM64 \
 -d edition=Professional \
 -d lang=en-us

Formatted (needs xmllint from libxml2):

curl -G \
 'https://worproject.com/dldserv/esd/getcatalog.php' \
 -d arch=ARM64 \
 -d edition=Professional \
 -d lang=en-us \
| xmllint --format -

Response example:

<MCT>
    <Catalogs>
        <Catalog version="2.0">
            <PublishedMedia id="" release="">
                <Files>
                    <File id="">
                        <FileName>22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd</FileName>
                        <LanguageCode>en-us</LanguageCode>
                        <Language>English (United States)</Language>
                        <Edition>Professional,ProfessionalN,ProfessionalEducation,ProfessionalEducationN,ProfessionalWorkstation,ProfessionalWorkstationN,Core,CoreN,CoreSingleLanguage,Education,EducationN,Ultimate,ProfessionalStudent,UltimateN,ProfessionalStudentN,Starter,HomeBasic,HomePremium,CoreConnected,StarterN,HomeBasicN,HomePremiumN,CoreConnectedN,CoreConnectedSingleLanguage</Edition>
                        <Architecture>ARM64</Architecture>
                        <Size>3994049045</Size>
                        <Sha1>bda8b164bd70c751204a2861d6287cf35dfc46a1</Sha1>
                        <FilePath>http://dl.delivery.mp.microsoft.com/filestreamingservice/files/3da94e91-327c-48ce-8bc8-7a2af30fc4bc/22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd</FilePath>
                        <Key/>
                        <Architecture_Loc>%ARCH_64%</Architecture_Loc>
                        <Edition_Loc>%CLIENT%</Edition_Loc>
                        <IsRetailOnly>True</IsRetailOnly>
                    </File>
                </Files>
                <Languages>
                (truncated)
                </Languages>
                <EULAs>
                (truncated)
                </EULAs>
            </PublishedMedia>
        </Catalog>
    </Catalogs>
</MCT>

HTTP error codes

  • 404 - resource not found (due to wrong parameters)