json-api/readme.md
2021-02-06 16:30:55 +03:00

211 lines
7.1 KiB
Markdown

# UUP dump JSON API
## Description
A simple endpoint allowing access to the UUP dump API using simple HTTP GET requests.
## Usage
All requests are done using GET requests with parameters specified in the URL.
Responses are provided in JSON format.
Responses from the UUP dump API are always returned in the `response` key.
If request fails, a HTTP error code will be set to:
- `400` if request was malformed
- `429` if user is being rate limited
- `500` if retrieval of data was unsuccessful
In such cases `response` key will contain an `error` key with short description
of the error.
## Supported endpoints
### `/` or `/index.php`
Returns versions of both JSON and UUP dump APIs
Parameters:
- None
#### JSON response format:
```javascript
{
"response": {
"apiVersion":"string" // Current UUP dump API version
},
"jsonApiVersion": "string" // Current JSON API version
}
```
### `/listid.php`
Returns a list of builds in the local database. (like "Browse the list of known builds" on the website)
Parameters:
- `search` - Optional search query
- **Supported values:** any text
- `sortByDate` - Optional sorting results by creation date
- **Supported values:** 0 = Disable, 1 = Enable
#### JSON response format:
```javascript
{
"response": {
"apiVersion":"string", // Current UUP dump API version
"builds": [
{
"title": "string", // Update title, for example Windows 10 Insider Preview 19577.1000 (rs_prerelease)
"build": "string", // Update build number, for example 19577.1000
"arch": " string", // Update architecture, for example amd64
"created": 1234567890, // Timestamp of when the build was added to the database
"uuid": "string" // UUID Update Identifier
},
...
]
},
"jsonApiVersion": "string" // Current JSON API version
}
```
### `/fetchupd.php`
Fetches the latest builds from Windows Update servers using specified
parameters. (like "Fetch the latest build" on the website)
Parameters:
- `arch` - Specifies which architecture the API will return.
- **Supported values:** `amd64`, `x86`, `arm64`, `all`
- `ring` - Specifies the channel (ring) the API uses when querying Windows Update servers.
- **Supported values:** `Dev`, `Beta`, `ReleasePreview`, `Retail`
- **Supported Ring values :** `WIF`, `WIS`, `RP`, `RETAIL`
- `flight` - Content (Flight) tye to use when fetching information
- **Supported values:** `Mainline`
- **Supported Flight values:** `Active`, `Skip`, `Current`
- **NOTE:** `Skip` is for `WIF` ring only. `Current` is for `RP` ring only.
- `build` - Build number to use by the API when fetching information
- **Supported values:** >= 9841 and <= PHP_INT_MAX-1
- `sku` - SKU number to use when fetching information
- **Supported values:** Any SKU integer
- `type` - Release type to use when fetching information for Windows Core OS (WCOS), e.g. Windows 10X
- **Supported values:** `Production`, `Test`
#### JSON response format:
```javascript
{
"response": {
"apiVersion": "string", // Current UUP dump API version
"updateId": "string", // UUID Update Identifier
"updateTitle": "string", // Update title, such as Windows 10 Insider Preview 19577.1000 (rs_prerelease)
"foundBuild": "string", // Update build number, such as 19577.1000
"arch": "string", // Update architecture, such as amd64/x86/arm64
"fileWrite": "string", // NO_SAVE if the build was already in the database, INFO_WRITTEN if it was just added to it.
"updateArray": [
{
"updateId": "string", // UUID Update Identifier
"updateTitle": "string", // Update title, such as Windows 10 Insider Preview 19577.1000 (rs_prerelease)
"foundBuild": "string", // Update build number, such as 19577.1000
"arch": "string", // Update architecture, such as amd64/x86/arm64
"fileWrite": "string" // NO_SAVE if the build was already in the database, INFO_WRITTEN if it was just added to it.
}
]
},
"jsonApiVersion": "string" // Current JSON API version
}
```
### `/get.php`
Retrieves download links for specified Update ID and provides lists of ready to
use UUP sets.
Parameters:
- `id` - Update identifier (UUID string)
- **Supported values:** Any valid update identifier in the UUID format, may include revision in the following format: "UUID_rev.2".
- `lang` - Create UUP set for selected language (optional)
- **Supported values:** Language name in xx-xx format.
- `edition` - Create UUP set for the selected edition (optional)
- **Supported values:** Any edition name.
- **NOTE:** Must be used with `lang`.
- `noLinks` - Do not retrieve download links for the created UUP set (optional)
- **Supported values:** 0 = Disable (Retrieve links), 1 = Enable (No links)
#### JSON response format:
```javascript
{
"response": {
"apiVersion": "string", // Current UUP dump API version
"updateName": "string", // Update title, such as Windows 10 Insider Preview 19577.1000 (rs_prerelease)
"arch": "string", // Update architecture, for example x86
"build": "string", // Update build number, for example 19577.1000
"files": { // All files contained in the package
"string": { // File name, such as 'core_en-us.esd', 'microsoft-windows-client-features-package.esd', etc.
"sha1": "string", // The file's SHA1 checksum.
"size": "string", // File size in bytes
"url": "string", // File download link, 'null' if noLinks=1
"uuid": "string", // File UUIDv4, 'null' if noLinks=1 used
"expire": "string", // Link expiration date, '0' if noLinks=1 used
"debug": "string" // Raw data from Microsoft servers, 'null' if noLinks=1 used
},
...
}
},
"jsonApiVersion": "string" // Current JSON API version
}
```
### `/listlangs.php`
Lists available languages for the specified Update ID.
Parameters:
- `id` - Optional Update identifier (UUID string)
- **Supported values:** Any valid update identifier in the UUID format, may include revision in the following format: "UUID_rev.2".
#### JSON response format:
```javascript
{
"response": {
"apiVersion": "string", // Current UUP dump API version
"langList": [
"en-gb", // Short language name, xx-xx format.
...
],
"langFancyNames": {
"en-gb": "English (United Kingdom)", // key-value pairs of xx-xx to full language name.
...
}
},
"jsonApiVersion": "string" // Current JSON API version
}
```
### `/listeditions.php`
Lists available editions for the specified Update ID.
Parameters:
- `lang` - Generate edition list for the selected language
- **Supported values:** Language name in xx-xx format
- `id` - Optional update identifier (UUID string)
- **Supported values:** Any valid update identifier in the UUID format, may include revision in the following format: "UUID_rev.2".
#### JSON response format:
```javascript
{
"response": {
"apiVersion": "string", // Current UUP dump API version
"editionList": [
"CLOUD", // Short edition name
...
],
"editionFancyNames": {
"CLOUD": "Windows 10 S", // key-value pairs of edition name to fancy edition name.
...
}
},
"jsonApiVersion": "string" // Current JSON API version
}
```