Service Accounts

Service accounts and the keys that authenticate them.

GET
/ext/hindclaw/me/service-accounts

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/ext/hindclaw/me/service-accounts"
[  {    "id": "string",    "owner_user_id": "string",    "display_name": "string",    "is_active": true,    "scoping_policy_id": "string"  }]
POST
/ext/hindclaw/me/service-accounts

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Self-service SA creation — owner is always the authenticated caller.

Response Body

application/json

application/json

curl -X POST "https://example.com/ext/hindclaw/me/service-accounts" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "display_name": "string"  }'
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
GET
/ext/hindclaw/me/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

application/json

curl -X GET "https://example.com/ext/hindclaw/me/service-accounts/string"
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
DELETE
/ext/hindclaw/me/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

curl -X DELETE "https://example.com/ext/hindclaw/me/service-accounts/string"
Empty
PUT
/ext/hindclaw/me/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Self-service SA update — only display_name is mutable.

Scoping policy and activation state are admin-only operations. An SA authenticates as its owner, so without this restriction an SA could remove its own scoping policy and escalate to the parent user's full permissions.

Response Body

application/json

application/json

curl -X PUT "https://example.com/ext/hindclaw/me/service-accounts/string" \  -H "Content-Type: application/json" \  -d '{    "display_name": "string"  }'
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
GET
/ext/hindclaw/me/service-accounts/{sa_id}/keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

application/json

curl -X GET "https://example.com/ext/hindclaw/me/service-accounts/string/keys"
[  {    "id": "string",    "api_key_prefix": "string",    "description": "string"  }]
POST
/ext/hindclaw/me/service-accounts/{sa_id}/keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to create an SA API key.

Response Body

application/json

application/json

curl -X POST "https://example.com/ext/hindclaw/me/service-accounts/string/keys" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "api_key": "string",  "description": "string"}
DELETE
/ext/hindclaw/me/service-accounts/{sa_id}/keys/{key_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id
key_id*Key Id

Response Body

application/json

curl -X DELETE "https://example.com/ext/hindclaw/me/service-accounts/string/keys/string"
Empty
GET
/ext/hindclaw/service-accounts

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/ext/hindclaw/service-accounts"
[  {    "id": "string",    "owner_user_id": "string",    "display_name": "string",    "is_active": true,    "scoping_policy_id": "string"  }]
POST
/ext/hindclaw/service-accounts

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to create a service account.

Response Body

application/json

application/json

curl -X POST "https://example.com/ext/hindclaw/service-accounts" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "owner_user_id": "string",    "display_name": "string"  }'
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
GET
/ext/hindclaw/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

application/json

curl -X GET "https://example.com/ext/hindclaw/service-accounts/string"
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
DELETE
/ext/hindclaw/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

curl -X DELETE "https://example.com/ext/hindclaw/service-accounts/string"
Empty
PUT
/ext/hindclaw/service-accounts/{sa_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to update a service account.

Response Body

application/json

application/json

curl -X PUT "https://example.com/ext/hindclaw/service-accounts/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "owner_user_id": "string",  "display_name": "string",  "is_active": true,  "scoping_policy_id": "string"}
GET
/ext/hindclaw/service-accounts/{sa_id}/keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Response Body

application/json

application/json

curl -X GET "https://example.com/ext/hindclaw/service-accounts/string/keys"
[  {    "id": "string",    "api_key_prefix": "string",    "description": "string"  }]
POST
/ext/hindclaw/service-accounts/{sa_id}/keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to create an SA API key.

Response Body

application/json

application/json

curl -X POST "https://example.com/ext/hindclaw/service-accounts/string/keys" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "api_key": "string",  "description": "string"}
DELETE
/ext/hindclaw/service-accounts/{sa_id}/keys/{key_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

sa_id*Sa Id
key_id*Key Id

Response Body

application/json

curl -X DELETE "https://example.com/ext/hindclaw/service-accounts/string/keys/string"
Empty