HomeTyk Dashboard v1.xDashboard APIToken Policies

Token Policies

Get List of policies

Property Description
Resource URL /api/portal/policies/
Method GET
Type None
Body None
Param None
Sample Request
GET /api/portal/policies/ HTTP/1.1
Host: localhost:3000
authorization: 7a7b140f-2480-4d5a-4e78-24049e3ba7f8
Sample Response
{
  "Data": [
    {
      "_id": "56b9fed54e86e40001000002",
      "access_rights": {
        "35447b1469df4e846894b1e87372f6d7": {
          "allowed_urls": [
            {
              "methods": [
                "GET",
              ],
              "url": "/some_resources"
            },
            {
              "methods": [
                "POST"
              ],
              "url": "/some_resource/(.*)"
            },
          ],
          "apiid": "35447b1269df4e846894b7e87312f6d7",
          "apiname": "My API",
          "versions": [
            "Default"
          ]
        }
      },
      "active": true,
      "date_created": "0001-01-01T00:00:00Z",
      "hmac_enabled": false,
      "is_inactive": false,
      "key_expires_in": 0,
      "name": "My Policy",
      "org_id": "5629ca78eebd180001000001",
      "per": 1,
      "quota_max": -1,
      "quota_renewal_rate": 60,
      "rate": 1000,
      "tags": []
    }
  ],
  "Pages": 0
}

Notice that apiid field, it is different than rest of policy definitions! (See GitHub issue 192)

Retrieve a single policy by ID

Property Description
Resource URL /api/portal/policies/{id}
Method GET
Type None
Body None
Param None
Sample request
GET /api/portal/policies/56b9fed54e86e40001000002 HTTP/1.1
Host: localhost
authorization: 7a7b140f-2480-4d5a-4e78-24049e3ba7f8
Sample Response
{
  "_id": "56b9fed54e86e40001000002",
  "access_rights": {
    "35447b1469df4e846894b1e87372f6d7": {
      "allowed_urls": [
        {
          "methods": [
            "GET",
          ],
          "url": "/some_resources"
        },
        {
          "methods": [
            "POST"
          ],
          "url": "/some_resource/(.*)"
        },
      ],
      "api_id": "35447b1269df4e846894b7e87312f6d7",
      "apiname": "My API",
      "versions": [
        "Default"
      ]
    }
  },
  "active": true,
  "date_created": "0001-01-01T00:00:00Z",
  "hmac_enabled": false,
  "is_inactive": false,
  "key_expires_in": 0,
  "name": "My Policy",
  "org_id": "5629ca78eebd180001000001",
  "per": 1,
  "quota_max": -1,
  "quota_renewal_rate": 60,
  "rate": 1000,
  "tags": []
}

Create Policy Definition

Creating policy definitions is slightly different to the core API, API definitions are wrapped inside an api_definition field and event handlers, such as web hooks are not embedded in the main api_defintion object (though they can be), webhooks are instead appended as references into the hook_references field, the API will embed the correct webhook data into the event handler interface.

Property Description
Resource URL /api/portal/policies/
Method POST
Type None
Body Advanced Policy Definition
Param None
Sample Request
POST /api/portal/policies/ HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Type: application/json
Content-Length: <body length>
authorization: 7a7b140f-2480-4d5a-4e78-24049e3ba7f8

{
    "last_updated": "0001-01-01T00:00:00Z",
    "rate": 1000,
    "per": 60,
    "quota_max": -1,
    "quota_renews": 1481546970,
    "quota_remaining": 0,
    "quota_renewal_rate": 60,
    "access_rights": {
        "35447b1469df4e846894b1e87372f6d7": {
            "api_id": "35447b1469df4e846894b1e87372f6d7",
            "api_name": "My API",
            "versions": ["Default"]
        }
    },
    "name": "My Policy",
    "active": true
}    
Sample Response
{
    "Status": "OK",
    "Message": "56b9fed54e86e40001000002",
    "Meta": "null"
}

Update Policy Definition

Property Description
Resource URL /api/portal/policies/{id}
Method PUT
Type None
Body Advanced Policy Definition
Param None
Sample Request
PUT /api/portal/policies/56b9fed54e86e40001000002 HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Type: application/json
Content-Length: <body length>
authorization: 7a7b140f-2480-4d5a-4e78-24049e3ba7f8

{
  "_id": "56b9fed54e86e40001000002",
  "id": "",
  "org_id": "589b4be9dbd34702ee2ed8c5",
  "rate": 1000,
  "per": 60,
  "quota_max": -1,
  "quota_renewal_rate": 60,
  "access_rights": {
    "35447b1469df4e846894b1e87372f6d7": {
      "api_id": "35447b1469df4e846894b1e87372f6d7",
      "api_name": "My API",,
      "versions": ["Default"],
      "allowed_urls": []
    }
  },
  "hmac_enabled": false,
  "active": true,
  "name": "My Updated Policy",
  "is_inactive": false,
  "date_created": "0001-01-01T00:00:00Z",
  "tags": [],
  "key_expires_in": 0,
  "partitions": {
    "quota": false,
    "rate_limit": false,
    "acl": false
  },
  "last_updated": "0001-01-01T00:00:00Z"
}
Sample Response
{
    "Status": "OK",
    "Message": "Data updated",
    "Meta": ""
}

Delete Policy Definition

Property Description
Resource URL /api/portal/policies/{id}
Method DELETE
Type None
Body None
Param None
Sample Request
DELETE /api/portal/policies/56b9fed54e86e40001000002 HTTP/1.1
Host: localhost:3000
authorization: 7a7b140f-2480-4d5a-4e78-24049e3ba7f8
Sample Response
{
  "Status": "OK",
  "Message": "Data deleted",
  "Meta": null
}
Was this article helpful to you? Yes No