Assistant skills (Configuration API)
assistant.skills
The assistant skills entity registers Skills from uploaded bundles, so that productivity assistants can use them. A Skill’s name, description and surfaces always come from the SKILL.md file in its bundle. The only thing you send is the file_id of a bundle uploaded through the Files API. Deleting a Skill isn’t available through the API.
Productivity Assistants are in Controlled Availability. Capabilities, limits, and interface labels described here may change before general availability. To request access, contact your Moveworks account team.
- Endpoint:
/assistant/skills| Methods: GET, PATCH, POST - Request shape: fields go at the top level of the JSON body. These endpoints take no
resourcewrapper, and the Skill’sidgoes in the URL, not the body. - Schemas, examples and errors: each endpoint page below lists every field, example requests and responses, and the errors it can return.
Configuration API request basics
Assistant skill endpoints
Configuration API paths are relative to the base URL above. The upload is a Files API call with its own base URL.
Calls that register a Skill
Registering a Skill takes two calls, and a third to give it to an assistant.
The uploaded file is only a staging copy. Registering the Skill copies the bundle into permanent storage, so the Skill keeps working after the upload expires.
Skill bundle requirements
What goes inside a bundle, including the SKILL.md format, is described in Bundle format. These limits apply to a bundle sent through the API:
How assistant skill updates behave
file_idis the only field you can change. APATCHthat sendsname,descriptionorsurfacesis rejected. To change them, editSKILL.mdand upload a new bundle.- The Skill keeps its
name. A replacement bundle whoseSKILL.mdnames a different Skill is rejected. Register it as a new Skill instead. - Replacing a bundle with identical contents changes nothing. The request succeeds and returns the current Skill, so a retry is safe.
- The last replacement wins.
version.numis checked against the stored Skill before the bundle is replaced. Two replacements sent at the same moment with the samenumcan both succeed, and the later one is stored. - A rejected bundle doesn’t change the Skill. The bundle is checked before the Skill is created or replaced.
- A bundle that is still being scanned returns
409. The message asks you to retry in a few seconds, and the same request succeeds once the scan finishes.
Related pages
- Productivity assistants (Configuration API): reference a Skill’s
idinskill_ids - Skills: what a Skill is and how to write
SKILL.md - Upload file: the Files API call that uploads the bundle