Skip to content

User — API Key

API Keys are alternative authentication tokens for machine-to-machine API usage.

Endpoints

Method URL
GET /user/<user>/api_key/<api_key>
POST /user/<user>/api_key
PUT /user/<user>/api_key/<api_key>
DELETE /user/<user>/api_key/<api_key>

GET /user/<user>/api_key/<api_key>

Payload: No payload.

Returns: The API key.

Example:

curl -u "username:api_key" -H "Accept: application/json" \
  https://app.duo.pt/user/{user_id}/api_key/{key_id}

Response:

{
  "success": true,
  "data": {
    "api_key": {
      "id": 1,
      "name": "Example...",
      "owner": 1,
      "allowed_ips": ""
    }
  }
}

POST /user/<user>/api_key

Parameter Type Description
name string Key name
allowed_ips string Comma or space-separated CIDR IP ranges allowed to use this key. Empty = any IP.

Returns: The new API key.

Example:

curl -u "username:api_key" -H "Accept: application/json" \
  -d "name=My+Key&allowed_ips=" \
  https://app.duo.pt/user/{user_id}/api_key

Response:

{
  "success": true,
  "data": {
    "api_key": {
      "id": 1,
      "name": "Example...",
      "owner": 1,
      "allowed_ips": "",
      "unhashed_password": "T0qQ1MEJrhWIfi5kJJfF7dRd1vUKrKx6lH9VQtEsHJbGQPwh"
    }
  }
}

PUT /user/<user>/api_key/<api_key>

Same payload as POST.

Returns: The edited API key.

Example:

curl -u "username:api_key" -H "Accept: application/json" -X PUT \
  -d "name=Updated+Key&allowed_ips=192.168.1.0/24" \
  https://app.duo.pt/user/{user_id}/api_key/{key_id}

Response:

{
  "success": true,
  "data": {
    "immutable": "hash",
    "api_key": {
      "id": 1,
      "name": "Example...",
      "owner": 1,
      "allowed_ips": ""
    }
  }
}

DELETE /user/<user>/api_key/<api_key>

Payload: No payload.

Returns: The deleted API key.

Example:

curl -u "username:api_key" -H "Accept: application/json" -X DELETE \
  https://app.duo.pt/user/{user_id}/api_key/{key_id}

Response:

{
  "success": true,
  "data": {
    "api_key": {
      "id": 1,
      "name": "Example...",
      "owner": 1,
      "allowed_ips": ""
    }
  }
}