---
title: Applications REST Interface
slug: ps/help/en_us/vwaf/ag/applications-rest-interface
docTags: 
createdAt: 2026-08-02T10:05:41.772Z
---

## Data

An application data structure contains at least the following fields:

- name
  The name of the application as it’s shown in the user interface.
- uuid
  The application UUID.
- capability
  The application’s capability.
- default\_charset
  The default charset of the application.
- logonly\_ruleset\_version
  The UUID of the detection ruleset.
- active\_ruleset\_version
  The UUID of the protection ruleset.
- protected
  True/false value telling whether the application is in protection mode.
- bypass\_ruleset
  True/false value telling whether the ruleset is deactivated.
- block\_traffic
  True/false value telling whether all traffic is blocked.
- active\_ruleset\_baseline\_config\_version
  The baseline version used for the application.

## Getting a list of applications

- Request

| Method    | GET            |
| --------- | -------------- |
| URL       | /applications/ |
| Arguments | –              |

- Response

| Return code | Arguments           | Meaning                                                                                                                     |
| ----------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 200         | \{ UUID1: , UUID2:  | the list of applications was successfully returned as a dictionary mapping the application UUIDs to some of their metadata. |
| 401         | -                   | no login                                                                                                                    |
| 403         | -                   | not enough rights                                                                                                           |
| 500         | -                   | internal server error                                                                                                       |

- Example

The following request retrieves a list of all applications. Note that these applications are listed by their UUIDs, not by their names.

```bash
$ curl -u admin:admin -H 'Content-Type: application/json' http://127.0.0.1:8087/api/af/2.0/applications {    "__name": "applications",    "__path": "/api/af/2.0/applications/",    "__subnodes": [        "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c",        "f011694d47d73578-e440fd26a125de02c57dc7efa1f1bc17"    ],    "applications": {        "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c": {            "block_traffic": false,            "last_modified": 0,            "name": "wiki",            "protected": false        },        "f011694d47d73578-e440fd26a125de02c57dc7efa1f1bc17": {            "block_traffic": false,            "last_modified": 0,            "name": "website",            "protected": false        }    } }
```

## Getting the data of an application

- Request

| Method    | GET                |
| --------- | ------------------ |
| URL       | /applications/UUID |
| Arguments | –                  |

- Response

| Return code | Arguments    | Meaning                                                               |
| ----------- | ------------ | --------------------------------------------------------------------- |
| 200         | \{ APPDATA } | dictionary containing detailed application data successfully returned |
| 401         | -            | no login                                                              |
| 403         | -            | not enough rights                                                     |
| 404         | -            | application UUID doesn't exist                                        |
| 500         | -            | internal server error                                                 |

- Example

The following request retrieves the data of the application "wiki". Note that you don't use the application name in the request, but the UUID.

```bash
$ curl -u admin:admin -H 'Content-Type: application/json' http://127.0.0.1:8087/api/af/2.0/applications/f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c {    "__name": "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c",    "__path": "/api/af/2.0/applications/f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c/",    "__subnodes": [        "rulesets"    ],    "active_ruleset_baseline_config_version": "",    "active_ruleset_version": "127.0.0.1:8083:f011694d47d73578-1a7bfe29b480dac5575de4bc15d85a6f:1",    "block_traffic": false,    "bypass_ruleset": false,    "capability": "none",    "default_charset": "UTF-8",    "error_id_config": {        "mode": "standard",        "html_template": "\n<html>\n<head>\n    <style type=\"text/css\">\n    p {margin-left:20px;}\n    a {color: #fff;}\n    body {background: #ffffff;}\n    div#middle {\n        position:absolute;\n        left:50%;\n        top:50%;\n        height:300px;\n        width:600px;\n        margin-top:-250px;\n        margin-left:-308px;\n        background-color: #dd682a;\n        vertical-align: middle;\n        overflow:hidden;\n        text-align:center;\n        }\n    .round-corners { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }\n    .shadow { -moz-box-shadow: 5px 5px 5px #aaa; -webkit-box-shadow: 5px 5px 5px #aaa; box-shadow: 5px 5px 5px #aaa; }\n\n    #one, #two {\n        width: 45%;\n        height: 10%;\n    }\n\n    #left, #right {\n        width: 45%;\n        height: 300%;\n        margin-left:auto;\n        martin-top: 100px;\n        padding: 10px;\n        }\n    #left  { float:left; font-size: 100px; color: #fff; top: 50px;}\n    #right { float:right;color: #fff; top: 50px;}\n    </style>\n    <title>An error occurred. {{ERROR-CODE}}</title>\n</head>\n<body>\n<div id=\"middle\" class=\"round-corners shadow\">\n    <div id=\"one\"></div>\n    <div id=\"two\"></div>\n        <div id=\"left\">{{ERROR-CODE}}</div>\n        <div id=\"right\">If you'd like to report this error back to us, please include the following error ID in a email to:<br /><br />support@mycompany.com<br /><br />{{ERROR-ID}}</div>\n<br style=\"clear:both;\"/>\n</div>\n</body>\n</html>\n",        "url_template": "http://localhost/errorpage?code={{ERROR-CODE}}&id={{ERROR-ID}}"    },    "last_modified": 0,    "logonly_ruleset_version": "127.0.0.1:8083:f011694d47d73578-1a7bfe29b480dac5575de4bc15d85a6f:1",    "name": "wiki",    "protected": false,    "reduced_logging_hosts": [],    "reduced_url_logging": false,    "uuid": "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c" }
```

## Adding an application

- Request

| Method    | POST                              |
| --------- | --------------------------------- |
| URL       | /applications/                    |
| Arguments | \{ 'name': applicationname, ... } |

When adding an application, the name is required. However, you can’t specify the following fields:

uuid logonly\_ruleset\_version active\_ruleset\_version

- Response

| Reason code | Arguments         | Meaning                                                                                      |
| ----------- | ----------------- | -------------------------------------------------------------------------------------------- |
| 200         | \{ 'uuid': UUID } | application with the given UUID successfully created; all application data is returned       |
| 401         | -                 | no login                                                                                     |
| 403         | -                 | not enough rights                                                                            |
| 409         | -                 | malformed, conflicting, or missing data or application already exists (names must be unique) |
| 500         | -                 | internal server error                                                                        |

- Example

The following request adds an application named "wiki". All fields that aren't specified (all except name and hosts in this case) automatically get some default values. The name of the application is a UUID, which is used as an internal key. In contrast to this, the name is shown in the user interface.

```bash
$ curl -u admin:admin -H 'Content-Type: application/json' --data '{"name":"wiki", "hosts":["10.1.0.42"]}' http://127.0.0.1:8087/api/af/2.0/applications {    "__name": "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c",    "__path": "/api/af/2.0/applications/f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c/",    "__subnodes": [        "rulesets"    ],    "active_ruleset_baseline_config_version": "",    "active_ruleset_version": "127.0.0.1:8083:f011694d47d73578-1a7bfe29b480dac5575de4bc15d85a6f:1",    "block_traffic": false,    "bypass_ruleset": false,    "capability": "none",    "customer_key": "",    "default_charset": "UTF-8",    "error_id_config": {        "mode": "standard",        "html_template": "\n<html>\n ... \n</html>\n",        "url_template": "http://localhost/errorpage?code={{ERROR-CODE}}&id={{ERROR-ID}}"    },    "hosts": [        "10.1.0.42"    ],    "last_modified": 0,    "logonly_ruleset_version": "127.0.0.1:8083:f011694d47d73578-1a7bfe29b480dac5575de4bc15d85a6f:1",    "name": "wiki",    "protected": false,    "reduced_logging_hosts": [],    "reduced_url_logging": false,    "uuid": "f011694d47d73578-3c0581461472821ff8d0c3a8c007d88c" }
```

## Changing an application

- Request

| Method    | PUT                |
| --------- | ------------------ |
| URL       | /applications/UUID |
| Arguments | \{ APPDATA }       |

When changing an application, you can’t specify the field uuid.

If you want to remove a host, you need to remove it both from the hosts list and from the reduced\_logging\_hosts list.

- Response

| Return code | Arguments | Meaning                                 |
| ----------- | --------- | --------------------------------------- |
| 200         | -         | application successfully changed        |
| 401         | -         | no login                                |
| 403         | -         | not enough rights                       |
| 404         | -         | application not found                   |
| 409         | -         | malformed, conflicting, or missing data |
| 500         | -         | internal server error                   |

## Deleting an application

- Request

| Method    | DELETE             |
| --------- | ------------------ |
| URL       | /applications/UUID |
| Arguments | –                  |

- Response

| Reason code | Arguments | Meaning                          |
| ----------- | --------- | -------------------------------- |
| 200         | -         | application successfully deleted |
| 401         | -         | no login                         |
| 403         | -         | not enough rights                |
| 404         | -         | application not found            |
| 500         | -         | internal server error            |
