Windows Device Portal core REST API reference
All Windows Device Portal (WDP) functionality is built on REST APIs that developers can call directly to access resources and control their devices programmatically.
App deployment
Install an app
Request
You can install an app by using the following request format.
Method | Request URI |
---|---|
POST | /api/app/packagemanager/package |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
package | (required) The file name of the package to be installed. |
Request headers
- None
Request body
- The .appx or .appxbundle file, as well as any dependencies the app requires.
- The certificate used to sign the app, if the device is IoT or Windows Desktop. Other platforms do not require the certificate.
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | Deploy request accepted and being processed |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Note
Windows Mixed Reality runs on regular desktop, so it’s the same portal as Desktop.
Install a related set
Request
You can install a related set by using the following request format.
Method | Request URI |
---|---|
POST | /api/app/packagemanager/package |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
package | (required) The file names of the packages to be installed. |
Request headers
- None
Request body
- Add ".opt" to the optional package file names when specifying them as a parameter, like so: "foo.appx.opt" or "bar.appxbundle.opt".
- The .appx or .appxbundle file, as well as any dependencies the app requires.
- The certificate used to sign the app, if the device is IoT or Windows Desktop. Other platforms do not require the certificate.
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | Deploy request accepted and being processed |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Register an app in a loose folder
Request
You can register an app in a loose folder by using the following request format.
Method | Request URI |
---|---|
POST | /api/app/packagemanager/networkapp |
URI parameters
- None
Request headers
- None
Request body
{
"mainpackage" :
{
"networkshare" : "\\some\share\path",
"username" : "optional_username",
"password" : "optional_password"
}
}
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | Deploy request accepted and being processed |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- Xbox
- HoloLens
- IoT
Register a related set in loose file folders
Request
You can register a related set in loose folders by using the following request format.
Method | Request URI |
---|---|
POST | /api/app/packagemanager/networkapp |
URI parameters
- None
Request headers
- None
Request body
{
"mainpackage" :
{
"networkshare" : "\\some\share\path",
"username" : "optional_username",
"password" : "optional_password"
},
"optionalpackages" :
[
{
"networkshare" : "\\some\share\path2",
"username" : "optional_username2",
"password" : "optional_password2"
},
...
]
}
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | Deploy request accepted and being processed |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- Xbox
- HoloLens
- IoT
Get app installation status
Request
You can get the status of an app installation that is currently in progress by using the following request format.
Method | Request URI |
---|---|
GET | /api/app/packagemanager/state |
URI parameters
- None
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | The result of the last deployment |
204 | The installation is running |
404 | No installation action was found |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Uninstall an app
Request
You can uninstall an app by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/app/packagemanager/package |
URI parameters
URI parameter | Description |
---|---|
package | (required) The PackageFullName (from GET /api/app/packagemanager/packages) of the target app |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Get installed apps
Request
You can get a list of apps installed on the system by using the following request format.
Method | Request URI |
---|---|
GET | /api/app/packagemanager/packages |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a list of installed packages with associated details. The template for this response is as follows.
{"InstalledPackages": [
{
"Name": string,
"PackageFamilyName": string,
"PackageFullName": string,
"PackageOrigin": int, (https://msdn.microsoft.com/library/windows/desktop/dn313167(v=vs.85).aspx)
"PackageRelativeId": string,
"Publisher": string,
"Version": {
"Build": int,
"Major": int,
"Minor": int,
"Revision": int
},
"RegisteredUsers": [
{
"UserDisplayName": string,
"UserSID": string
},...
]
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Bluetooth
Get the Bluetooth radios on the machine
Request
You can get a list of the Bluetooth radios that are installed on the machine by using the following request format. This can be upgraded to a WebSocket connection as well, with the same JSON data.
Method | Request URI |
---|---|
GET | /api/bt/getradios |
GET/WebSocket | /api/bt/getradios |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a JSON array of Bluetooth radios attached to the device.
{"BluetoothRadios" : [
{
"BluetoothAddress" : int64,
"DisplayName" : string,
"HasUnknownUsbDevice" : boolean,
"HasProblem" : boolean,
"ID" : string,
"ProblemCode" : int,
"State" : string
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Turn the Bluetooth radio on or off
Request
Sets a specific Bluetooth radio to On or Off.
Method | Request URI |
---|---|
POST | /api/bt/setradio |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
ID | (required) The device ID for the Bluetooth radio and must be base 64 encoded. |
State | (required) This can be "On" or "Off" . |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Get a list of paired Bluetooth devices
Request
You can get a list of the currently paired Bluetooth devices by using the following request format. This can be upgraded to a WebSocket connection with the same JSON data. During the lifetime of the WebSocket connection, the device list can change. A complete list of devices will be sent over the WebSocket connection each time there is an update.
Method | Request URI |
---|---|
GET | /api/bt/getpaired |
GET/WebSocket | /api/bt/getpaired |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a JSON array of Bluetooth devices that are currently paired.
{"PairedDevices": [
{
"Name" : string,
"ID" : string,
"AudioConnectionStatus" : string
},...
]}
The AudioConnectionStatus field will be present if the device can be used for audio on this system. (Policies and optional components may affect this.) AudioConnectionStatus will be either "Connected" or "Disconnected".
Get a list of available Bluetooth devices
Request
You can get a list of the Bluetooth devices available for pairing by using the following request format. This can be upgraded to a WebSocket connection with the same JSON data. During the lifetime of the WebSocket connection, the device list can change. A complete list of devices will be sent over the WebSocket connection each time there is an update.
Method | Request URI |
---|---|
GET | /api/bt/getavailable |
GET/WebSocket | /api/bt/getavailable |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a JSON array of Bluetooth devices that are currently available for pairing.
{"AvailableDevices": [
{
"Name" : string,
"ID" : string
},...
]}
Connect a Bluetooth device
Request
Will connect to the device if the device can be used for audio on this system. (Policies and optional components may affect this.)
Method | Request URI |
---|---|
POST | /api/bt/connectdevice |
URI parameters
URI parameter | Description |
---|---|
ID | (required) The Association Endpoint ID for the Bluetooth device and must be Base64-encoded. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Disconnect a Bluetooth device
Request
Will disconnect the device if the device can be used for audio on this system. (Policies and optional components may affect this.)
Method | Request URI |
---|---|
POST | /api/bt/disconnectdevice |
URI parameters
URI parameter | Description |
---|---|
ID | (required) The Association Endpoint ID for the Bluetooth device and must be Base64-encoded. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Device manager
Get the installed devices on the machine
Request
You can get a list of devices that are installed on the machine by using the following request format.
Method | Request URI |
---|---|
GET | /api/devicemanager/devices |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a JSON array of devices attached to the device.
{"DeviceList": [
{
"Class": string,
"Description": string,
"ID": string,
"Manufacturer": string,
"ParentID": string,
"ProblemCode": int,
"StatusCode": int
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- IoT
Get data on connected USB Devices/Hubs
Request
You can get a list of USB descriptors for connected USB devices and Hubs by using the following request format.
Method | Request URI |
---|---|
GET | /ext/devices/usbdevices |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response is JSON that includes DeviceID for the USB Device along with the USB Descriptors and port information for hubs.
{
"DeviceList": [
{
"ID": string,
"ParentID": string, // Will equal an "ID" within the list, or be blank
"Description": string, // optional
"Manufacturer": string, // optional
"ProblemCode": int, // optional
"StatusCode": int // optional
},
...
]
}
Sample return data
{
"DeviceList": [{
"ID": "System",
"ParentID": ""
}, {
"Class": "USB",
"Description": "Texas Instruments USB 3.0 xHCI Host Controller",
"ID": "PCI\\VEN_104C&DEV_8241&SUBSYS_1589103C&REV_02\\4&37085792&0&00E7",
"Manufacturer": "Texas Instruments",
"ParentID": "System",
"ProblemCode": 0,
"StatusCode": 25174026
}, {
"Class": "USB",
"Description": "USB Composite Device",
"DeviceDriverKey": "{36fc9e60-c465-11cf-8056-444553540000}\\0016",
"ID": "USB\\VID_045E&PID_00DB\\8&2994096B&0&1",
"Manufacturer": "(Standard USB Host Controller)",
"ParentID": "USB\\VID_0557&PID_8021\\7&2E9A8711&0&4",
"ProblemCode": 0,
"StatusCode": 25182218
}]
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Dump collection
Get the list of all crash dumps for apps
Request
You can get the list of all the available crash dumps for all sideloaded apps by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/usermode/dumps |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a list of crash dumps for each sideloaded application.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Get the crash dump collection settings for an app
Request
You can get the crash dump collection settings for a sideloaded app by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/usermode/crashcontrol |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
packageFullName | (required) The full name of the package for the sideloaded app. |
Request headers
- None
Request body
- None
Response
The response has the following format.
{"CrashDumpEnabled": bool}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Delete a crash dump for a sideloaded app
Request
You can delete a sideloaded app's crash dump by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/debug/dump/usermode/crashdump |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
packageFullName | (required) The full name of the package for the sideloaded app. |
fileName | (required) The name of the dump file that should be deleted. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Disable crash dumps for a sideloaded app
Request
You can disable crash dumps for a sideloaded app by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/debug/dump/usermode/crashcontrol |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
packageFullName | (required) The full name of the package for the sideloaded app. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Download the crash dump for a sideloaded app
Request
You can download a sideloaded app's crash dump by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/usermode/crashdump |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
packageFullName | (required) The full name of the package for the sideloaded app. |
fileName | (required) The name of the dump file that you want to download. |
Request headers
- None
Request body
- None
Response
The response includes a dump file. You can use WinDbg or Visual Studio to examine the dump file.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Enable crash dumps for a sideloaded app
Request
You can enable crash dumps for a sideloaded app by using the following request format.
Method | Request URI |
---|---|
POST | /api/debug/dump/usermode/crashcontrol |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
packageFullName | (required) The full name of the package for the sideloaded app. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Window Mobile (in Windows Insider Program)
- Windows Desktop
- HoloLens
- IoT
Get the list of bugcheck files
Request
You can get the list of bugcheck minidump files by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/kernel/dumplist |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a list of dump file names and the sizes of these files. This list will be in the following format.
{"DumpFiles": [
{
"FileName": string,
"FileSize": int
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Desktop
- IoT
Download a bugcheck dump file
Request
You can download a bugcheck dump file by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/kernel/dump |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
filename | (required) The file name of the dump file. You can find this by using the API to get the dump list. |
Request headers
- None
Request body
- None
Response
The response includes the dump file. You can inspect this file using WinDbg.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get the bugcheck crash control settings
Request
You can get the bugcheck crash control settings by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/kernel/crashcontrol |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the crash control settings. For more information about CrashControl, see the CrashControl article. The template for the response is as follows.
{
"autoreboot": bool (0 or 1),
"dumptype": int (0 to 4),
"maxdumpcount": int,
"overwrite": bool (0 or 1)
}
Dump types
0: Disabled
1: Complete memory dump (collects all in-use memory)
2: Kernel memory dump (ignores user mode memory)
3: Limited kernel minidump
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get a live kernel dump
Request
You can get a live kernel dump by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/livekernel |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the full kernel mode dump. You can inspect this file using WinDbg.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get a dump from a live user process
Request
You can get the dump for live user process by using the following request format.
Method | Request URI |
---|---|
GET | /api/debug/dump/usermode/live |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
pid | (required) The unique process id for the process you are interested in. |
Request headers
- None
Request body
- None
Response
The response includes the process dump. You can inspect this file using WinDbg or Visual Studio.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Set the bugcheck crash control settings
Request
You can set the settings for collecting bugcheck data by using the following request format.
Method | Request URI |
---|---|
POST | /api/debug/dump/kernel/crashcontrol |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
autoreboot | (optional) True or false. This indicates whether the system restarts automatically after it fails or locks. |
dumptype | (optional) The dump type. For the supported values, see the CrashDumpType Enumeration. |
maxdumpcount | (optional) The maximum number of dumps to save. |
overwrite | (optional) True of false. This indicates whether or not to overwrite old dumps when the dump counter limit specified by maxdumpcount has been reached. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
ETW
Create a realtime ETW session over a websocket
Request
You can create a realtime ETW session by using the following request format. This will be managed over a websocket. ETW events are batched on the server and sent to the client once per second.
Method | Request URI |
---|---|
GET/WebSocket | /api/etw/session/realtime |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the ETW events from the enabled providers. See ETW WebSocket commands below.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
ETW WebSocket commands
These commands are sent from the client to the server.
Command | Description |
---|---|
provider {guid} enable {level} | Enable the provider marked by {guid} (without brackets) at the specified level. {level} is an int from 1 (least detail) to 5 (verbose). |
provider {guid} disable | Disable the provider marked by {guid} (without brackets). |
This responses is sent from the server to the client. This is sent as text and you get the following format by parsing the JSON.
{
"Events":[
{
"Timestamp": int,
"ProviderName": string,
"ID": int,
"TaskName": string,
"Keyword": int,
"Level": int,
payload objects...
},...
],
"Frequency": int
}
Payload objects are extra key-value pairs (string:string) that are provided in the original ETW event.
Example:
{
"ID" : 42,
"Keyword" : 9223372036854775824,
"Level" : 4,
"Message" : "UDPv4: 412 bytes transmitted from 10.81.128.148:510 to 132.215.243.34:510. ",
"PID" : "1218",
"ProviderName" : "Microsoft-Windows-Kernel-Network",
"TaskName" : "KERNEL_NETWORK_TASK_UDPIP",
"Timestamp" : 131039401761757686,
"connid" : "0",
"daddr" : "132.245.243.34",
"dport" : "500",
"saddr" : "10.82.128.118",
"seqnum" : "0",
"size" : "412",
"sport" : "500"
}
Enumerate the registered ETW providers
Request
You can enumerate through the registered providers by using the following request format.
Method | Request URI |
---|---|
GET | /api/etw/providers |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the list of ETW providers. The list will include the friendly name and GUID for each provider in the following format.
{"Providers": [
{
"GUID": string, (GUID)
"Name": string
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Enumerate the custom ETW providers exposed by the platform.
Request
You can enumerate through the registered providers by using the following request format.
Method | Request URI |
---|---|
GET | /api/etw/customproviders |
URI parameters
- None
Request headers
- None
Request body
- None
Response
200 OK. The response includes the list of ETW providers. The list will include the friendly name and GUID for each provider.
{"Providers": [
{
"GUID": string, (GUID)
"Name": string
},...
]}
Status code
- Standard status codes.
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Location
Get location override mode
Request
You can get the device's location stack override status by using the following request format. Developer mode must be on for this call to succeed.
Method | Request URI |
---|---|
GET | /ext/location/override |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the override state of the device in the following format.
{"Override" : bool}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Set location override mode
Request
You can set the device's location stack override status by using the following request format. When enabled, the location stack allows position injection. Developer mode must be on for this call to succeed.
Method | Request URI |
---|---|
PUT | /ext/location/override |
URI parameters
- None
Request headers
- None
Request body
{"Override" : bool}
Response
The response includes the override state that the device has been set to in the following format.
{"Override" : bool}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Get the injected position
Request
You can get the device's injected (spoofed) location by using the following request format. An injected location must be set, or an error will be thrown.
Method | Request URI |
---|---|
GET | /ext/location/position |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the current injected latitude and longitude values in the following format.
{
"Latitude" : double,
"Longitude" : double
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Set the injected position
Request
You can set the device's injected (spoofed) location by using the following request format. Location override mode must first be enabled on the device, and the set location must be a valid location or an error will be thrown.
Method | Request URI |
---|---|
PUT | /ext/location/override |
URI parameters
- None
Request headers
- None
Request body
{
"Latitude" : double,
"Longitude" : double
}
Response
The response includes the location that has been set in the following format.
{
"Latitude" : double,
"Longitude" : double
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
OS information
Get the machine name
Request
You can get the name of a machine by using the following request format.
Method | Request URI |
---|---|
GET | /api/os/machinename |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the computer name in the following format.
{"ComputerName": string}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Get the operating system information
Request
You can get the OS information for a machine by using the following request format.
Method | Request URI |
---|---|
GET | /api/os/info |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the OS information in the following format.
{
"ComputerName": string,
"OsEdition": string,
"OsEditionId": int,
"OsVersion": string,
"Platform": string
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Get the device family
Request
You can get the device family (Xbox, phone, desktop, etc) using the following request format.
Method | Request URI |
---|---|
GET | /api/os/devicefamily |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the device family (SKU - Desktop, Xbox, etc).
{
"DeviceType" : string
}
DeviceType will look like "Windows.Xbox", "Windows.Desktop", etc.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Set the machine name
Request
You can set the name of a machine by using the following request format.
Method | Request URI |
---|---|
POST | /api/os/machinename |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
name | (required) The new name for the machine. This should be base64 encoded. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
User information
Get the active user
Request
You can get the name of the active user on the device by using the following request format.
Method | Request URI |
---|---|
GET | /api/users/activeuser |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes user information in the following format.
On success:
{
"UserDisplayName" : string,
"UserSID" : string
}
On failure:
{
"Code" : int,
"CodeText" : string,
"Reason" : string,
"Success" : bool
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Performance data
Get the list of running processes
Request
You can get the list of currently running processes by using the following request format. this can be upgraded to a WebSocket connection as well, with the same JSON data being pushed to the client once per second.
Method | Request URI |
---|---|
GET | /api/resourcemanager/processes |
GET/WebSocket | /api/resourcemanager/processes |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes a list of processes with details for each process. The information is in JSON format and has the following template.
{"Processes": [
{
"CPUUsage": float,
"ImageName": string,
"PageFileUsage": long,
"PrivateWorkingSet": long,
"ProcessId": int,
"SessionId": int,
"UserName": string,
"VirtualSize": long,
"WorkingSetSize": long
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Get the system performance statistics
Request
You can get the system performance statistics by using the following request format. This includes information such as read and write cycles and how much memory has been used.
Method | Request URI |
---|---|
GET | /api/resourcemanager/systemperf |
GET/WebSocket | /api/resourcemanager/systemperf |
This can also be upgraded to a WebSocket connection. It provides the same JSON data below once every second.
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the performance statistics for the system such as CPU and GPU usage, memory access, and network access. This information is in JSON format and has the following template.
{
"AvailablePages": int,
"CommitLimit": int,
"CommittedPages": int,
"CpuLoad": int,
"IOOtherSpeed": int,
"IOReadSpeed": int,
"IOWriteSpeed": int,
"NonPagedPoolPages": int,
"PageSize": int,
"PagedPoolPages": int,
"TotalInstalledInKb": int,
"TotalPages": int,
"GPUData":
{
"AvailableAdapters": [{ (One per detected adapter)
"DedicatedMemory": int,
"DedicatedMemoryUsed": int,
"Description": string,
"SystemMemory": int,
"SystemMemoryUsed": int,
"EnginesUtilization": [ float,... (One per detected engine)]
},...
]},
"NetworkingData": {
"NetworkInBytes": int,
"NetworkOutBytes": int
}
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Power
Get the current battery state
Request
You can get the current state of the battery by using the following request format.
Method | Request URI |
---|---|
GET | /api/power/battery |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The current battery state information is returned using the following format.
{
"AcOnline": int (0 | 1),
"BatteryPresent": int (0 | 1),
"Charging": int (0 | 1),
"DefaultAlert1": int,
"DefaultAlert2": int,
"EstimatedTime": int,
"MaximumCapacity": int,
"RemainingCapacity": int
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Get the active power scheme
Request
You can get the active power scheme by using the following request format.
Method | Request URI |
---|---|
GET | /api/power/activecfg |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The active power scheme has the following format.
{"ActivePowerScheme": string (guid of scheme)}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get the sub-value for a power scheme
Request
You can get the sub-value for a power scheme by using the following request format.
Method | Request URI |
---|---|
GET | /api/power/cfg/<power scheme path> |
Options:
- SCHEME_CURRENT
URI parameters
- None
Request headers
- None
Request body
A full listing of power states available is on a per-application basis and the settings for flagging various power states like low and critical batterty.
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get the power state of the system
Request
You can check the power state of the system by using the following request format. This will let you check to see if it is in a low power state.
Method | Request URI |
---|---|
GET | /api/power/state |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The power state information has the following template.
{"LowPowerState" : false, "LowPowerStateAvailable" : true }
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Set the active power scheme
Request
You can set the active power scheme by using the following request format.
Method | Request URI |
---|---|
POST | /api/power/activecfg |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
scheme | (required) The GUID of the scheme you want to set as the active power scheme for the system. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Set the sub-value for a power scheme
Request
You can set the sub-value for a power scheme by using the following request format.
Method | Request URI |
---|---|
POST | /api/power/cfg/<power scheme path> |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
valueAC | (required) The value to use for A/C power. |
valueDC | (required) The value to use for battery power. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Desktop
- IoT
Get a sleep study report
Request
Method | Request URI |
---|---|
GET | /api/power/sleepstudy/report |
You can get a sleep study report by using the following request format.
URI parameters | URI parameter | Description | | :------ | :------ | | FileName | (required) The full name for the file you want to download. This value should be hex64 encoded. |
Request headers
- None
Request body
- None
Response
The response is a file containing the sleep study.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Enumerate the available sleep study reports
Request
You can enumerate the available sleep study reports by using the following request format.
Method | Request URI |
---|---|
GET | /api/power/sleepstudy/reports |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The list of available reports has the following template.
{"Reports": [
{
"FileName": string
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Get the sleep study transform
Request
You can get the sleep study transform by using the following request format. This transform is an XSLT that converts the sleep study report into an XML format that can be read by a person.
Method | Request URI |
---|---|
GET | /api/power/sleepstudy/transform |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response contains the sleep study transform.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- IoT
Remote control
Restart the target computer
Request
You can restart the target computer by using the following request format.
Method | Request URI |
---|---|
POST | /api/control/restart |
URI parameters
- None
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Shut down the target computer
Request
You can shut down the target computer by using the following request format.
Method | Request URI |
---|---|
POST | /api/control/shutdown |
URI parameters
- None
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Task manager
Start a modern app
Request
You can start a modern app by using the following request format.
Method | Request URI |
---|---|
POST | /api/taskmanager/app |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
appid | (required) The PRAID for the app you want to start. This value should be hex64 encoded. |
package | (required) The full name for the app package you want to start. This value should be hex64 encoded. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Stop a modern app
Request
You can stop a modern app by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/taskmanager/app |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
package | (required) The full name of the app packages that you want to stop. This value should be hex64 encoded. |
forcestop | (optional) A value of yes indicates that the system should force all processes to stop. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Kill process by PID
Request
You can kill a process by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/taskmanager/process |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
pid | (required) The unique process id for the process to stop. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Networking
Get the current IP configuration
Request
You can get the current IP configuration by using the following request format.
Method | Request URI |
---|---|
GET | /api/networking/ipconfig |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The response includes the IP configuration in the following template.
{"Adapters": [
{
"Description": string,
"HardwareAddress": string,
"Index": int,
"Name": string,
"Type": string,
"DHCP": {
"LeaseExpires": int, (timestamp)
"LeaseObtained": int, (timestamp)
"Address": {
"IpAddress": string,
"Mask": string
}
},
"WINS": {(WINS is optional)
"Primary": {
"IpAddress": string,
"Mask": string
},
"Secondary": {
"IpAddress": string,
"Mask": string
}
},
"Gateways": [{ (always 1+)
"IpAddress": "10.82.128.1",
"Mask": "255.255.255.255"
},...
],
"IpAddresses": [{ (always 1+)
"IpAddress": "10.82.128.148",
"Mask": "255.255.255.0"
},...
]
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Set a static IP address (IPV4 configuration)
Request
Sets the IPV4 configuration with static IP and DNS. If a static IP is not specified, then it enables DHCP. If a static IP is specified, then DNS must be specified also.
Method | Request URI |
---|---|
PUT | /api/networking/ipv4config |
URI parameters
URI parameter | Description |
---|---|
AdapterName | (required) The network interface GUID. |
IPAddress | The static IP address to set. |
SubnetMask | (required if IPAddress is not null) The static subnet mask. |
DefaultGateway | (required if IPAddress is not null) The static default gateway. |
PrimaryDNS | (required if IPAddress is not null) The static primary DNS to set. |
SecondayDNS | (required if PrimaryDNS is not null) The static secondary DNS to set. |
For clarity, to set an interface to DHCP, serialize just the AdapterName
on the wire:
{
"AdapterName":"{82F86C1B-2BAE-41E3-B08D-786CA44FEED7}"
}
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Enumerate wireless network interfaces
Request
You can enumerate the available wireless network interfaces by using the following request format.
Method | Request URI |
---|---|
GET | /api/wifi/interfaces |
URI parameters
- None
Request headers
- None
Request body
- None
Response
A list of the available wireless interfaces with details in the following format.
{"Interfaces": [{
"Description": string,
"GUID": string (guid with curly brackets),
"Index": int,
"ProfilesList": [
{
"GroupPolicyProfile": bool,
"Name": string, (Network currently connected to)
"PerUserProfile": bool
},...
]
}
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Enumerate wireless networks
Request
You can enumerate the list of wireless networks on the specified interface by using the following request format.
Method | Request URI |
---|---|
GET | /api/wifi/networks |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
interface | (required) The GUID for the network interface to use to search for wireless networks, without brackets. |
Request headers
- None
Request body
- None
Response
The list of wireless networks found on the provided interface. This includes details for the networks in the following format.
{"AvailableNetworks": [
{
"AlreadyConnected": bool,
"AuthenticationAlgorithm": string, (WPA2, etc)
"Channel": int,
"CipherAlgorithm": string, (for example, AES)
"Connectable": int, (0 | 1)
"InfrastructureType": string,
"ProfileAvailable": bool,
"ProfileName": string,
"SSID": string,
"SecurityEnabled": int, (0 | 1)
"SignalQuality": int,
"BSSID": [int,...],
"PhysicalTypes": [string,...]
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Connect and disconnect to a Wi-Fi network.
Request
You can connect or disconnect to a Wi-Fi network by using the following request format.
Method | Request URI |
---|---|
POST | /api/wifi/network |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
interface | (required) The GUID for the network interface you use to connect to the network. |
op | (required) Indicates the action to take. Possible values are connect or disconnect. |
ssid | (required if op == connect) The SSID to connect to. |
key | (required if op == connect and network requires authentication) The shared key. |
createprofile | (required) Create a profile for the network on the device. This will cause the device to auto-connect to the network in the future. This can be yes or no. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Delete a Wi-Fi profile
Request
You can delete a profile associated with a network on a specific interface by using the following request format.
Method | Request URI |
---|---|
DELETE | /api/wifi/profile |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
interface | (required) The GUID for the network interface associated with the profile to delete. |
profile | (required) The name of the profile to delete. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Windows Error Reporting (WER)
Download a Windows error reporting (WER) file
Request
You can download a WER-related file by using the following request format.
Method | Request URI |
---|---|
GET | /api/wer/report/file |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
user | (required) The user name associated with the report. |
type | (required) The type of report. This can be either queried or archived. |
name | (required) The name of the report. This should be base64 encoded. |
file | (required) The name of the file to download from the report. This should be base64 encoded. |
Request headers
- None
Request body
- None
Response
- Response contains the requested file.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Enumerate files in a Windows error reporting (WER) report
Request
You can enumerate the files in a WER report by using the following request format.
Method | Request URI |
---|---|
GET | /api/wer/report/files |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
user | (required) The user associated with the report. |
type | (required) The type of report. This can be either queried or archived. |
name | (required) The name of the report. This should be base64 encoded. |
Request headers
- None
Request body
{"Files": [
{
"Name": string, (Filename, not base64 encoded)
"Size": int (bytes)
},...
]}
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
List the Windows error reporting (WER) reports
Request
You can get the WER reports by using the following request format.
Method | Request URI |
---|---|
GET | /api/wer/reports |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The WER reports in the following format.
{"WerReports": [
{
"User": string,
"Reports": [
{
"CreationTime": int,
"Name": string, (not base64 encoded)
"Type": string ("Queue" or "Archive")
},
]},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Desktop
- HoloLens
- IoT
Windows Performance Recorder (WPR)
Start tracing with a custom profile
Request
You can upload a WPR profile and start tracing using that profile by using the following request format. Only one trace can run at a time. The profile will not remain on the device.
Method | Request URI |
---|---|
POST | /api/wpr/customtrace |
URI parameters
- None
Request headers
- None
Request body
- A multi-part conforming http body that contains the custom WPR profile.
Response
The WPR session status in the following format.
{
"SessionType": string, (Running or Idle)
"State": string (normal or boot)
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Start a boot performance tracing session
Request
You can start a boot WPR tracing session by using the following request format. This is also known as a performance tracing session.
Method | Request URI |
---|---|
POST | /api/wpr/boottrace |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
profile | (required) This parameter is required on start. The name of the profile that should start a performance tracing session. The possible profiles are stored in perfprofiles/profiles.json. |
Request headers
- None
Request body
- None
Response
On start, this API returns the WPR session status in the following format.
{
"SessionType": string, (Running or Idle)
"State": string (boot)
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Stop a boot performance tracing session
Request
You can stop a boot WPR tracing session by using the following request format. This is also known as a performance tracing session.
Method | Request URI |
---|---|
GET | /api/wpr/boottrace |
URI parameters
- None
Request headers
- None
Request body
- None
Response
- None. Note: This is a long running operation. It will return when the ETL is finished writing to disk.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Start a performance tracing session
Request
You can start a WPR tracing session by using the following request format. This is also known as a performance tracing session. Only one trace can run at a time.
Method | Request URI |
---|---|
POST | /api/wpr/trace |
URI parameters
You can specify the following additional parameters on the request URI:
URI parameter | Description |
---|---|
profile | (required) The name of the profile that should start a performance tracing session. The possible profiles are stored in perfprofiles/profiles.json. |
Request headers
- None
Request body
- None
Response
On start, this API returns the WPR session status in the following format.
{
"SessionType": string, (Running or Idle)
"State": string (normal)
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Stop a performance tracing session
Request
You can stop a WPR tracing session by using the following request format. This is also known as a performance tracing session.
Method | Request URI |
---|---|
GET | /api/wpr/trace |
URI parameters
- None
Request headers
- None
Request body
- None
Response
- None. Note: This is a long running operation. It will return when the ETL is finished writing to disk.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Retrieve the status of a tracing session
Request
You can retrieve the status of the current WPR session by using the following request format.
Method | Request URI |
---|---|
GET | /api/wpr/status |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The status of the WPR tracing session in the following format.
{
"SessionType": string, (Running or Idle)
"State": string (normal or boot)
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
List completed tracing sessions (ETLs)
Request
You can get a listing of ETL traces on the device using the following request format.
Method | Request URI |
---|---|
GET | /api/wpr/tracefiles |
URI parameters
- None
Request headers
- None
Request body
- None
Response
The listing of completed tracing sessions is provided in the following format.
{"Items": [{
"CurrentDir": string (filepath),
"DateCreated": int (File CreationTime),
"FileSize": int (bytes),
"Id": string (filename),
"Name": string (filename),
"SubPath": string (filepath),
"Type": int
}]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Download a tracing session (ETL)
Request
You can download a tracefile (boot trace or user-mode trace) using the following request format.
Method | Request URI |
---|---|
GET | /api/wpr/tracefile |
URI parameters
You can specify the following additional parameter on the request URI:
URI parameter | Description |
---|---|
filename | (required) The name of the ETL trace to download. These can be found in /api/wpr/tracefiles |
Request headers
- None
Request body
- None
Response
- Returns the trace ETL file.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
Delete a tracing session (ETL)
Request
You can delete a tracefile (boot trace or user-mode trace) using the following request format.
Method | Request URI |
---|---|
DELETE | /api/wpr/tracefile |
URI parameters
You can specify the following additional parameter on the request URI:
URI parameter | Description |
---|---|
filename | (required) The name of the ETL trace to delete. These can be found in /api/wpr/tracefiles |
Request headers
- None
Request body
- None
Response
- Returns the trace ETL file.
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- IoT
DNS-SD Tags
View Tags
Request
View the currently applied tags for the device. These are advertised via DNS-SD TXT records in the T key.
Method | Request URI |
---|---|
GET | /api/dns-sd/tags |
URI parameters
- None
Request headers
- None
Request body
- None
Response The currently applied tags in the following format.
{
"tags": [
"tag1",
"tag2",
...
]
}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
5XX | Server Error |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Delete Tags
Request
Delete all tags currently advertised by DNS-SD.
Method | Request URI |
---|---|
DELETE | /api/dns-sd/tags |
URI parameters
- None
Request headers
- None
Request body
- None
Response
- None
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
5XX | Server Error |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Delete Tag
Request
Delete a tag currently advertised by DNS-SD.
Method | Request URI |
---|---|
DELETE | /api/dns-sd/tag |
URI parameters
URI parameter | Description |
---|---|
tagValue | (required) The tag to be removed. |
Request headers
- None
Request body
- None
Response
- None
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
Add a Tag
Request
Add a tag to the DNS-SD advertisement.
Method | Request URI |
---|---|
POST | /api/dns-sd/tag |
URI parameters
URI parameter | Description |
---|---|
tagValue | (required) The tag to be added. |
Request headers
- None
Request body
- None
Response
- None
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
401 | Tag space Overflow. Results when the proposed tag is too long for the resulting DNS-SD service record. |
Available device families
- Windows Mobile
- Windows Desktop
- Xbox
- HoloLens
- IoT
App File Explorer
Get known folders
Request
Obtain a list of accessible top-level folders.
Method | Request URI |
---|---|
GET | /api/filesystem/apps/knownfolders |
URI parameters
- None
Request headers
- None
Request body
- None
Response The available folders in the following format.
{"KnownFolders": [
"folder0",
"folder1",...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | Deploy request accepted and being processed |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT
Get files
Request
Obtain a list of files in a folder.
Method | Request URI |
---|---|
GET | /api/filesystem/apps/files |
URI parameters
URI parameter | Description |
---|---|
knownfolderid | (required) The top-level directory where you want the list of files. Use LocalAppData for access to sideloaded apps. |
packagefullname | (required if knownfolderid == LocalAppData) The package full name of the app you are interested in. |
path | (optional) The sub-directory within the folder or package specified above. |
Request headers
- None
Request body
- None
Response The available folders in the following format.
{"Items": [
{
"CurrentDir": string (folder under the requested known folder),
"DateCreated": int,
"FileSize": int (bytes),
"Id": string,
"Name": string,
"SubPath": string (present if this item is a folder, this is the name of the folder),
"Type": int
},...
]}
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT
Download a file
Request
Obtain a file from a known folder or appLocalData.
Method | Request URI |
---|---|
GET | /api/filesystem/apps/file |
URI parameters
URI parameter | Description |
---|---|
knownfolderid | (required) The top-level directory where you want to download files. Use LocalAppData for access to sideloaded apps. |
filename | (required) The name of the file being downloaded. |
packagefullname | (required if knownfolderid == LocalAppData) The package full name you are interested in. |
path | (optional) The sub-directory within the folder or package specified above. |
Request headers
- None
Request body
- The file requested, if present
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | The requested file |
404 | File not found |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT
Rename a file
Request
Rename a file in a folder.
Method | Request URI |
---|---|
POST | /api/filesystem/apps/rename |
URI parameters
URI parameter | Description |
---|---|
knownfolderid | (required) The top-level directory where the file is located. Use LocalAppData for access to sideloaded apps. |
filename | (required) The original name of the file being renamed. |
newfilename | (required) The new name of the file. |
packagefullname | (required if knownfolderid == LocalAppData) The package full name of the app you are interested in. |
path | (optional) The sub-directory within the folder or package specified above. |
Request headers
- None
Request body
- None
Response
- None
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK. The file is renamed |
404 | File not found |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT
Delete a file
Request
Delete a file in a folder.
Method | Request URI |
---|---|
DELETE | /api/filesystem/apps/file |
URI parameters
URI parameter | Description |
---|---|
knownfolderid | (required) The top-level directory where you want to delete files. Use LocalAppData for access to sideloaded apps. |
filename | (required) The name of the file being deleted. |
packagefullname | (required if knownfolderid == LocalAppData) The package full name of the app you are interested in. |
path | (optional) The sub-directory within the folder or package specified above. |
Request headers
- None
Request body
- None
Response
- None
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK. The file is deleted |
404 | File not found |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT
Upload a file
Request
Upload a file to a folder. This will overwrite an existing file with the same name, but will not create new folders.
Method | Request URI |
---|---|
POST | /api/filesystem/apps/file |
URI parameters
URI parameter | Description |
---|---|
knownfolderid | (required) The top-level directory where you want to upload files. Use LocalAppData for access to sideloaded apps. |
packagefullname | (required if knownfolderid == LocalAppData) The package full name of the app you are interested in. |
extract | (required) True or false. This indicates whether the file should be extracted after upload. |
path | (optional) The sub-directory within the folder or package specified above. |
Request headers
- None
Request body
- None
Response
Status code
This API has the following expected status codes.
HTTP status code | Description |
---|---|
200 | OK. The file is uploaded |
4XX | Error codes |
5XX | Error codes |
Available device families
- Windows Mobile
- Windows Desktop
- HoloLens
- Xbox
- IoT