Publish a skill from a bundle upload
Creates a skill from a zipped skill directory and returns it. Send the archive as the bundle part of a multipart/form-data body. Its SKILL.md supplies the skill’s document, name, and description; its scripts/ and references/ are mounted into the sandbox for sessions that attach it. To create a document-only skill instead, use managedAgentsCreateSkill. Do not automatically retry an ambiguous transport failure: list skills first, because this operation does not replay a prior response and another submission can create another skill.
Authorizations
A Recursion API key, created in the console under API keys.
Headers
Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is default.
1Organization in which to act. Required for a tenant-scoped API key. Optional for an organization-scoped key, where it must name that same organization. The value may be an organization id or default.
1Body
Request body for creating a skill by uploading a zipped skill directory in the bundle part. The document, name and description come from the archive's SKILL.md.
A zipped Agent Skills directory containing a root SKILL.md and optional executable helpers, references, and assets.
Human-readable title for listings. Defaults to the frontmatter name.
Caller-owned key/value data as a JSON object, since a form part cannot carry structure. Rejected rather than dropped when it does not parse.
Catalog group to file this skill under. Omit the part to create the skill ungrouped.
Response
A reusable procedure an agent loads when it judges the procedure relevant. Its name and description are disclosed in every turn; the instructions enter the conversation only when the agent activates it. Updating a skill mints a new immutable SkillVersion.
A reusable procedure an agent loads when it judges the procedure relevant. Its name and description are disclosed in every turn; the instructions enter the conversation only when the agent activates it. Updating a skill mints a new immutable SkillVersion.
Server-assigned RFC 3339 timestamp of when the skill was created.
When to use this skill. Disclosed to the model in every turn, so it is the whole routing signal: write it as the condition under which the skill applies.
The skill's addressable name, lowercase with single hyphens, e.g. cut-release. This is what an agent passes to the activation tool.
Organization that owns the skill. Server-assigned from the caller's credentials; a value sent in a request body is ignored.
Server-assigned id of the skill, used in the skill and skill-version routes.
Where the skill came from: platform, organization, or repository. Decides which skill wins a name collision, most specific first.
Server-assigned RFC 3339 timestamp of the most recent update to the skill.
Human-readable title shown wherever skills are listed. Defaults to the name.
Length in characters of the newest version's instructions, the body disclosed to the model when it activates the skill. Zero for a skill with no version yet. Instructions are truncated at 64000 characters when a session assembles them.
-9007199254740991 <= x <= 9007199254740991Server-maintained id of the newest version of this skill; agents that attach it without pinning a version use this one.
How many versions this skill has, which is also the number of the newest one, since versions are numbered from 1 in creation order. Zero for a skill with no version yet.
-9007199254740991 <= x <= 9007199254740991Caller-owned key/value data stored with the skill and returned unchanged.
Catalog group this skill is filed under, if any. Grouping is for browsing and for attaching a set of skills to an agent in one entry; it is never disclosed to the model and does not scope the skill's name.