Returns all API keys of the workspace, oldest first. Keys are shown masked: the plaintext is only returned once, by Create API key.
Request#
This endpoint takes no path, query or body parameters.
Example request#
curl https://api.tried.com.au/api-keys \
-H "Authorization: Bearer $TRIED_API_KEY"const res = await fetch("https://api.tried.com.au/api-keys", {
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const keys = await res.json();import os, requests
res = requests.get(
"https://api.tried.com.au/api-keys",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
keys = res.json()Response#
200 OK
[
{
"api_key_id": "key_6f1c2a9e4b7d03581e2c9a47",
"name": "Production backend",
"masked_key": "key_3f9a********c41d",
"is_webhook_key": true,
"created_timestamp": 1758240000000,
"last_used_timestamp": 1760917800000,
"scopes": [],
"allowed_ips": [],
"rate_limit_per_minute": null
},
{
"api_key_id": "key_0d8e4b1f7a2c96e53b0f1d84",
"name": "Analytics export",
"masked_key": "key_81c0********7e2a",
"is_webhook_key": false,
"created_timestamp": 1760313600000,
"last_used_timestamp": null,
"scopes": ["analytics"],
"allowed_ips": ["203.0.113.10", "2001:db8::25"],
"rate_limit_per_minute": 120
}
]| Field | Type | Description |
|---|---|---|
masked_key |
string | First 8 characters of the key, 8 asterisks, then the last 4 characters. |
is_webhook_key |
boolean | Whether this key signs outgoing webhooks. At most one key has it set. |
last_used_timestamp |
integer or null | Last time the key authenticated a request. null if never used. |
scopes |
string[] | Scopes the key is limited to. An empty list means full access. |
allowed_ips |
string[] | Source IPs the key is accepted from. An empty list means any IP. |
rate_limit_per_minute |
integer or null | The key's own request limit. null uses the server default. |
See Create API key for what each setting does.
Errors#
| Status | When |
|---|---|
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request (this route needs the admin scope), or a dashboard member calls it (Requires role: admin or developer). |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.