# HTTP customization

Monarch allows for granular customisation of its HTTP endpoints - namely, the main endpoint (where agents receive commands), the staging endpoint (where agents are served to clients from) and the login endpoint (where agents register with the C2).

Customisation can be done by modifying the `monarch_http.json` file created for you on the server on installation. From here, operators can modify the endpoint paths themselves, the methods used to access each path, and the headers used to access each endpoint type.

```json
{
  "login_endpoint": {
    "paths": [
      {
        "path": "/login",
        "methods": [
          "POST"
        ]
      }
    ],
    "headers": {
      "content-type": "text/html; charset=UTF-8",
      "cache-control": "max-age=0, no-cache, no-store"
    }
  },
  "stage_endpoint": {
    "paths": [
      {
        "path": "/index/{file}",
        "methods": [
          "GET"
        ]
      },
      {
        "path": "/{file}",
        "methods": [
          "GET"
        ]
      }
    ],
    "headers": {
      "content-type": "text/html; charset=UTF-8",
      "cache-control": "max-age=0, no-cache, no-store"
    }
  },
  "main_endpoint": {
    "paths": [
      {
        "path": "/",
        "methods": [
          "GET",
          "POST"
        ]
      }
    ],
    "headers": {
      "content-type": "text/html; charset=UTF-8",
      "cache-control": "max-age=0, no-cache, no-store"
    }
  }
}

```

