Skip to main content
Skills

Skill data structures

Shared Skill response and package structures.

Skill object

Returned by create, get, and list endpoints (the skill shell).
FieldTypeDescription
idstringSkill ID with the skill_ prefix
typestringAlways "skill"
display_titlestringDisplay title (at most 255 characters; uniqueness not enforced; immutable after creation). Default: for zip uploads, the zip filename without .zip; for bare file trees, the SKILL.md name
sourcestringValid values: custom, qoder
latest_versionstring | nullLatest version as an epoch-microsecond string (e.g. "1759178010641129"); null when all versions have been deleted
metadataobjectCustom metadata object stored with the Skill; defaults to {}
created_atstringCreation time (ISO 8601, microsecond precision, e.g. 2026-05-18T15:35:24.248164Z)
updated_atstringLast update time (ISO 8601, microsecond precision); refreshed when versions are created or deleted
descriptionstring⚠️ Deprecated: skill description (use the description on version objects instead)
contentstring⚠️ Deprecated: base64-encoded content, present only when include_content=true (use GET /skills/{skill_id}/versions/{version}/content instead)
content_encodingstring⚠️ Deprecated: present with content; value is base64 (same replacement as above)

Skill version object

Returned by Create version, Get version, and List versions. Each version is an immutable, complete content snapshot.
FieldTypeDescription
idstringVersion ID
typestringAlways "skill_version"
skill_idstringOwning Skill ID
versionstringVersion identifier, an epoch-microsecond string taken at creation time (e.g. "1759178010641129")
namestringname from this version's SKILL.md frontmatter; must be consistent across versions
descriptionstringdescription from this version's SKILL.md frontmatter
directorystringSandbox install directory name; always equal to name
created_atstringVersion creation time (ISO 8601, microsecond precision)
content_sizeinteger⚠️ Deprecated: content size in bytes (no replacement; will be removed)
content_sha256string⚠️ Deprecated: SHA-256 digest (no replacement; will be removed)
statusstring⚠️ Deprecated: version status (no replacement; will be removed)
updated_atstring⚠️ Deprecated: last update time (versions are immutable; use created_at instead)

Skill package

Create-skill and create-version requests upload content through the multipart/form-data files field as a .zip archive or a bare file tree.
RuleDescription
Upload formsA single .zip archive, or a bare file tree (multiple files parts whose filenames carry relative paths)
Size limitsArchive at most 50 MB, and uncompressed content at most 50 MB
Top-level directoryA single top-level directory is required, and its name must equal the SKILL.md name; otherwise 400
Required manifestSKILL.md inside the top-level directory, starting with YAML frontmatter
Frontmatter nameRequired, non-empty; at most 64 characters; must match ^[a-z0-9][a-z0-9_-]*$; must be consistent across all versions of a skill
Frontmatter descriptionRequired, non-empty; at most 5120 characters
Frontmatter parsingStrict YAML first; on failure, a lenient fallback extracts top-level name:/description: line by line and ignores other keys. Quote values containing ': '