PUT /v1/skills/{skill_id}
Updates the metadata or content of the specified skill. Only JSON request bodies are supported.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
skill_id | string | Yes | Skill unique identifier |
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer $QODER_PAT |
Content-Type | Yes | application/json |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New skill name. Maximum 64 characters; lowercase letters, digits, hyphens, and underscores only; must start with a letter or digit |
description | string | No | New skill description |
content | string | No | New skill content. When content_encoding is "base64", this must be a base64-encoded zip archive containing SKILL.md; otherwise it is stored as plain text |
content_encoding | string | No | Set to "base64" when content is a base64-encoded zip archive |
metadata | object | No | Custom metadata. Replaces the stored metadata object |
Example request
Example response
HTTP 200 OKResponse notes
updated_atis refreshed to the operation time.versionincrements whencontentis updated.versionis not incremented for metadata-only updates.- Fields not included in the request body retain their previous values.
Errors
| HTTP | Type | Trigger |
|---|---|---|
| 400 | invalid_request_error | Used multipart instead of JSON: “Request body must be valid JSON.” |
| 401 | TOKEN_INVALID | Missing or invalid authentication token |
| 404 | not_found_error | Skill does not exist or is no longer accessible |
Notes
- The PUT endpoint accepts only
application/jsonContent-Type. - For base64 zip content, the archive must contain
SKILL.mdat the root or one directory below the root. - If base64 zip content includes
SKILL.mdfrontmatter andnameordescriptionare omitted, the API uses the frontmatter values.
Related
Agent Skills
Attach domain expertise to your agent.