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: