{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"c5e9f281-faff-4ff9-8a67-c79d47bf8d0f","name":"LoadMaster RESTful APIv2 Documentation","description":"This document describes the RESTful API Interface to the LoadMaster. It describes in detail how to configure the various features of the LoadMaster using the RESTful API.\n\nIn LoadMaster firmware version 7.2.50, functionality was added which allows you to specify API requests as a POST of a JSON object and receive a JSON-based API payload response. POST is not required for input data - the GET method can also be used for this.\n\nThe example requests in this document use POSTs of a JSON object and the example responses are in JSON format. For details and examples of how to use the old format (XML-based output), refer to the [RESTful API Postman-hosted documentation](https://loadmasterapiv1.docs.progress.com/).\n\nThere is a small subset of commands that do not currently work using the APIv2 format. As a workaround, you can use the APIv1 to run these commands:\n\n\\* **locdataupdate**  \n\\* **addvxlan** (using the **group** parameter)  \n\\* **installpatch**  \n\\* **geoimportksk**\n\nFor further details on the APIv1, refer to the [RESTful API Postman-hosted documentation](https://loadmasterapiv1.docs.progress.com/).\n\nThis document does not explain each of the features or options in detail. For further information, refer to the relevant Feature Description document on [https://docs.progress.com](https://docs.progress.com)\n\n## Intended Audience\n\nThis document is intended to help anyone who wants to configure the LoadMaster using the RESTful API.\n\n## Setting Collection-Level Variables\n\nClicking **Run in Postman** in the top-right of the LoadMaster APIv2 documentation allows you to import this collection into your Postman instance.\n\nA number of collection-level variables are used throughout the commands and you can set the values of these variables by following these steps in Postman:\n\n1. Click **Collections**.\n    \n2. Click the **LoadMaster RESTful API Documentation** collection.\n    \n3. Click **Variables**.\n    \n4. Set the value of the variable.\n    \n\nAfter setting the value of the relevant variables, you should be able to run the commands in the collection successfully against your LoadMaster.\n\n# The RESTful API Interface\n\nThis document describes an interface designed to allow remote applications access to the LoadMaster in a simple and consistent manner. The interface is a REST-like interface. REST (Representational State Transfer) is a style of software architecture for distributed systems and is one of the predominant web service design models.\n\n## JSON-based Input and Output\n\n> Certificate-based authentication is not supported when using JSON-based input and output. The old format of the API supports certificate-based login in addition to basic authentication. However, certificate-based login has proved to be relatively difficult and costly for customers to configure and maintain. Customers have requested a token-based method of remote login - so API keys were introduced. For further details, refer to the **API Keys** section. \n  \n\nTo use JSON-based input and output, all requests must be a POST of a JSON object. Any parameters given to the **accessv2** request are ignored. For example, `/accessv2/example` is the same as `/accessv2`.\n\nEach request is a JSON object. The only mandatory field is cmd which is the name of the command to execute.\n\nFor authorization purposes, an API key (**apikey**) or a username/password pair (**apiuser**, **apipass**) can also be given. You can also specify the **Basic Auth** values (**Username** and **Password**) in the **Authorization** header. Once the machine has been licensed, some form of authentication must be provided for access to be allowed. If an **apikey** is provided, this has precedence over any username/passwords provided.\n\nSome commands have sub-commands, for example **logging**, **ssodomain**, **aclcontrol**, **geoacl**, and **cluster**. In the old format, most of these sub-commands are run like this: `/access/logging/df`. In the new format, here is an example of how a sub-command is run: `logging.df`.\n\nIf a command requires binary data (file uploads - for example, a certificate), this data must be passed in the \"data\" string and be base64-encoded.\n\nIf a command returns binary data, this is returned as a base64-encoded string. This field normally has the name \"data\".\n\nHere is an example of a simple request (**\\-d** tells cURL to send the following string as a POST request):\n\n**curl -k -d '{ \"apikey\" : \"\", \"cmd\" : \"stats\" }' https:///accessv2**\n\nThe above example works using the Linux command line. On Windows, you must swap the single quotes (') for double-quotes (\") and negate the double-quotes (\") with a backslash (\\\\), for example:\n\n**curl -k -d \"{\\\\\"apikey\\\\\":\\\\\"\\\\\",\\\\\"cmd\\\\\":\\\\\"stats\\\\\"}\" https:///accessv2**\n\nHere is another Linux example that sets a parameter value:\n\n```\ncurl -k -d '{ \"apikey\" : \"\", \"cmd\" : \"set\", \"param\" : \"enableapi\", \"val\" : true } ' https:///accessv2\n\n ```\n\nFor reference, here is how these requests would look if running the commands using the old format:\n\n```\nhttps://{{LoadMasterIPAddress}}/access/listapi\nhttps://{{LoadMasterIPAddress}}/access/set?param=enable&value=1\n\n ```\n\n## Security\n\nAn application can only access the LoadMaster using the standard IP address. Security is provided in exactly the same way as over the standard User Interface (UI), that is, valid credentials must be passed on every access when using Basic Authentication.\n\nThe user **bal** naturally has access to all functionality; other users have access to the subsystems that have been assigned to them using the LoadMaster permissions.\n\nCurrently there is no way to modify user permissions using this interface.\n\n### API Keys\n\nWhen running API commands, you can authenticate using an API key. An API key is a unique identifier used to authenticate a user.\n\nRefer to the following section for details on how to list, generate, and delete API keys:\n\n<a href=\"#a5982ecb-1e3a-4b1b-95b0-25a351a26c21\">How to Use API Keys</a>\n\nWhen you have an API key, you can perform any command as normal, but you no longer need the username or password.\n\n## Enabling the LoadMaster API Interface\n\nThe API interface is enabled or disabled using the LoadMaster UI. By default the interface is disabled.\n\nTo enable the RESTful API interface complete the following steps:\n\n1. Select the **Certificates & Security > Remote Access** menu option.\n    \n2. Select the **Enable API Interface** check box.\n    \n\n## Enable Session Management\n\nSession management must be enabled on the LoadMaster to use the JSON-based input and output. To enable session management, follow these steps in the LoadMaster UI:\n\n1. Go to **Certificates & Security > Admin WUI Access**.\n    \n2. Select the **Enable Session Management** check box.\n    \n\n### Disable Require Basic Authentication\n\nThe **Require Basic Authentication** check box must be disabled on the LoadMaster to use the JSON-based input and output. To disable this option, follow these steps in the LoadMaster UI:\n\n1. Go to **Certificates & Security > Admin WUI Access**.\n    \n2. Deselect the **Require Basic Authentication** check box.\n    \n\n## Error Reports\n\nIf an error occurs, for example where a request is missing a required parameter, an error report is generated, for example:\n\n```\n{\n    \"code\": 422,\n    \"message\": \"param: String Value missing\",\n    \"status\": \"fail\"\n}\n\n ```\n\nThe HTTP status of the request also reflects the response code.\n\n## Notation\n\nThroughout the document the parameter types are defined as follows:\n\n<table><tbody><tr><td><div><p><b>Type</b></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p><b>Abbreviation</b></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p><b>Typical Values</b></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>Boolean</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>B</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>Y or N; y or n; 1 or 0;</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>Integer</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>I</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>-</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>String</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>S</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>\"value\"</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>Address</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>A</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>IP address</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p>File</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>F</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>Some type of file</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"1897577","team":3578882,"collectionId":"c5e9f281-faff-4ff9-8a67-c79d47bf8d0f","publishedId":"VUjPK5sb","public":true,"publicUrl":"https://loadmasterapiv2.docs.progress.com","privateUrl":"https://go.postman.co/documentation/1897577-c5e9f281-faff-4ff9-8a67-c79d47bf8d0f","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.6","publishDate":"2023-03-27T12:38:48.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/07c5fd21957548d86689051308371c511f44830f09ffb0d03c58885ee060f402","favicon":"https://progress.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://loadmasterapiv2.docs.progress.com/view/metadata/VUjPK5sb"}