Every API here is available over the APIs.io API and to AI agents over MCP.
{
"swagger": "2.0",
"info": {
"version": "v1",
"title": "WhatsUp Gold API",
"x-logo": {
"url": "images/wug_logo.svg"
},
"description": "**Version 2026.0**\n\n\n \n *Use WhatsUp Gold REST API to deploy network and device monitoring and management scripts.*\n\n \n \n\n \n \n # Overview\n\n\n \n The REST API enables you to connect systems and\n clients to WhatsUp Gold using simple HTTP calls. In general, REST APIs\n are language and platform-independent and your best choice to\n converge information systems, circumvent the unending need for\n client-server dependency maintenance, and span any combination of\n environments (including IoT, mobile, and much more).\n\n \n \n > **Tip**\n The REST API runs at the WhatsUp Gold Server (for example: https://`your-WhatsUp-Gold-server`:9644/api/v1/).\n\n\n \n > **Note**\n In general, this REST API expects the following verbs: GET (query record), POST (create record), PUT (update record), PATCH (batch modify/update record), or DELETE (remove record).\n\n\n \n Num | This REST Endpoint | Provides These Resources\n \n ------- | ------------------------------------------------------ | -----------------------------------------------------------\n\n **1.** | [`/api/v1/token`]( #section/Handling-Session-Tokens ) | Get, renew, refresh a session token.\n\n **2.** | [`/api/v1/credentials`]( #tag/Credential ) | Create, return, update or delete a credential.\n\n **3.** | [`/api/v1/device-groups`]( #tag/DeviceGroup ) | Create, return, update or delete a device group.\n\n **4.** | [`/api/v1/devices`]( #tag/Devices ) | Manage, monitor, and poll devices in WhatsUp Gold.\n\n **5.** | [`/api/v1/device-role/`]( #tag/DeviceRole ) | Create, return, update or delete a device's role category.\n\n **6.** | [`/api/v1/product`]( #tag/Product ) | Get product and versioning information.\n\n **7.** | [`/api/v1/devices/{deviceId}/reports/`]( #tag/DeviceReport ) [`/api/v1/device-groups/{groupId}/devices/reports/`]( #tag/DeviceGroupReport ) | Get a report for a given device or group of devices\n\n **8.** | [`/api/v1/errors/`]( #tag/Error ) | Utility endpoint for getting error template information.\n \n **9.** | [`/api/v1/monitors/`]( #tag/Monitor ) | Get, configure, and apply monitor templates.\n\n **10.** | [`/api/v1/swagger/`]( #section/Before-You-Begin/Interactive-REST-API-Client-Swagger-UI ) | Live Swagger UI interactive documentation (WhatsUp Gold installation required).\n\n \n # Before You Begin\n\n \n Before you begin using the WhatsUp Gold RESTful API, you will need the following:\n \n - The hostname for a deployed WhatsUp Gold system.\n \n - Username and password for a user on the target WhatsUp Gold system.\n \n - Your favorite HTTP client (the examples that follow use the cURL utility).\n\n\n \n Listener | URL | Purpose \n \n ------------ | ------------------------------------------------------------- | ------------------------------\n\n Swagger UI | `https://<your-WhatsUp-Gold-server>:9644/swagger/ui/index#/` | Browsable/interactive UI service available for exercising the REST API.\n\n REST API | `https://<your-WhatsUp-Gold-server>:9644/swagger/api/v1` | Primary REST API URL. \n\n Swagger API Specification and Documentation | `https://<your-WhatsUp-Gold-server>:9644/swagger/docs/v1` | Swagger specification.\n\n \n ## A quick check of the API\n \n If you are unsure whether or not the REST API is already listening for\n requests at the WhatsUp Gold host, here is a quick check. Type into\n your web browser\n `https://<your-WhatsUp-Gold-server-host>:9644/swagger/docs/v1`. (Where\n `<your-WhatsUp-Gold-server-host>` is the hostname of the WhatsUp Gold\n system.) If this call returns a JSON object, your API is running, and\n you can begin the steps that follow using this hostname.\n \n > **Tip**\n You can also use the Swagger spec object (`https://<your-WhatsUp-Gold-server>:9644/swagger/docs/v1/`) in tools such as Postman, Swagger Inspector, and more.\n\n \n ## Interactive REST API Client - Swagger UI\n\n \n Swagger UI libraries integrated with WhatsUp Gold at install time\n provide the following:\n\n \n - A way to browse the WhatsUp Gold REST documentation with live\n examples.\n \n - A simple development client for testing WhatsUp Gold REST calls.\n\n \n > **Caution**\n The examples in the Swagger UI are live calls (not simulated) that run against your WhatsUp Gold Environment. If you are just testing and exploring the\n capabilities of the REST API for development purposes, it is best practice to run against a non-production instance of WhatsUp Gold.\n \n \nTo open the interactive WhatsUp Gold REST client:\n\n \n 1. Open a browser to `https://my-whatsup-gold-host:9644/swagger/`\n\n --Where `my-whatsup-gold-host` is the host where you installed\n WhatsUp Gold\n\n \n 2. Add your user/password pair like so: *myusername* **:** *mypassword*\n\n \n 3. Click the **Login** button.\n\n \n 4. Browse and build queries and view JSON result objects.\n\n \n\n \n # Getting Started\n\n \n This section walks you through how to fetch user properties for the\n current user. \n\n\n \n >**Tip** If you are running an API token request against a non-production host\n with a self-signed SSL certificate needed to run HTTPS, remember to set the flag to ignore the self-signed certificate warning. (In the cURL example shown below this is the `-k` option.) \n\n\n \n To set your session up with the WhatsUp Gold RESTful API, you must\n retrieve an access token. Syntax, usage, and fields supported by the\n token endpoint are detailed in [Retrieve API Token](#_transfer-token).\n\n \n ```\n\n curl -k --request POST --url https://my-whatsup-gold-host:9644/api/v1/token --data \"grant_type=password&username=emmacurtis&password=1a2B3cA1b2C3\"\n\n ```\n\n \n \n### Example Output\n\n \n ```\n\n {\n\n \t\"access_token\": \"X03w.....dziTwmA\",\n\n \t\"token_type\": \"bearer\",\n\n \t\"expires_in\": 86399,\n\n \t\"refresh_token\": \"X03w.....dziTwmA\"\n\n }\n\n ```\n\n\n \n --Where `my-whatsup-gold-host` is the hostname where your WhatsUp Gold\n UI is running. \n\n --And, where you supply values for the username and password (such as\n the WhatsUp Gold user you created for this RESTful client application).\n\n \n Now, pass the access token as a header argument, type "Bearer" and get\n\n your user information.\n \n ``` \n\n curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer X03w.....dziTwmA' 'http://my-whatsup-gold-host:9644/api/v1/device-groups/0/devices'\n\n ```\n\n\n \n --Where `my-whatsup-gold-host` is the hostname where your WhatsUp Gold\n WebUI is running. \n\n --And, where you should replace the placeholder string `X03w....dziTwmA`\n with your 278 Byte access token. \n \n --And, where a group ID of zero ('0') denotes the entire body of devices\n managed by MY NETWORK. \n\n \n ### Example Output\n\n \n ```\n\n\n {\n\n \t\"paging\": {\n\n \t\t\"size\": 96\n\n \t},\n\n \t\"data\": {\n\n \t\t\"devices\": [\n\n \t\t{\n\n \t\t \"hostName\": \"192.168.37.1\",\n\n \t\t \"networkAddress\": \"192.168.37.1\",\n\n \t\t\"bestState\": \"Up\",\n\n \t\t\"worstState\": \"Up\",\n\n \t\t \"name\": \"192.168.37.1\",\n\n \t\t \"id\": \"14\"\n\n \t\t },\n\n \t\t {\n\n \t\t \"hostName\": \"192.168.37.100\",\n\n \t\t \"networkAddress\": \"192.168.37.100\",\n\n \t\t \"bestState\": \"Maintenance\",\n\n \t\t \"worstState\": \"Maintenance\",\n\n \t\t \"name\": \"192.168.37.100\",\n\n \t\t \"id\": \"16\"\n\n \t\t}, ... ]\n\n [list shortened for purposes of documentation]\n\n \t }\n\n ```\n\n \n # Handling Session Tokens\n\n \n Before you can be authorized to access WhatsUp Gold resources using this\n RESTful API, you must request an access token. Only authenticated\n clients can fetch or renew an access token.\n\n \n ## Request/refresh an access token\n\n \n HTTPS sessions with WhatsUp Gold begin with a token request. It must be\n sent as an HTTP POST.\n\n \n `POST /api/v{version}/token`\n \n ### *Example*\n\n \n > **Tip** If you are running an API token request against a non-production host with a self-signed SSL certificate needed to run HTTPS, remember to set the flag to ignore the self-signed certificate warning. (In the cURL example shown below this is the `-k` option.)\n\n \n ```\n\n curl -k --request POST --url https://my-whatsup-gold-host/api/v1/token --data \"grant_type=password&username=${username}&password=${password}\" \n\n ```\n\n --Where `my-whatsup-gold-host` is the hostname where your WhatsUp Gold\n WebUI is running.\n\n --And, where `${username}` and `${password}` are the username and\n password you created for the current client application.\n\n\n \n >**Note** For logging purposes, it is best practice to create an new API user using the WhatsUp Gold WebUI.\n\n \n ## Token response messages\n\n \n Response Content Type: application/json\n\n \n HTTP Status Code | Meaning | Response Model\n \n ---------------- | -----------------------------------------| -----------------------------------------------------------\n\n 200 | SUCCESS | `{ \"access_token\": \"_acaxffz2p3cl1ek8...\", \"token_type\": \"bearer\", \"expires_in\": 86399, \"refresh_token\": \"_ACAXFFZ2P3CL1EK8U,,,\" }`\n\n 400 \t | BAD REQUEST | `{ \"error\": \"invalid_grant\", \"error_description\": \"Invalid username/password or not allowed to sign on from this location.\" }`\n\n \n ## Use token in request \n\n \n After you get your session token you can use the token in subsequent requests. You pass the token in the HTTP header as type Bearer. \n For example, to get information such as user directory, name, user ID, and more for the current user, you would send this cURL GET request \n that passes the token using the -H option.\n\n \n ### *Example*\n\n ```\n\n curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer X03w....dziTwmA' 'http://my-whatsup-gold-host:9644/api/v1/device-groups/0/devices'\n\n ```\n\n --Where `my-whatsup-gold-host` is the hostname where your WhatsUp Gold WebUI is running.\n\n\t \n\t # Paging through REST API calls \n\n\t Any time a call potentially returns a large number of results, WhatsUp Gold uses the paging model to return those results to the user. The paging model consists of two parameters: limit and pageId. Limit controls the number of objects returned in each call and is defaulted to the optimal amount of data for the service to gather and return. When working with REST APIs, limit can be reduced by requesting fewer results, but it cannot be increased beyond the optimal size. The pageId is a token which starts out as empty to begin a request. In each return request header, there is a nextPageId which the token used in the next request for data to continue the query. The same parameters must be used in each request to successfully continue the query. All available data has been received when the nextPageId is empty. \n\n\n\t >**Note** The pageId should not be interpreted or changed and may change from release to release. \n\n "
},
"host": "10.40.67.158:9644",
"schemes": [
"https"
],
"paths": {
"/api/v1/credentials/{credentialId}": {
"get": {
"tags": [
"Credential"
],
"summary": "Return a credential",
"operationId": "Credential_Get",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID of the credential",
"required": true,
"type": "string"
},
{
"name": "view",
"in": "query",
"description": "type of credential information being requested, default=basic",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"summary",
"details"
]
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[Credential]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"put": {
"tags": [
"Credential"
],
"summary": "Update credential with new values",
"description": "The following fields have restrictions\r\n* Name - must be unique, lowercase compare\r\n \r\n**Note:** The property bag entries are minimally validated.\r\n It is the responsibility of the caller to ensure a credential is filled in with all data and usable.",
"operationId": "Credential_UpdateCredential",
"consumes": [
"application/json",
"text/json"
],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID of credential to be modified",
"required": true,
"type": "string"
},
{
"name": "credential",
"in": "body",
"description": "new values for credential",
"required": true,
"schema": {
"$ref": "#/definitions/CredentialModify"
}
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResult"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"delete": {
"tags": [
"Credential"
],
"summary": "Remove credential from credential library",
"operationId": "Credential_DeleteCredential",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID of the credential",
"required": true,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/SuccessResult"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/{credentialId}/assignments/-": {
"get": {
"tags": [
"Credential"
],
"summary": "Return a credential",
"operationId": "Credential_GetAssignments",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID of the credential",
"required": true,
"type": "string"
},
{
"name": "view",
"in": "query",
"description": "type of credential information being requested, default=basic",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"summary",
"details"
]
},
{
"name": "deviceView",
"in": "query",
"description": "type of assigned device information to be returned, default=id",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"card",
"overview"
]
},
{
"name": "pageId",
"in": "query",
"description": "page for the device assignments. Paging is only used for assignment view",
"required": false,
"type": "string"
},
{
"name": "limit",
"in": "query",
"description": "number of device assignments to include per page",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/PageResult[Credential]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"delete": {
"tags": [
"Credential"
],
"summary": "Remove assigned credential from all devices user has access to",
"operationId": "Credential_RemoveCredentialFromAllDevice",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID for credential to be unassigned",
"required": true,
"type": "string"
},
{
"name": "preventOrphanActiveMonitors",
"in": "query",
"description": "prevent operation if an active monitor will be orphaned, default=true",
"required": false,
"type": "boolean"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/CountedSuccessResult"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/-": {
"get": {
"tags": [
"Credential"
],
"summary": "Return page of credentials from credential library",
"operationId": "Credential_Find",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "view",
"in": "query",
"description": "type of credential information being requested, default=basic",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"summary",
"details"
]
},
{
"name": "type",
"in": "query",
"description": "filter for type of credential. Default=all",
"required": false,
"type": "string",
"enum": [
"all",
"snmpV1",
"snmpV2",
"snmpV3",
"windows",
"ado",
"telnet",
"ssh",
"vmware",
"jmx",
"smis",
"aws",
"azure",
"meraki",
"restapi",
"ubiquiti",
"redfish"
]
},
{
"name": "search",
"in": "query",
"description": "return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored",
"required": false,
"type": "string"
},
{
"name": "pageId",
"in": "query",
"description": "the pageId, empty will return first page",
"required": false,
"type": "string"
},
{
"name": "limit",
"in": "query",
"description": "limit the number of entries per page, is also limited by service. 0 or empty will give the maximum number per page",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/PageResult[List[Credential]]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"post": {
"tags": [
"Credential"
],
"summary": "Add credential to library",
"description": " The following field has restrictions\r\n\t**Name** - must be unique within type, lowercase compare\r\n\r\n **Note:** The property bag entries are minimally validated.\r\n It is the responsibility of the caller to ensure a credential is filled in with all data and usable.",
"operationId": "Credential_AddCredential",
"consumes": [
"application/json",
"text/json"
],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credential",
"in": "body",
"description": "new values for credential",
"required": true,
"schema": {
"$ref": "#/definitions/CredentialAdd"
}
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[Credential]"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/-/helper": {
"get": {
"tags": [
"Credential"
],
"summary": "Return information to help creating credential",
"description": "'meraki_organization' helper\r\n* input - API key for the organization.\r\n* return - list of information needed to build a Cisco Meraki credential.",
"operationId": "Credential_GetHelper",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "input",
"in": "query",
"description": "optional input field for the helper",
"required": true,
"type": "string"
},
{
"name": "type",
"in": "query",
"description": "Type of credential helper request should be sent to, default='meraki_organization'",
"required": false,
"type": "string",
"enum": [
"meraki_organization"
]
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[CredentialHelperResults]"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/-/assignments/-": {
"get": {
"tags": [
"Credential"
],
"summary": "Return information about credential assignments",
"operationId": "Credential_FindAssignments",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "view",
"in": "query",
"description": "type of credential information being requested, default=basic",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"summary",
"details"
]
},
{
"name": "type",
"in": "query",
"description": "filter for type of credential. default=all",
"required": false,
"type": "string",
"enum": [
"all",
"snmpV1",
"snmpV2",
"snmpV3",
"windows",
"ado",
"telnet",
"ssh",
"vmware",
"jmx",
"smis",
"aws",
"azure",
"meraki",
"restapi",
"ubiquiti",
"redfish"
]
},
{
"name": "search",
"in": "query",
"description": "return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored",
"required": false,
"type": "string"
},
{
"name": "deviceView",
"in": "query",
"description": "level of device information to be included when 'includeAssignments' is true, default='id'",
"required": false,
"type": "string",
"enum": [
"id",
"basic",
"card",
"overview"
]
},
{
"name": "pageId",
"in": "query",
"description": "the pageId, empty will return first page",
"required": false,
"type": "string"
},
{
"name": "limit",
"in": "query",
"description": "limit the number of entries per page, is also limited by service. 0 or empty will give the maximum number per page",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/PageResult[List[Credential]]"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/{credentialId}/config/template": {
"get": {
"tags": [
"Credential"
],
"summary": "Return a template for a credential",
"operationId": "Credential_GetTemplateById",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "credentialId",
"in": "path",
"description": "ID of the credential",
"required": true,
"type": "string"
},
{
"name": "key",
"in": "query",
"description": "obfuscation key is required to encode sensitive data. if key is empty, then only credentials without sensitive data will be returned",
"required": false,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[CredentialTemplateReadResults]"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/credentials/-/config/template": {
"get": {
"tags": [
"Credential"
],
"summary": "Return set of credential templates",
"operationId": "Credential_GetTemplate",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "key",
"in": "query",
"description": "obfuscation key is required to encode sensitive data. if key is empty, then only credentials without sensitive data will be returned",
"required": false,
"type": "string"
},
{
"name": "type",
"in": "query",
"description": "filter for type of credential. default=all",
"required": false,
"type": "string",
"enum": [
"all",
"snmpV1",
"snmpV2",
"snmpV3",
"windows",
"ado",
"telnet",
"ssh",
"vmware",
"jmx",
"smis",
"aws",
"azure",
"meraki",
"restapi",
"ubiquiti",
"redfish"
]
},
{
"name": "search",
"in": "query",
"description": "return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored",
"required": false,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[CredentialTemplateReadResults]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"patch": {
"tags": [
"Credential"
],
"summary": "Apply credential templates",
"operationId": "Credential_ApplyCredentialTemplates",
"consumes": [
"application/json",
"text/json"
],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "templates",
"in": "body",
"description": "set of credential templates to apply",
"required": true,
"schema": {
"$ref": "#/definitions/CredentialTemplateBatch"
}
},
{
"name": "key",
"in": "query",
"description": "value used to decode sensitive data. If key is empty, then all sensitive data will be assumed to be in clear text",
"required": false,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[ApplyTemplateResults]"
}
}
},
"security": [
{
"oauth2": []
}
]
}
},
"/api/v1/devices/{deviceId}/attributes/{attributeId}": {
"get": {
"tags": [
"Device"
],
"summary": "Return individual attribute",
"operationId": "Device_GetAttribute",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "deviceId",
"in": "path",
"description": "ID of device",
"required": true,
"type": "string"
},
{
"name": "attributeId",
"in": "path",
"description": "ID of attribute to return",
"required": true,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[DeviceAttribute]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"put": {
"tags": [
"Device"
],
"summary": "Update individual attribute",
"operationId": "Device_UpdateAttribute",
"consumes": [],
"produces": [
"application/json",
"text/json"
],
"parameters": [
{
"name": "deviceId",
"in": "path",
"description": "ID of device to update",
"required": true,
"type": "string"
},
{
"name": "attributeId",
"in": "path",
"description": "ID of attribute to update",
"required": true,
"type": "string"
},
{
"name": "name",
"in": "query",
"description": "name of device attribute",
"required": true,
"type": "string"
},
{
"name": "value",
"in": "query",
"description": "value for device attribute",
"required": false,
"type": "string"
},
{
"name": "Authorization",
"in": "header",
"description": "oauth2 access_token",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Result[SuccessResult]"
}
}
},
"security": [
{
"oauth2": []
}
]
},
"delete": {
"tags": [
"Device"
],
"summary": "Delete individual attribute",
"operationId": "Device_DeleteAttribute",
"consumes": [],
"produces": [
"application/json",
# --- truncated at 32 KB (573 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/progress-software/refs/heads/main/openapi/progress-software-whatsup-gold-openapi-original.json