API Reference
Agents

Create or update a draft tool

PUT
/v1/agents/{id}/tools/{toolID}

Upsert keyed by toolID (client-minted UUID). headers values are write-only — stored encrypted, echoed back only as header_keys. Requires a writer role.

Authorization

bearerAuth
AuthorizationBearer <token>

Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the platform keyring. Carries workspace_id and scopes claims; revoked via the platform deny-list.

In: header

Path Parameters

id*string
Formatuuid
toolID*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Upsert body for PUT /v1/agents/{id}/tools/{toolID}.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/agents/497f6eca-6276-4993-bfeb-53cbbbba6f08/tools/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "name": "book_appointment",    "description": "Book a slot in the clinic calendar.",    "url": "https://api.example.com/bookings",    "method": "POST",    "headers": {      "Authorization": "Bearer cal_live_xxx"    },    "timeout_ms": 5000  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "description": "string",  "parameters": {},  "url": "string",  "method": "string",  "header_keys": [    "string"  ],  "body_params": {},  "timeout_ms": 0}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string"  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string"  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string"  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string"  }}