Update an admin key
⚠️
Preview — this feature is being built; the design below is the spec.
PATCH https://app.syntic.ai/v1/organizations/admin_keys/{key_id}Rename an admin key, change its IP allowlist, or switch it off and on. An inactive key is refused from its very next call, and the switch can be flipped back; permanent revocation is done in the Console.
For how this fits into a full workflow, see Admin API and admin keys.
Headers
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer <admin key>: an Admin API key (sk_admin_...). Inference keys are refused with 403 admin_key_required. See Admin API keys. |
syntic-beta | Yes, while in preview | admin-2026-11-01. Without it the call fails with 400 beta_required. See Versioning. |
Content-Type | Yes | application/json |
Path parameters
| Parameter | Type | Description |
|---|---|---|
key_id | string | The admin key id, starting with adminkey_. |
Body parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | No | 1 to 100 characters. |
allowed_ips | array of strings | No | CIDR ranges; replaces the list. |
status | string | No | active or inactive. |
Response
200 OK, Content-Type: application/json
{
"id": "adminkey_01JCC2E4G6J8L0N2Q4S6",
"type": "admin_key",
"name": "terraform-org",
"prefix": "sk_admin_7d3e",
"status": "active",
"created_by": {
"id": "user_01J9X8Z6B4D2F0H8K6M4",
"email": "ops@example.com",
"role": "owner"
},
"allowed_ips": [
"203.0.113.0/24",
"198.51.100.7/32"
],
"created_at": "2026-11-01T09:00:00Z",
"last_used_at": "2026-11-05T02:00:13Z"
}Examples
curl -sS -X PATCH https://app.syntic.ai/v1/organizations/admin_keys/adminkey_01JCC2E4G6J8L0N2Q4S6 \
-H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
-H "syntic-beta: admin-2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"allowed_ips": [
"203.0.113.0/24",
"198.51.100.7/32"
]
}'Errors
Errors use the error envelope and carry a request_id. Codes specific to this operation:
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request_error | beta_required | The syntic-beta header is missing. |
| 400 | invalid_request_error | invalid_parameter | An entry in allowed_ips is not a valid range. |
| 403 | permission_error | role_required | The admin key’s creator does not have the role this needs. |
| 404 | not_found_error | admin_key_not_found | No admin key with that id. |
| 401 | authentication_error | invalid_api_key | The admin key is missing, unknown, revoked or expired. |
| 403 | permission_error | admin_key_required | An inference key was used. |
| 429 | rate_limit_error | rate_limited | Too many requests; wait for Retry-After. See Rate-limit headers. |
Was this page helpful?