Skills

Save the skill draft

PUT
/skills/{skill_id}/draft

Store the working copy of a tenant-owned Skill without creating a version. Returns the normalized draft (integration operations pinned scripts call are added), the rights list of the Skill and every validation issue skills.save would report (path, code, message, hint, blocking). Rejects stale revisions with 409.

Authorization

bearerApiKey
AuthorizationBearer <token>

Create a scoped API key in the Adlass settings.

In: header

Path Parameters

skill_id*string

Resource identifier: skill_id.

Formatuuid

Header Parameters

X-Request-Id?string

Optional correlation identifier.

Lengthlength <= 128
Idempotency-Key*string

A unique key for this intended write. Reuse it only for an identical retry.

Length1 <= length <= 200

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PUT "https://example.com/skills/123e4567-e89b-42d3-a456-426614174000/draft" \  -H "Idempotency-Key: 123e4567-e89b-42d3-a456-426614174000" \  -H "Content-Type: application/json" \  -d '{    "expected_revision": 0,    "draft": {}  }'
{  "skill_id": "123e4567-e89b-42d3-a456-426614174000",  "draft_revision": 0,  "draft_updated_at": "2026-09-04T12:00:00Z",  "draft": {},  "rights": {    "agent_scripts": false,    "subagents": false,    "records": [],    "documents": {      "folders": [],      "documents": [],      "inputs": []    },    "integrations": []  },  "issues": [    {      "code": "example",      "path": "/",      "message": "Please review the extracted totals."    }  ]}