HydraCore
API by router

Settings

Get Settings

GET
/v1/settings

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Response Body

Successful Response

application/json
  1. response

Full settings response - profile + API keys. "Surely you can't be serious." "I am serious... and don't call me Shirley."

api_keys*array<>
profile*
Example Request
curl -X GET 'https://example.com/v1/settings'
Example Response200
{  "api_keys": [    {      "created_at": "2019-08-24T14:15:22Z",      "id": "string",      "is_active": true,      "key_prefix": "string",      "key_type": "string",      "last_used_at": "2019-08-24T14:15:22Z",      "name": "string",      "revoked_at": "2019-08-24T14:15:22Z"    }  ],  "profile": {    "created_at": "2019-08-24T14:15:22Z",    "customer_id": "string",    "display_name": "string",    "email": "string",    "email_verified": true,    "is_admin": true,    "last_login": "2019-08-24T14:15:22Z",    "oauth_providers": [],    "tenant_id": "string"  }}

Create Api Key

POST
/v1/settings/api-keys

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Request Body

application/json
  1. body

Body for POST /v1/settings/api-keys.

Plan v1.8 amendments A5/A7/B1/B2: the caller picks ONE of three grant paths — explicit scopes, named preset, or break-glass.

  • scopes: array of <resource>:<verb> tags. Wildcards accepted (e.g. instances:*); expanded server-side at issuance time. Pure * / *:* literals refused — use break_glass=True instead.
  • preset: one of read-only-analyst | operator | billing-only. Resolved server-side; the row stores the concrete array.
  • break_glass=True: shortcut for the full preset. Requires confirmation_phrase == "BREAK GLASS" and is automatically capped at 24 hours TTL regardless of expires_at.

Exactly ONE of those three paths must be set per request.

break_glass?Break Glass
Defaultfalse
confirmation_phrase?string|null
expires_at?|null
key_type?Key Type
Match^(live|test)$
Default"live"
name?Name
Lengthlength <= 100
Default"Default"
preset?|null
rate_limit_per_hour?integer|null
rate_limit_per_minute?integer|null
scopes?array<string>|null

Response Body

Successful Response

application/json
  1. response

Returned once on creation - plaintext key never shown again. "After this, there is no turning back." - Morpheus, The Matrix

created_at*Created At
Formatdate-time
expires_at*|null
id*Id
key_prefix*Key Prefix
key_type*Key Type
name*Name
plaintext_key*Plaintext Key
scopes*array<string>
Example Request
curl -X POST 'https://example.com/v1/settings/api-keys' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "created_at": "2019-08-24T14:15:22Z",  "expires_at": "2019-08-24T14:15:22Z",  "id": "string",  "key_prefix": "string",  "key_type": "string",  "name": "string",  "plaintext_key": "string",  "scopes": [    "string"  ]}

Revoke Api Key

DELETE
/v1/settings/api-keys/{key_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

key_id*Key Id
Formatuuid

Response Body

Successful Response

Example Request
curl -X DELETE 'https://example.com/v1/settings/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
Empty

Change Password

PUT
/v1/settings/password

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Request Body

application/json
  1. body
current_password*Current Password
Length1 <= length <= 128
new_password*New Password
Length8 <= length <= 128

Response Body

Successful Response

Example Request
curl -X PUT 'https://example.com/v1/settings/password' \  -H 'Content-Type: application/json' \  -d '{  "current_password": "string",  "new_password": "stringst"}'
Example Response
Empty

Update Profile

PUT
/v1/settings/profile

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Request Body

application/json
  1. body
display_name?|null

Response Body

Successful Response

application/json
  1. response
created_at*Created At
Formatdate-time
customer_id*Customer Id
display_name?string|null
email*Email
email_verified*Email Verified
is_admin*Is Admin
last_login?|null
oauth_providers?array<string>
Default[]
tenant_id*Tenant Id
Example Request
curl -X PUT 'https://example.com/v1/settings/profile' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "created_at": "2019-08-24T14:15:22Z",  "customer_id": "string",  "display_name": "string",  "email": "string",  "email_verified": true,  "is_admin": true,  "last_login": "2019-08-24T14:15:22Z",  "oauth_providers": [],  "tenant_id": "string"}