Skip to main content
PUT /v1/skills/{skill_id} Updates the metadata or content of the specified skill. Only JSON request bodies are supported.

Path parameters

ParameterTypeRequiredDescription
skill_idstringYesSkill unique identifier

Headers

HeaderRequiredDescription
AuthorizationYesBearer $QODER_PAT
Content-TypeYesapplication/json

Request body

FieldTypeRequiredDescription
namestringNoNew skill name. Maximum 64 characters; lowercase letters, digits, hyphens, and underscores only; must start with a letter or digit
descriptionstringNoNew skill description
contentstringNoNew 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_encodingstringNoSet to "base64" when content is a base64-encoded zip archive
metadataobjectNoCustom metadata. Replaces the stored metadata object

Example request

curl -X PUT https://api.qoder.com/api/v1/cloud/skills/skill_019e3bba474b73cfaf19eae9b5f5e66d \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "updated-skill-name",
    "description": "Updated skill description"
  }'

Example response

HTTP 200 OK
{
  "id": "skill_019e3bba474b73cfaf19eae9b5f5e66d",
  "type": "skill",
  "name": "updated-skill-name",
  "description": "Updated skill description",
  "skill_type": "custom",
  "status": "active",
  "version": 1,
  "content_size": 309,
  "content_sha256": "f253cb7d35790025f85917c0c239422cff1de067d00278db8897c585a3f28d94",
  "metadata": {},
  "created_at": "2026-05-18T15:35:24.248164Z",
  "updated_at": "2026-05-18T15:36:01.767469Z"
}

Response notes

  • updated_at is refreshed to the operation time.
  • version increments when content is updated.
  • version is not incremented for metadata-only updates.
  • Fields not included in the request body retain their previous values.

Errors

HTTPTypeTrigger
400invalid_request_errorUsed multipart instead of JSON: “Request body must be valid JSON.”
401TOKEN_INVALIDMissing or invalid authentication token
404not_found_errorSkill does not exist or is no longer accessible

Notes

  • The PUT endpoint accepts only application/json Content-Type.
  • For base64 zip content, the archive must contain SKILL.md at the root or one directory below the root.
  • If base64 zip content includes SKILL.md frontmatter and name or description are omitted, the API uses the frontmatter values.
See Errors for the full error envelope.

Agent Skills

Attach domain expertise to your agent.