The Shortcut connector lets your AI agent act in each user's Shortcut account. Each user connects their own Shortcut API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 124 tools.
- Tools
- 124
- What they doRead · write · destructive
- 65 · 41 · 1865 read41 write18 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Shortcut connection
In AgentKit > Connections, create a Shortcut connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'shortcut'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Shortcut:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'shortcut_get_current_member',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "shortcut"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Shortcut:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="shortcut_get_current_member",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Shortcut credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolshortcut_get_categoryGet one Shortcut objective category by ID.Read-onlyGet Category
Get one Shortcut objective category by ID. Returns the category's name, color, type, and archived flag. Use this when you have a category ID. Use list_categories to browse.
Inputs
category_idintegerrequired- Numeric ID of the category (from list_categories). Example: 12.
shortcut_get_current_memberGet the Shortcut member that owns the connected API token.Read-onlyGet Current Member
Get the Shortcut member that owns the connected API token. Returns the member's ID, name, mention name, role, workspace, and organization. Use this to find your own member ID before filtering or assigning work. Use get_member for any other member.
Inputs
This tool takes no inputs.
shortcut_get_custom_fieldGet one Shortcut custom field by ID.Read-onlyGet Custom Field
Get one Shortcut custom field by ID. Returns the field's name, type, enabled flag, story types, and allowed values with their IDs. Use this when you have a custom field ID. Use list_custom_fields to browse.
Inputs
custom_field_idstringrequired- UUID of the custom field (from list_custom_fields). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_get_docGet one Shortcut Doc with its content.Read-onlyGet Doc
Get one Shortcut Doc with its content. Returns the doc's title, Markdown content (and HTML when requested), archived flag, timestamps, and app URL. Use this to read a doc. Use search_docs or list_docs to find doc IDs.
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
content_formatstring- Response content format. markdown (default) returns content_markdown; html also includes content_html. Example: markdown.one of
markdownhtml
shortcut_get_entity_templateGet one Shortcut story template by ID.Read-onlyGet Story Template
Get one Shortcut story template by ID. Returns the template's name, author ID, last used time, and story contents. Use this to inspect a template before create_story_from_template.
Inputs
template_idstringrequired- UUID of the story template (from list_entity_templates). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_get_epicGet one Shortcut epic by ID with its full details.Read-onlyGet Epic
Get one Shortcut epic by ID with its full details. Returns the epic's name, description, state, owners, teams, objectives, labels, comments, health, stats, and app URL. Use get_epic when you have an epic ID. Use list_epic_stories for the stories in it.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_get_epic_commentGet one comment on a Shortcut epic, with its replies.Read-onlyGet Epic Comment
Get one comment on a Shortcut epic, with its replies. Returns the comment's ID, author ID, text, nested replies, and timestamps. Use this when you have a comment ID. Use list_epic_comments for all comments on an epic.
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_get_epic_healthGet the current health status of a Shortcut epic.Read-onlyGet Epic Health
Get the current health status of a Shortcut epic. Returns the health record (ID, status such as On Track or At Risk, text, author ID, timestamps). Use this for the latest status. Use list_epic_health_history for past updates.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_get_epic_workflowGet the epic workflow for the Shortcut workspace.Read-onlyGet Epic Workflow
Get the epic workflow for the Shortcut workspace. Returns the default epic state ID and the list of epic states (ID, name, type, position). Use this to find an epic_state_id for create_epic or update_epic. Story workflow states come from list_workflows.
Inputs
This tool takes no inputs.
shortcut_get_external_link_storiesFind Shortcut stories that have a given external link attached.Read-onlyGet Stories by External Link
Find Shortcut stories that have a given external link attached. Returns an array of matching stories (ID, name, workflow state, external links, app URL). Use this to find stories tied to a URL such as a support ticket or doc. Use search_stories for text queries.
Inputs
external_linkstringrequired- The external URL to look up. Example: https://support.example.com/tickets/42.
shortcut_get_fileGet one uploaded file in Shortcut by ID.Read-onlyGet File
Get one uploaded file in Shortcut by ID. Returns the file's name, filename, description, content type, size, URL, story IDs, and uploader ID. Use this when you have a file ID. Use list_files to browse.
Inputs
file_idintegerrequired- Numeric ID of the uploaded file (from list_files). Example: 88.
shortcut_get_groupGet one Shortcut team (group) by ID.Read-onlyGet Team
Get one Shortcut team (group) by ID. Returns the team's name, mention name, description, member IDs, workflow IDs, default workflow, and story counts. Use this when you have a group ID. Use list_group_stories for its stories.
Inputs
group_idstringrequired- UUID of the team (group), from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_get_iterationGet one Shortcut iteration by ID.Read-onlyGet Iteration
Get one Shortcut iteration by ID. Returns the iteration's name, description, status, start and end dates, teams, labels, stats, and app URL. Use this when you have an iteration ID. Use list_iteration_stories for its stories.
Inputs
iteration_idintegerrequired- Numeric ID of the iteration (from list_iterations). Example: 78.
shortcut_get_key_resultGet one key result of a Shortcut objective.Read-onlyGet Key Result
Get one key result of a Shortcut objective. Returns the key result's name, type, objective ID, initial, current, and target values, and progress. Use this to check progress. Key result IDs come from get_objective (key_result_ids).
Inputs
key_result_idstringrequired- UUID of the key result (from get_objective's key_result_ids). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_get_labelGet one Shortcut label by ID.Read-onlyGet Label
Get one Shortcut label by ID. Returns the label's name, color, description, archived flag, and stats. Use this when you have a label ID. Use list_labels to browse.
Inputs
label_idintegerrequired- Numeric ID of the label (from list_labels). Example: 345.
shortcut_get_linked_fileGet one Shortcut linked file by ID.Read-onlyGet Linked File
Get one Shortcut linked file by ID. Returns the linked file's name, type, URL, description, size, story IDs, and uploader ID. Use this when you have a linked file ID. Use list_linked_files to browse.
Inputs
linked_file_idintegerrequired- Numeric ID of the linked file (from list_linked_files). Example: 99.
shortcut_get_memberGet one Shortcut workspace member by ID.Read-onlyGet Member
Get one Shortcut workspace member by ID. Returns the member's role, state, disabled flag, team IDs, and profile (name, mention name, email). Use this when you have a member ID. Use list_members to find one, or get_current_member for the token owner.
Inputs
member_idstringrequired- UUID of the member, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
org_idstring- The unique ID of the Organization to limit the lookup to. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_get_objectiveGet one Shortcut objective by ID.Read-onlyGet Objective
Get one Shortcut objective by ID. Returns the objective's name, description, state, categories, key result IDs, stats, and app URL. Use this when you have an objective ID. Use list_objective_epics for its epics.
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
shortcut_get_objective_healthGet the current health status of a Shortcut objective.Read-onlyGet Objective Health
Get the current health status of a Shortcut objective. Returns the health record (ID, status such as On Track or At Risk, text, author ID, timestamps). Use this for the latest status. Use list_objective_health_history for past updates.
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
shortcut_get_projectGet one Shortcut project by ID.Read-onlyGet Project
Get one Shortcut project by ID. Returns the project's name, description, abbreviation, team ID, workflow ID, archived flag, stats, and app URL. Use this when you have a project ID. Use list_project_stories for its stories.
Inputs
project_idintegerrequired- Numeric ID of the project (from list_projects). Example: 23.
shortcut_get_repositoryGet one VCS repository connected to Shortcut by ID.Read-onlyGet Repository
Get one VCS repository connected to Shortcut by ID. Returns the repository's name, full name, type, URL, and external ID. Use this when you have a repository ID. Use list_repositories to browse.
Inputs
repository_idintegerrequired- Numeric ID of the repository (from list_repositories). Example: 7.
shortcut_get_storyGet one Shortcut story by ID with its full details.Read-onlyGet Story
Get one Shortcut story by ID with its full details. Returns the story's name, description, type, workflow state, owners, epic, iteration, labels, tasks, comments, story links, branches, pull requests, and app URL. Use get_story when you have a story ID. Use search_stories or query_stories to find stories.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_get_story_commentGet one comment on a Shortcut story.Read-onlyGet Story Comment
Get one comment on a Shortcut story. Returns the comment's ID, author ID, text, parent ID, reactions, and timestamps. Use this when you have a comment ID. Use list_story_comments for all comments on a story.
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_get_story_historyGet the change history of a Shortcut story.Read-onlyGet Story History
Get the change history of a Shortcut story. Returns history entries with the actor, change time, and the actions and references that changed (for example state moves, owner changes, edits). Use this to audit who changed a story and when. Use get_story for the story's current state.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_get_story_linkGet one Shortcut story link (story relationship) by ID.Read-onlyGet Story Link
Get one Shortcut story link (story relationship) by ID. Returns the link's subject ID, verb, object ID, and the subject's workflow state ID. Use this when you have a story link ID. get_story lists all links on a story.
Inputs
story_link_idintegerrequired- Numeric ID of the story link (from get_story's story_links). Example: 910.
shortcut_get_taskGet one checklist task on a Shortcut story.Read-onlyGet Task
Get one checklist task on a Shortcut story. Returns the task's description, complete flag, owner IDs, position, and timestamps. Use this when you have a task ID. get_story returns all tasks on a story.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
task_idintegerrequired- Numeric ID of the task (from get_story). Example: 4321.
shortcut_get_workflowGet one Shortcut story workflow by ID.Read-onlyGet Workflow
Get one Shortcut story workflow by ID. Returns the workflow's name, team, default state ID, and its workflow states (ID, name, type, position). Use this when you know the workflow ID. Use list_workflows to browse all workflows.
Inputs
workflow_idintegerrequired- Numeric ID of the workflow (from list_workflows). Example: 500000005.
shortcut_list_categoriesList the objective categories in the Shortcut workspace.Read-onlyList Categories
List the objective categories in the Shortcut workspace. Returns an array of categories (ID, name, color, type, archived flag). Use this to find a category ID. Use list_category_objectives for its objectives.
Inputs
This tool takes no inputs.
shortcut_list_category_objectivesList the objectives in a Shortcut category.Read-onlyList Category Objectives
List the objectives in a Shortcut category. Returns an array of objectives (ID, name, state, app URL). Use this to see the objectives grouped under one category.
Inputs
category_idintegerrequired- Numeric ID of the category (from list_categories). Example: 12.
shortcut_list_custom_fieldsList the story custom fields defined in the Shortcut workspace.Read-onlyList Custom Fields
List the story custom fields defined in the Shortcut workspace. Returns an array of custom fields (ID, name, field type, enabled flag, story types, and allowed values with their IDs). Use this to get field_id and value_id pairs for the custom_fields input on story tools.
Inputs
This tool takes no inputs.
shortcut_list_doc_epicsList the epics linked to a Shortcut Doc.Read-onlyList Doc Epics
List the epics linked to a Shortcut Doc. Returns an array of epics (ID, name, state, app URL). Use this to see which epics a doc supports. Use list_epic_docs for the reverse.
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_list_docsList the Shortcut Docs the connected user can read.Read-onlyList Docs
List the Shortcut Docs the connected user can read. Returns an array of docs (ID, title, app URL). Use list_docs to browse. Use search_docs to find docs by title, or get_doc for content.
Inputs
This tool takes no inputs.
shortcut_list_entity_templatesList the story templates in the Shortcut workspace.Read-onlyList Story Templates
List the story templates in the Shortcut workspace. Returns an array of templates (ID, name, author ID, last used time, and the story contents each template fills in). Use this to find a story_template_id for create_story_from_template.
Inputs
This tool takes no inputs.
shortcut_list_epic_commentsList the threaded comments on a Shortcut epic.Read-onlyList Epic Comments
List the threaded comments on a Shortcut epic. Returns an array of comments (ID, author ID, text, nested replies, created time). Use this to read an epic's discussion. Use list_story_comments for stories.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_list_epic_docsList the Shortcut Docs linked to an epic.Read-onlyList Epic Docs
List the Shortcut Docs linked to an epic. Returns an array of docs (ID, title, app URL). Use this to find an epic's specs. Use get_doc to read one.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_list_epic_health_historyList the health status history of a Shortcut epic, most recent first.Read-onlyList Epic Health History
List the health status history of a Shortcut epic, most recent first. Returns an array of health records (ID, status, text, author ID, timestamps). Use this to see how an epic's health changed. Use get_epic_health for only the current status.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_list_epic_storiesList the stories in a Shortcut epic.Read-onlyList Epic Stories
List the stories in a Shortcut epic. Returns an array of stories (ID, name, type, workflow state, owners, estimate, app URL), with descriptions when requested. Use this to see an epic's scope. Use query_stories for more filters across epics.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
shortcut_list_epicsList every epic in the Shortcut workspace.Read-onlyList Epics
List every epic in the Shortcut workspace. Returns an array of epics (ID, name, state, owners, team IDs, objective IDs, stats, app URL), with descriptions when requested. Use list_epics to get all epics at once. Use list_epics_paginated for large workspaces, or search_epics for a text query.
Inputs
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
shortcut_list_epics_paginatedList Shortcut epics one page at a time.Read-onlyList Epics (Paginated)
List Shortcut epics one page at a time. Returns a page of epics, the total count, and the next page number (null on the last page). Use this for large workspaces. Use list_epics for every epic in one response.
Inputs
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
pageinteger- The page number to return, starting with 1. Defaults to 1. Example: 1.
page_sizeinteger- The number of Epics to return per page. Minimum 1, maximum 250, default 10. Example: 25.
shortcut_list_filesList the files uploaded to the Shortcut workspace.Read-onlyList Files
List the files uploaded to the Shortcut workspace. Returns an array of files (ID, name, filename, content type, size, URL, story IDs, uploader ID). Use this for uploaded files. Use list_linked_files for files linked from Google Drive, Dropbox, Box, OneDrive, or a URL.
Inputs
This tool takes no inputs.
shortcut_list_group_storiesList the stories assigned to a Shortcut team (group), up to 1,000 per request.Read-onlyList Team Stories
List the stories assigned to a Shortcut team (group), up to 1,000 per request. Returns an array of stories (ID, name, workflow state, owners, app URL). Use this to see a team's work, paging with limit and offset. Use query_stories for more filters.
Inputs
group_idstringrequired- UUID of the team (group), from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
limitinteger- The maximum number of results to return. (Defaults to 1000, max 1000). Example: 100.
offsetinteger- The offset at which to begin returning results. (Defaults to 0). Example: 0.
shortcut_list_groupsList the teams (called groups in the API) in the Shortcut workspace.Read-onlyList Teams
List the teams (called groups in the API) in the Shortcut workspace. Returns an array of teams (ID, name, mention name, member IDs, workflow IDs, story and epic counts, archived flag). Use this to find a team's group_id. Use get_group for one team.
Inputs
archivedboolean- Filter groups by their archived state. If true, returns only archived groups. If false, returns only unarchived groups. If not provided, returns all groups. Example: false.
shortcut_list_iteration_storiesList the stories in a Shortcut iteration.Read-onlyList Iteration Stories
List the stories in a Shortcut iteration. Returns an array of stories (ID, name, type, workflow state, owners, estimate, app URL), with descriptions when requested. Use this to review a sprint's scope. Use query_stories for more filters.
Inputs
iteration_idintegerrequired- Numeric ID of the iteration (from list_iterations). Example: 78.
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
shortcut_list_iterationsList every iteration (sprint) in the Shortcut workspace.Read-onlyList Iterations
List every iteration (sprint) in the Shortcut workspace. Returns an array of iterations (ID, name, status, start and end dates, team IDs, stats, app URL). Use this to find an iteration_id. Use search_iterations for a text query, or get_iteration for one.
Inputs
This tool takes no inputs.
shortcut_list_label_epicsList the epics that have a given Shortcut label.Read-onlyList Label Epics
List the epics that have a given Shortcut label. Returns an array of epics (ID, name, state, owners, app URL). Use this for epics with a label. Use list_label_stories for stories.
Inputs
label_idintegerrequired- Numeric ID of the label (from list_labels). Example: 345.
shortcut_list_label_storiesList the stories that have a given Shortcut label.Read-onlyList Label Stories
List the stories that have a given Shortcut label. Returns an array of stories (ID, name, workflow state, owners, app URL), with descriptions when requested. Use this to see everything tagged with a label. Use list_label_epics for epics.
Inputs
label_idintegerrequired- Numeric ID of the label (from list_labels). Example: 345.
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
shortcut_list_labelsList every label in the Shortcut workspace.Read-onlyList Labels
List every label in the Shortcut workspace. Returns an array of labels (ID, name, color, description, archived flag, and stats unless slim is true). Use this to find a label ID or name. Use get_label for one label.
Inputs
slimboolean- Set to true to return slim label objects without stats. Example: true.
shortcut_list_linked_filesList the linked files (Google Drive, Dropbox, Box, OneDrive, or URL) in the Shortcut workspace.Read-onlyList Linked Files
List the linked files (Google Drive, Dropbox, Box, OneDrive, or URL) in the Shortcut workspace. Returns an array of linked files (ID, name, type, URL, story IDs, uploader ID). Use this for linked files. Use list_files for files uploaded directly to Shortcut.
Inputs
This tool takes no inputs.
shortcut_list_membersList the members of the Shortcut workspace, optionally only enabled or disabled ones.Read-onlyList Members
List the members of the Shortcut workspace, optionally only enabled or disabled ones. Returns each member's ID, role, state, disabled flag, team IDs, and profile (name, mention name, email). Use this to look up member IDs for owner_ids, follower_ids, or requested_by_id. Use get_member when you already have an ID.
Inputs
disabledboolean- Filter members by their disabled state. If true, return only disabled members. If false, return only enabled members. Example: false.
org_idstring- The unique ID of the Organization to limit the list to. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_list_objective_epicsList the epics linked to a Shortcut objective.Read-onlyList Objective Epics
List the epics linked to a Shortcut objective. Returns an array of epics (ID, name, state, owners, stats, app URL). Use this to see the work behind an objective. Use list_epic_stories to go down to stories.
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
shortcut_list_objective_health_historyList the health status history of a Shortcut objective, most recent first.Read-onlyList Objective Health History
List the health status history of a Shortcut objective, most recent first. Returns an array of health records (ID, status, text, author ID, timestamps). Use this to see how an objective's health changed. Use get_objective_health for only the current status.
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
shortcut_list_objectivesList every objective in the Shortcut workspace.Read-onlyList Objectives
List every objective in the Shortcut workspace. Returns an array of objectives (ID, name, state, categories, key result IDs, stats, app URL). Use this to find an objective ID. Use search_objectives for a text query, or get_objective for one.
Inputs
This tool takes no inputs.
shortcut_list_project_storiesList the stories in a Shortcut project.Read-onlyList Project Stories
List the stories in a Shortcut project. Returns an array of stories (ID, name, workflow state, owners, app URL), with descriptions when requested. Use this in workspaces that use projects. Use query_stories for more filters.
Inputs
project_idintegerrequired- Numeric ID of the project (from list_projects). Example: 23.
includes_descriptionboolean- Set to true to include descriptions in the results (larger response). Omit or set false to leave them out. Example: true.
shortcut_list_projectsList the projects in the Shortcut workspace.Read-onlyList Projects
List the projects in the Shortcut workspace. Projects are being phased out in favor of teams and workflows. Returns an array of projects (ID, name, abbreviation, team ID, workflow ID, archived flag, stats, app URL). Use this in workspaces that still use projects. Use list_groups for teams.
Inputs
This tool takes no inputs.
shortcut_list_repositoriesList the VCS repositories connected to the Shortcut workspace.Read-onlyList Repositories
List the VCS repositories connected to the Shortcut workspace. Returns an array of repositories (ID, name, full name, type such as github, URL). Use this to see which repositories feed branches and pull requests into stories.
Inputs
This tool takes no inputs.
shortcut_list_story_commentsList the comments on a Shortcut story.Read-onlyList Story Comments
List the comments on a Shortcut story. Returns an array of comments (ID, author ID, text, parent comment ID, reactions, created time). Use this to read a story's discussion. Use get_story_comment for one comment.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_list_story_sub_tasksList the sub-task stories of a parent Shortcut story.Read-onlyList Story Sub-tasks
List the sub-task stories of a parent Shortcut story. Returns an array of sub-task stories (ID, name, workflow state, owners, app URL). Use this for sub-task stories (Sub-task feature). Checklist tasks inside a story come from get_story.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_list_workflowsList the story workflows in the Shortcut workspace.Read-onlyList Workflows
List the story workflows in the Shortcut workspace. Returns each workflow's ID, name, team, default state ID, and its workflow states (ID, name, type, position). Use this to find a workflow_state_id for creating, moving, or filtering stories. Use get_workflow for one workflow.
Inputs
This tool takes no inputs.
shortcut_query_storiesFind Shortcut stories that match structured filters such as owner, epic, iteration, team, label, workflow state, story type, and date ranges.Read-onlyQuery Stories
Find Shortcut stories that match structured filters such as owner, epic, iteration, team, label, workflow state, story type, and date ranges. Returns an array of matching stories (ID, name, type, workflow state, owners, epic, iteration, estimate, app URL). Use query_stories for exact field filters. Use search_stories for free-text or search-operator queries.
Inputs
archivedboolean- Set to true for archived stories only, or false for unarchived stories only. Example: false.
completed_at_endstring- Stories should have been completed on or before this date. Example: 2026-11-15T17:00:00Z.
completed_at_startstring- Stories should have been completed on or after this date. Example: 2026-11-15T17:00:00Z.
created_at_endstring- Stories should have been created on or before this date. Example: 2026-11-15T17:00:00Z.
created_at_startstring- Stories should have been created on or after this date. Example: 2026-11-15T17:00:00Z.
deadline_endstring- Stories should have a deadline on or before this date. Example: 2026-11-15T17:00:00Z.
deadline_startstring- Stories should have a deadline on or after this date. Example: 2026-11-15T17:00:00Z.
epic_idinteger- ID of the epic the stories belong to. Example: 56.
epic_idsarray- The Epic IDs that may be associated with the Stories. Example: [1234, 1235]
estimateinteger- Exact estimate in points that the stories have. Example: 3.
external_idstring- An ID or URL that references an external resource. Useful during imports. Example: JIRA-1234.
group_idstring- ID of the team (group) the stories belong to. Example: 12345678-9abc-4def-8123-456789abcdef.
group_idsarray- IDs of teams (groups); stories in any of them match (from list_groups). Example: ["12345678-9abc-4def-8123-456789abcdef"]
includes_descriptionboolean- Set to true to include each story's description in the results. Example: true.
iteration_idinteger- ID of the iteration the stories belong to. Example: 78.
iteration_idsarray- The Iteration IDs that may be associated with the Stories. Example: [1234, 1235]
label_idsarray- The Label IDs that may be associated with the Stories. Example: [1234, 1235]
label_namestring- Name of a label the stories have. Example: backend.
owner_idstring- ID of a member who owns the stories. Example: 12345678-9abc-4def-8123-456789abcdef.
owner_idsarray- IDs of members; stories owned by any of them match (from list_members). Example: ["12345678-9abc-4def-8123-456789abcdef"]
project_idinteger- ID of the project the stories belong to (legacy). Example: 23.
project_idsarray- The IDs for the Projects the Stories may be assigned to. Example: [1234, 1235]
requested_by_idstring- ID of the member who requested the stories (from list_members). Example: 12345678-9abc-4def-8123-456789abcdef.
story_typestring- The type of Stories that you want returned. Example: feature.one of
featurechorebug updated_at_endstring- Stories should have been updated on or before this date. Example: 2026-11-15T17:00:00Z.
updated_at_startstring- Stories should have been updated on or after this date. Example: 2026-11-15T17:00:00Z.
workflow_state_idinteger- ID of the workflow state the stories are in (from list_workflows). Example: 500000008.
workflow_state_typesarray- The type of Workflow State the Stories may be in. Example: ["started"]
shortcut_searchSearch stories and epics (and optionally iterations and objectives) in Shortcut with one query using Shortcut search operators.Read-onlySearch Stories and Epics
Search stories and epics (and optionally iterations and objectives) in Shortcut with one query using Shortcut search operators. Returns one result set per entity type, each with total, a page of matching items, and a next-page token. Use search for a mixed-entity text query. Use search_stories or search_epics for one entity type, or query_stories for structured filters.
Inputs
querystringrequired- Search text. Supports Shortcut search operators such as owner:jane, state:"In Progress", type:bug, label:backend, epic:56, team:mobile, is:started, and !is:done. Example: owner:jane type:bug !is:done.
detailstring- How much detail each result includes: slim (smaller, without descriptions and comments) or full (descriptions, comments, and more fields on related items). Example: full.one of
fullslim entity_typesarray- Entity types to search. Defaults to story and epic when omitted. Allowed values: story, epic, iteration, objective. Example: ["story"]
nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_search_docsSearch Shortcut Docs by title, with optional archived, created-by-me, and followed-by-me filters.Read-onlySearch Docs
Search Shortcut Docs by title, with optional archived, created-by-me, and followed-by-me filters. Returns total matches, a page of docs (ID, title, app URL), and a next-page token. Use search_docs to find a doc by title. Use list_docs to browse every doc you can read, or get_doc for content.
Inputs
titlestringrequired- Text to match against doc titles (fuzzy match). Example: launch plan.
archivedboolean- When true, find archived documents. When false, find non-archived documents. Example: false.
created_by_meboolean- When true, find documents created by the current user. When false, find documents NOT created by current user. Example: false.
followed_by_meboolean- When true, find documents that the current user is following. When false, find documents NOT followed. Example: false.
nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_search_epicsSearch Shortcut epics with a text query that supports Shortcut search operators.Read-onlySearch Epics
Search Shortcut epics with a text query that supports Shortcut search operators. Returns total matches, a page of epics (ID, name, state, owners, objectives, app URL), and a next-page token. Use search_epics for text queries. Use list_epics or list_epics_paginated to browse all epics, or get_epic for one.
Inputs
querystringrequired- Search text. Supports Shortcut search operators such as owner:jane, state:"In Progress", type:bug, label:backend, epic:56, team:mobile, is:started, and !is:done. Example: owner:jane type:bug !is:done.
detailstring- How much detail each result includes: slim (smaller, without descriptions and comments) or full (descriptions, comments, and more fields on related items). Example: full.one of
fullslim nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_search_iterationsSearch Shortcut iterations with a text query that supports Shortcut search operators.Read-onlySearch Iterations
Search Shortcut iterations with a text query that supports Shortcut search operators. Returns total matches, a page of iterations (ID, name, status, start and end dates, app URL), and a next-page token. Use search_iterations for text queries. Use list_iterations to browse all iterations.
Inputs
querystringrequired- Search text. Supports Shortcut search operators such as owner:jane, state:"In Progress", type:bug, label:backend, epic:56, team:mobile, is:started, and !is:done. Example: owner:jane type:bug !is:done.
detailstring- How much detail each result includes: slim (smaller, without descriptions and comments) or full (descriptions, comments, and more fields on related items). Example: full.one of
fullslim nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_search_objectivesSearch Shortcut objectives with a text query that supports Shortcut search operators.Read-onlySearch Objectives
Search Shortcut objectives with a text query that supports Shortcut search operators. Returns total matches, a page of objectives (ID, name, state, categories, app URL), and a next-page token. Use search_objectives for text queries. Use list_objectives to browse all objectives.
Inputs
querystringrequired- Search text. Supports Shortcut search operators such as owner:jane, state:"In Progress", type:bug, label:backend, epic:56, team:mobile, is:started, and !is:done. Example: owner:jane type:bug !is:done.
detailstring- How much detail each result includes: slim (smaller, without descriptions and comments) or full (descriptions, comments, and more fields on related items). Example: full.one of
fullslim nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_search_storiesSearch Shortcut stories with a text query that supports Shortcut search operators (for example owner:, state:, type:, label:, epic:).Read-onlySearch Stories
Search Shortcut stories with a text query that supports Shortcut search operators (for example owner:, state:, type:, label:, epic:). Returns total matches, a page of stories (ID, name, type, workflow state, owners, epic, iteration, app URL), and a next-page token. Use search_stories for free-text or operator queries. Use query_stories for exact structured filters, or get_story for one story.
Inputs
querystringrequired- Search text. Supports Shortcut search operators such as owner:jane, state:"In Progress", type:bug, label:backend, epic:56, team:mobile, is:started, and !is:done. Example: owner:jane type:bug !is:done.
detailstring- How much detail each result includes: slim (smaller, without descriptions and comments) or full (descriptions, comments, and more fields on related items). Example: full.one of
fullslim nextstring- Token for the next page of results. Each response's next field is a URL path ending in next=<token>; pass only the token value and repeat the same query and filters. Example: a8acc6577548df7a213272f7f9f617bcb1f8a831~24.
page_sizeinteger- The number of search results to include in a page. Minimum of 1 and maximum of 250. Example: 25.
shortcut_create_categoryCreate an objective category in Shortcut.WriteCreate Category
Create an objective category in Shortcut. Returns the created category (ID, name, color, type). Use this to add a category for grouping objectives.
Inputs
namestringrequired- The name of the new Category. Example: Growth.
colorstring- The hex color to be displayed with the Category (for example, "#ff0000"). Example: #3366ff.
external_idstring- This field can be set to another unique ID. In the case that the Category has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
typestring- The type of entity this Category is associated with; currently Milestone or Objective is the only type of Category. Example: example.
shortcut_create_docCreate a Shortcut Doc from Markdown or HTML content.WriteCreate Doc
Create a Shortcut Doc from Markdown or HTML content. Returns the created doc (ID, title, app URL). Use this to write a new doc. Set content_format to markdown when sending Markdown; it defaults to HTML.
Inputs
contentstringrequired- Doc body. Sent as HTML unless content_format is markdown. Example: # Launch plan Goals...
titlestringrequired- The title for the new document. Example: Q4 launch plan.
content_formatstring- Format of content: markdown or html. Defaults to html when omitted, so set markdown when sending Markdown. Example: markdown.one of
markdownhtml
shortcut_create_entity_templateCreate a story template in Shortcut that pre-fills story fields.WriteCreate Story Template
Create a story template in Shortcut that pre-fills story fields. Returns the created template (ID, name, story contents). Use this to save a reusable story shape. Use create_story_from_template to use it.
Inputs
namestringrequired- The name of the new entity template. Example: Bug report.
story_contentsobjectrequired- The story fields this template fills in, such as name, description, story_type, workflow_state_id, owner_ids, labels, tasks, estimate, epic_id, iteration_id, and group_id. Example: {"name": "Bug: ", "story_type": "bug", "labels": [{"name": "triage"}], "tasks": [{"description": "Add repro steps"}]}
author_idstring- ID of the member to record as the author. Defaults to the owner of the API token. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_create_epicCreate an epic in Shortcut.WriteCreate Epic
Create an epic in Shortcut. Returns the created epic (ID, name, epic state, owners, teams, objectives, labels, app URL). Use this to group related stories. Add stories to it with update_story or update_stories (epic_id).
Inputs
namestringrequired- The Epic's name. Example: Checkout redesign.
completed_at_overridestring- A manual override for the time/date the Epic was completed. Example: 2026-11-15T17:00:00Z.
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
descriptionstring- The Epic's description. Example: Redesign the checkout flow to cut drop-off.
epic_state_idinteger- ID of the epic state (from get_epic_workflow). Example: 500000002.
external_idstring- This field can be set to another unique ID. In the case that the Epic has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idsarray- IDs of the teams (groups) to associate, from list_groups. Example: ["12345678-9abc-4def-8123-456789abcdef"]
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
objective_idsarray- IDs of the objectives this epic supports, from list_objectives. Example: [1234, 1235]
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
planned_start_datestring- The Epic's planned start date. Example: 2026-11-15T17:00:00Z.
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
started_at_overridestring- A manual override for the time/date the Epic was started. Example: 2026-11-15T17:00:00Z.
shortcut_create_epic_commentAdd a top-level comment to a Shortcut epic.WriteCreate Epic Comment
Add a top-level comment to a Shortcut epic. Returns the created comment (ID, author ID, text, created time, app URL). Use this for a new thread on an epic. Use reply_epic_comment to reply to an existing comment.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
textstringrequired- The comment text. Example: Looks good, shipping today.
author_idstring- ID of the member to record as the author. Defaults to the owner of the API token. Example: 12345678-9abc-4def-8123-456789abcdef.
external_idstring- This field can be set to another unique ID. In the case that the comment has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
shortcut_create_epic_healthPost a new health status (On Track, At Risk, Off Track, or No Health) on a Shortcut epic.WriteCreate Epic Health
Post a new health status (On Track, At Risk, Off Track, or No Health) on a Shortcut epic. Returns the created health record. Use this to post a status update. Use update_health to correct an existing record.
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
statusstringrequired- The health status of the Epic. Example: At Risk.one of
At RiskOn TrackOff TrackNo Health textstring- The description of the Health status. Example: Looks good, shipping today.
shortcut_create_groupCreate a team (group) in Shortcut.WriteCreate Team
Create a team (group) in Shortcut. Returns the created team (ID, name, mention name, member IDs, workflow IDs, app URL). Use this to add a team. Use update_group to change members or settings later.
Inputs
mention_namestringrequired- The mention name of this Group. Example: mobile-team.
namestringrequired- The name of this Group. Example: Mobile.
card_aging_modestring- The card aging mode for stories in this Group: "gradual" (fixed fade steps at 1, 2, and 4 weeks), "immediate", or "off" (explicitly disabled for this Group). Set to null to inherit the Workspace default. Example: off.one of
offgradualimmediate card_aging_threshold_daysinteger- The number of days an in-progress Story can go without activity before it is considered stale. Required when card_aging_mode is "immediate"; not allowed otherwise. Example: 14.
colorstring- The color you wish to use for the Group in the system. Example: #3366ff.
color_keystring- The color key you wish to use for the Group in the system. Example: blue.one of
bluepurplemidnight-blueorangeyellow-greenbrassgrayfuchsiayellowpinksky-bluegreenredblackslateturquoise descriptionstring- The description of the Group. Example: Owns the iOS and Android apps.
display_icon_idstring- The Icon id for the avatar of this Group. Example: 12345678-9abc-4def-8123-456789abcdef.
member_idsarray- IDs of the members to add to the team, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
workflow_idsarray- The Workflow ids to add to the Group. Example: [1234, 1235]
shortcut_create_iterationCreate an iteration (sprint) in Shortcut with a name and start and end dates.WriteCreate Iteration
Create an iteration (sprint) in Shortcut with a name and start and end dates. Returns the created iteration (ID, name, status, dates, teams, app URL). Use this to plan a sprint. Assign stories to it with update_story or update_stories (iteration_id).
Inputs
end_datestringrequired- Date the iteration ends, as YYYY-MM-DD. Example: 2026-11-13.
namestringrequired- The name of this Iteration. Example: Sprint 42.
start_datestringrequired- Date the iteration begins, as YYYY-MM-DD. Example: 2026-11-02.
descriptionstring- The description of the Iteration. Example: Focus: checkout bugs.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idsarray- IDs of the teams (groups) to associate, from list_groups. Example: ["12345678-9abc-4def-8123-456789abcdef"]
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
shortcut_create_labelCreate a label in Shortcut.WriteCreate Label
Create a label in Shortcut. Returns the created label (ID, name, color, description, app URL). Use this to add a new label. Stories and epics can also create labels inline by name.
Inputs
namestringrequired- The name of the new Label. Example: backend.
colorstring- The hex color to be displayed with the Label (for example, "#ff0000"). Example: #3366ff.
descriptionstring- The description of the new Label. Example: Server-side work.
external_idstring- This field can be set to another unique ID. In the case that the Label has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
shortcut_create_linked_fileAttach a link to an external file (Google Drive, Dropbox, Box, OneDrive, or any URL) in Shortcut, optionally on a story.WriteCreate Linked File
Attach a link to an external file (Google Drive, Dropbox, Box, OneDrive, or any URL) in Shortcut, optionally on a story. Returns the created linked file (ID, name, type, URL, story IDs). Use this to attach a file by link. Direct uploads are not supported by this connector.
Inputs
namestringrequired- The name of the file. Example: Design spec.
typestringrequired- The integration type of the file (e.g. google, dropbox, box). Example: google.one of
googleurldropboxboxonedrive urlstringrequired- The URL of linked file. Example: https://drive.google.com/file/d/abc123/view.
content_typestring- The content type of the image (e.g. txt/plain). Example: application/pdf.
descriptionstring- The description of the file. Example: Final design spec.
sizeinteger- The filesize, if the integration provided it. Example: 20480.
story_idinteger- The ID of the linked story. Example: 1234.
thumbnail_urlstring- The URL of the thumbnail, if the integration provided it. Example: https://example.com/thumb.png.
uploader_idstring- The UUID of the member that uploaded the file. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_create_objectiveCreate an objective in Shortcut.WriteCreate Objective
Create an objective in Shortcut. Returns the created objective (ID, name, state, categories, app URL). Use this to set a goal. Link epics to it with update_epic (objective_ids).
Inputs
namestringrequired- The name of the Objective. Example: Grow self-serve revenue.
categoriesarray- Categories to attach, each an object with a name (created if it doesn't exist yet) and an optional hex color. Example: [{"name": "Growth"}]
completed_at_overridestring- A manual override for the time/date the Objective was completed. Example: 2026-11-15T17:00:00Z.
descriptionstring- The Objective's description. Example: Increase paid conversions in Q4.
started_at_overridestring- A manual override for the time/date the Objective was started. Example: 2026-11-15T17:00:00Z.
statestring- The workflow state that the Objective is in. Example: in progress.one of
in progressto dodone
shortcut_create_objective_healthPost a new health status (On Track, At Risk, Off Track, or No Health) on a Shortcut objective.WriteCreate Objective Health
Post a new health status (On Track, At Risk, Off Track, or No Health) on a Shortcut objective. Returns the created health record. Use this to post a status update. Use update_health to correct an existing record.
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
statusstringrequired- The health status of the Objective. Example: At Risk.one of
At RiskOn TrackOff TrackNo Health textstring- The description of the Health status. Example: Looks good, shipping today.
shortcut_create_projectCreate a project in Shortcut (legacy; Shortcut is phasing out projects).WriteCreate Project
Create a project in Shortcut (legacy; Shortcut is phasing out projects). Returns the created project (ID, name, team ID, workflow ID, app URL). Use this only in workspaces that still use projects. Prefer teams and workflow states for new setups.
Inputs
namestringrequired- The name of the Project. Example: Web App.
team_idintegerrequired- The ID of the team the project belongs to. Example: 1.
abbreviationstring- The Project abbreviation used in Story summaries. Should be kept to 3 characters at most. Example: WEB.
colorstring- The color you wish to use for the Project in the system. Example: #3366ff.
descriptionstring- The Project description. Example: Customer-facing web app.
external_idstring- This field can be set to another unique ID. In the case that the Project has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
iteration_lengthinteger- The number of weeks per iteration in this Project. Example: 2.
start_timestring- The date at which the Project was started. Example: 2026-11-15T17:00:00Z.
shortcut_create_storiesCreate several Shortcut stories in one request.WriteCreate Multiple Stories
Create several Shortcut stories in one request. Returns an array of the created stories (ID, name, workflow state, app URL). Use create_stories for batch creation. Use create_story for a single story.
Inputs
storiesarrayrequired- The stories to create. Each item takes the same fields as create_story: a name, and exactly one of workflow_state_id or project_id, plus any optional fields. Example: [{"name": "Add CSV export", "workflow_state_id": 500000008, "story_type": "feature"}]
shortcut_create_storyCreate a story in Shortcut.WriteCreate Story
Create a story in Shortcut. Set exactly one of workflow_state_id (recommended) or project_id. Returns the created story, including its ID, name, workflow state, owners, labels, tasks, and app URL. Use create_story for one story. Use create_stories for several at once, or create_story_from_template to start from a template. Get a workflow_state_id from list_workflows first.
Inputs
namestringrequired- The name of the story. Example: Fix login redirect loop.
archivedboolean- Controls the story's archived state. Example: false.
commentsarray- Comments to add when the story is created, each with the comment text. Example: [{"text": "Reported by the support team."}]
completed_at_overridestring- A manual override for the time/date the Story was completed. Example: 2026-11-15T17:00:00Z.
custom_fieldsarray- Custom field values, each pairing a custom field ID with the ID of one of that field's allowed values (get both from list_custom_fields). Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
descriptionstring- Story description in Markdown. Example: Steps to reproduce: ...
epic_idinteger- The ID of the epic the story belongs to. Example: 56.
estimateinteger- Point estimate. Leave empty for unestimated. Example: 3.
external_idstring- This field can be set to another unique ID. In the case that the Story has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
external_linksarray- External URLs to associate (for example support tickets or design files). Example: ["https://support.example.com/tickets/42"]
file_idsarray- An array of IDs of files attached to the story. Example: [1234, 1235]
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idstring- ID of the team (group) to associate, from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
iteration_idinteger- The ID of the iteration the story belongs to. Example: 78.
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
linked_file_idsarray- An array of IDs of linked files attached to the story. Example: [1234, 1235]
move_tostring- Move the story to the first or last position in its workflow state. Example: last.one of
lastfirst owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
parent_story_idinteger- The ID of the parent story to associate with this story (making the created story a sub-task). Field only applicable when Sub-task feature is enabled. Example: 1200.
project_idinteger- Legacy: ID of the project to create the story in. Set this or workflow_state_id, not both; Shortcut recommends workflow_state_id. Example: 23.
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
started_at_overridestring- A manual override for the time/date the Story was started. Example: 2026-11-15T17:00:00Z.
story_linksarray- Relationships to create with existing stories. Each link has a verb (blocks, duplicates, or relates to) and the other story's ID: use object_id when the new story acts on that story, or subject_id when that story acts on the new one. Example: [{"verb": "blocks", "object_id": 1235}]
story_typestring- The type of story (feature, bug, chore). Example: feature.one of
featurechorebug sub_tasksarray- Sub-tasks for the new story (only when the Sub-task feature is enabled). Each item either links an existing story by story_id or creates a new sub-task story with a name (and optional owner_ids and workflow_state_id). Example: [{"story_id": 1200}, {"name": "Write migration"}]
tasksarray- Checklist tasks to create on the story. Each task needs a description and can set complete and owner_ids. Example: [{"description": "Write tests"}, {"description": "Update docs", "complete": false}]
workflow_state_idinteger- ID of the workflow state to create the story in (from list_workflows). Set this or project_id, not both. Example: 500000008.
shortcut_create_story_commentAdd a comment to a Shortcut story, optionally as a threaded reply.WriteCreate Story Comment
Add a comment to a Shortcut story, optionally as a threaded reply. Returns the created comment (ID, author ID, text, parent ID, created time, app URL). Use this to comment on a story. Set parent_id to reply in a thread. Use create_epic_comment for epics.
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
textstringrequired- The comment text. Example: Looks good, shipping today.
author_idstring- ID of the member to record as the author. Defaults to the owner of the API token. Example: 12345678-9abc-4def-8123-456789abcdef.
external_idstring- This field can be set to another unique ID. In the case that the comment has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
parent_idinteger- The ID of the Comment that this comment is threaded under. Example: 5600.
shortcut_create_story_from_templateCreate a Shortcut story from a story template, optionally overriding or adding to the template's values.WriteCreate Story from Template
Create a Shortcut story from a story template, optionally overriding or adding to the template's values. Returns the created story with its full details. Use this to start from a template. Use create_story for a blank story. Get a story_template_id from list_entity_templates first.
Inputs
story_template_idstringrequired- The id of the story template used to create this story. Example: 12345678-9abc-4def-8123-456789abcdef.
archivedboolean- Controls the story's archived state. Example: false.
commentsarray- Comments to add when the story is created, each with the comment text. Example: [{"text": "Reported by the support team."}]
completed_at_overridestring- A manual override for the time/date the Story was completed. Example: 2026-11-15T17:00:00Z.
created_atstring- The time/date the Story was created. Example: 2026-11-15T17:00:00Z.
custom_fieldsarray- Custom field values, each pairing a custom field ID with the ID of one of that field's allowed values (get both from list_custom_fields). Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
custom_fields_addarray- Custom field values to set, each pairing a custom field ID with one of its allowed value IDs (from list_custom_fields). Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
custom_fields_removearray- Custom fields from the template to leave unset, each identified by its custom field ID. Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef"}]
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
descriptionstring- The description of the story. Example: Steps to reproduce: ...
epic_idinteger- The ID of the epic the story belongs to. Example: 56.
estimateinteger- Point estimate. Leave empty for unestimated. Example: 3.
external_idstring- This field can be set to another unique ID. In the case that the Story has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
external_linksarray- External URLs to associate (for example support tickets or design files). Example: ["https://support.example.com/tickets/42"]
external_links_addarray- An array of External Links associated with this story. These will be added to any links provided by the template. Cannot be used in conjunction with `external_links`. Example: ["value"]
external_links_removearray- An array of External Links associated with this story. These will be removed from any links provided by the template. Cannot be used in conjunction with `external_links`. Example: ["value"]
file_idsarray- An array of IDs of files attached to the story. Example: [1234, 1235]
file_ids_addarray- An array of IDs of files attached to the story in addition to files from the template. Cannot be used in conjunction with `file_ids`. Example: [1234, 1235]
file_ids_removearray- An array of IDs of files removed from files from the template. Cannot be used in conjunction with `file_ids`. Example: [1234, 1235]
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
follower_ids_addarray- The UUIDs of the new followers to be added in addition to followers from the template. Cannot be used in conjunction with `follower_ids.`. Example: ["12345678-9abc-4def-8123-456789abcdef"]
follower_ids_removearray- The UUIDs of the new followers to be removed from followers from the template. Cannot be used in conjunction with `follower_ids`. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idstring- ID of the team (group) to associate, from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
iteration_idinteger- The ID of the iteration the story belongs to. Example: 78.
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
labels_addarray- Labels to add, each an object with a name (created if it doesn't exist yet) and an optional color. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
labels_removearray- Template labels to leave off the new story, each identified by name. Example: [{"name": "needs-triage"}]
linked_file_idsarray- An array of IDs of linked files attached to the story. Example: [1234, 1235]
linked_file_ids_addarray- An array of IDs of linked files attached to the story in addition to files from the template. Cannot be used in conjunction with `linked_files`. Example: [1234, 1235]
linked_file_ids_removearray- An array of IDs of linked files removed from files from the template. Cannot be used in conjunction with `linked_files.`. Example: [1234, 1235]
move_tostring- Move the story to the first or last position in its workflow state. Example: last.one of
lastfirst namestring- The name of the story. Must be provided if the template does not provide a name. Example: Fix login redirect loop.
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
owner_ids_addarray- The UUIDs of the new owners to be added in addition to owners from the template. Cannot be used in conjunction with `owners`. Example: ["12345678-9abc-4def-8123-456789abcdef"]
owner_ids_removearray- The UUIDs of the new owners to be removed from owners from the template. Cannot be used in conjunction with `owners`. Example: ["12345678-9abc-4def-8123-456789abcdef"]
parent_story_idinteger- The ID of the parent story to associate with this story (making the created story a sub-task). Field only applicable when Sub-task feature is enabled. Example: 1200.
project_idinteger- The ID of the project the story belongs to. Example: 23.
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
source_task_idinteger- Given this story was converted from a task in another story, this is the original task ID that was converted to this story. Example: 4321.
started_at_overridestring- A manual override for the time/date the Story was started. Example: 2026-11-15T17:00:00Z.
story_linksarray- Relationships to create with existing stories. Each link has a verb (blocks, duplicates, or relates to) and the other story's ID: use object_id when the new story acts on that story, or subject_id when that story acts on the new one. Example: [{"verb": "blocks", "object_id": 1235}]
story_typestring- The type of story (feature, bug, chore). Example: feature.one of
featurechorebug sub_tasksarray- Sub-tasks for the new story (only when the Sub-task feature is enabled). Each item either links an existing story by story_id or creates a new sub-task story with a name. Example: [{"story_id": 1200}, {"name": "Write migration"}]
tasksarray- Checklist tasks to create on the story. Each task needs a description and can set complete and owner_ids. Example: [{"description": "Write tests"}, {"description": "Update docs", "complete": false}]
updated_atstring- The time/date the Story was updated. Example: 2026-11-15T17:00:00Z.
workflow_state_idinteger- ID of the workflow state (from list_workflows). Example: 500000008.
shortcut_create_story_linkCreate a relationship between two Shortcut stories: the subject story blocks, duplicates, or relates to the object story.WriteCreate Story Link
Create a relationship between two Shortcut stories: the subject story blocks, duplicates, or relates to the object story. Returns the story link (ID, subject ID, verb, object ID). Use this to mark dependencies or duplicates. Use update_story_link to change an existing link.
Inputs
object_idintegerrequired- The ID of the object Story. Example: 1235.
subject_idintegerrequired- The ID of the subject Story. Example: 1234.
verbstringrequired- The type of link. Example: blocks.one of
blocksduplicatesrelates to
shortcut_create_story_reactionAdd an emoji reaction to a comment on a Shortcut story.WriteAdd Comment Reaction
Add an emoji reaction to a comment on a Shortcut story. Returns the comment's reactions (emoji and the member IDs who reacted). Use this to react to a story comment. Use delete_story_reaction to remove a reaction.
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
emojistringrequired- Emoji short-code to react with. Example: :thumbsup:.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_create_taskAdd a checklist task to a Shortcut story.WriteCreate Task
Add a checklist task to a Shortcut story. Returns the created task (ID, story ID, description, complete flag, owner IDs, position). Use create_task for checklist items inside a story. Use create_story with parent_story_id for a sub-task story.
Inputs
descriptionstringrequired- The Task description. Example: Write tests.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
completeboolean- True/false boolean indicating whether the Task is completed. Defaults to false. Example: true.
external_idstring- This field can be set to another unique ID. In the case that the Task has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
shortcut_link_doc_to_epicLink a Shortcut Doc to an epic.WriteLink Doc to Epic
Link a Shortcut Doc to an epic. Returns an empty response on success. Use this to attach a spec or doc to an epic. Use unlink_doc_from_epic to remove the link.
- Idempotent
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_reply_epic_commentReply to an existing comment on a Shortcut epic.WriteReply to Epic Comment
Reply to an existing comment on a Shortcut epic. Returns the created reply comment. Use this to answer inside a thread. Use create_epic_comment to start a new thread.
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
textstringrequired- The comment text. Example: Looks good, shipping today.
author_idstring- ID of the member to record as the author. Defaults to the owner of the API token. Example: 12345678-9abc-4def-8123-456789abcdef.
external_idstring- This field can be set to another unique ID. In the case that the comment has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
shortcut_update_categoryRename, recolor, or archive a Shortcut objective category.WriteUpdate Category
Rename, recolor, or archive a Shortcut objective category. Returns the updated category. Use this to edit a category. Use delete_category to remove it.
- Idempotent
Inputs
category_idintegerrequired- Numeric ID of the category (from list_categories). Example: 12.
archivedboolean- A true/false boolean indicating if the Category has been archived. Example: false.
colorstring- The hex color to be displayed with the Category (for example, "#ff0000"). Example: #3366ff.
namestring- The new name of the Category. Example: Growth.
shortcut_update_docUpdate the title or content of a Shortcut Doc, from Markdown or HTML.WriteUpdate Doc
Update the title or content of a Shortcut Doc, from Markdown or HTML. Returns the updated doc. Use this to edit a doc. Set content_format to markdown when sending Markdown; it defaults to HTML.
- Idempotent
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
contentstring- Doc body. Sent as HTML unless content_format is markdown. Example: # Launch plan Goals...
content_formatstring- Format of content: markdown or html. Defaults to html when omitted, so set markdown when sending Markdown. Example: markdown.one of
markdownhtml titlestring- The new title for the document. Example: Q4 launch plan.
shortcut_update_entity_templateUpdate a Shortcut story template's name or story contents.WriteUpdate Story Template
Update a Shortcut story template's name or story contents. Returns the updated template. Use this to change what a template fills in. Use delete_entity_template to remove it.
- Idempotent
Inputs
template_idstringrequired- UUID of the story template (from list_entity_templates). Example: 12345678-9abc-4def-8123-456789abcdef.
namestring- The updated template name. Example: Bug report.
story_contentsobject- The story fields this template fills in, such as name, description, story_type, workflow_state_id, owner_ids, labels, tasks, estimate, epic_id, iteration_id, and group_id. Example: {"name": "Bug: ", "story_type": "bug", "labels": [{"name": "triage"}], "tasks": [{"description": "Add repro steps"}]}
shortcut_update_epicUpdate fields on a Shortcut epic, such as name, description, epic state, owners, deadline, objectives, or archived state.WriteUpdate Epic
Update fields on a Shortcut epic, such as name, description, epic state, owners, deadline, objectives, or archived state. Returns the updated epic. Use this to edit an epic. Use create_epic_health to post a health update.
- Idempotent
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
after_idinteger- The ID of the Epic we want to move this Epic after. Example: 1231.
archivedboolean- A true/false boolean indicating whether the Epic is in archived state. Example: false.
before_idinteger- The ID of the Epic we want to move this Epic before. Example: 1230.
completed_at_overridestring- A manual override for the time/date the Epic was completed. Example: 2026-11-15T17:00:00Z.
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
descriptionstring- The Epic's description. Example: Redesign the checkout flow to cut drop-off.
epic_state_idinteger- ID of the epic state (from get_epic_workflow). Example: 500000002.
external_idstring- This field can be set to another unique ID. In the case that the Epic has been imported from another tool, the ID in the other tool can be indicated here. Example: JIRA-1234.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idsarray- IDs of the teams (groups) to associate, from list_groups. Example: ["12345678-9abc-4def-8123-456789abcdef"]
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
namestring- The Epic's name. Example: Checkout redesign.
objective_idsarray- IDs of the objectives this epic supports, from list_objectives. Example: [1234, 1235]
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
planned_start_datestring- The Epic's planned start date. Example: 2026-11-15T17:00:00Z.
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
started_at_overridestring- A manual override for the time/date the Epic was started. Example: 2026-11-15T17:00:00Z.
shortcut_update_epic_commentReplace the text of a comment on a Shortcut epic.WriteUpdate Epic Comment
Replace the text of a comment on a Shortcut epic. Returns the updated comment. Use this to edit an epic comment. Use update_story_comment for story comments.
- Idempotent
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
textstringrequired- The updated comment text. Example: Looks good, shipping today.
shortcut_update_fileUpdate the name, description, or external ID of an uploaded Shortcut file (not its contents).WriteUpdate File
Update the name, description, or external ID of an uploaded Shortcut file (not its contents). Returns the updated file. Use this to rename or describe a file. Use delete_file to remove it.
- Idempotent
Inputs
file_idintegerrequired- Numeric ID of the uploaded file (from list_files). Example: 88.
descriptionstring- The description of the file. Example: Final design spec.
external_idstring- An additional ID that you may wish to assign to the file. Example: JIRA-1234.
namestring- The name of the file. Example: design-spec.pdf.
uploader_idstring- The unique ID assigned to the Member who uploaded the file to Shortcut. Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_update_groupUpdate a Shortcut team (group), such as its name, members, workflows, default workflow, or archived state.WriteUpdate Team
Update a Shortcut team (group), such as its name, members, workflows, default workflow, or archived state. Returns the updated team. Use this to edit a team. member_ids and workflow_ids are set as given.
- Idempotent
Inputs
group_idstringrequired- UUID of the team (group), from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
archivedboolean- Whether or not this Group is archived. Example: false.
card_aging_modestring- The card aging mode for stories in this Group: "gradual" (fixed fade steps at 1, 2, and 4 weeks), "immediate", or "off" (explicitly disabled for this Group). Set to null to inherit the Workspace default. Example: off.one of
offgradualimmediate card_aging_threshold_daysinteger- The number of days an in-progress Story can go without activity before it is considered stale. Required when card_aging_mode is "immediate"; not allowed otherwise. Example: 14.
colorstring- The color you wish to use for the Group in the system. Example: #3366ff.
color_keystring- The color key you wish to use for the Group in the system. Example: blue.one of
bluepurplemidnight-blueorangeyellow-greenbrassgrayfuchsiayellowpinksky-bluegreenredblackslateturquoise default_workflow_idinteger- The ID of the default workflow for stories created in this group. Example: 500000005.
descriptionstring- The description of this Group. Example: Owns the iOS and Android apps.
display_icon_idstring- The Icon id for the avatar of this Group. Example: 12345678-9abc-4def-8123-456789abcdef.
member_idsarray- The team's member IDs. The list you send replaces the current members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
mention_namestring- The mention name of this Group. Example: mobile-team.
namestring- The name of this Group. Example: Mobile.
workflow_idsarray- The team's workflow IDs. The list you send replaces the current workflows. Example: [1234, 1235]
shortcut_update_healthUpdate the status or text of an existing epic or objective health record in Shortcut.WriteUpdate Health
Update the status or text of an existing epic or objective health record in Shortcut. Returns the updated health record. Use this to correct a posted update. Use create_epic_health or create_objective_health to post a new one. Get the health record ID from get_epic_health, get_objective_health, or a health history tool.
- Idempotent
Inputs
health_idstringrequired- UUID of the health record. Example: 12345678-9abc-4def-8123-456789abcdef.
statusstring- The health status of the Epic. Example: At Risk.one of
At RiskOn TrackOff TrackNo Health textstring- The description of the Health status. Example: Looks good, shipping today.
shortcut_update_iterationUpdate a Shortcut iteration's name, description, dates, teams, followers, or labels.WriteUpdate Iteration
Update a Shortcut iteration's name, description, dates, teams, followers, or labels. Returns the updated iteration. Use this to edit a sprint. Use delete_iteration to remove it.
- Idempotent
Inputs
iteration_idintegerrequired- Numeric ID of the iteration (from list_iterations). Example: 78.
descriptionstring- The description of the Iteration. Example: Focus: checkout bugs.
end_datestring- New end date, as YYYY-MM-DD. Example: 2026-11-13.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idsarray- IDs of the teams (groups) to associate, from list_groups. Example: ["12345678-9abc-4def-8123-456789abcdef"]
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
namestring- The name of this Iteration. Example: Sprint 42.
start_datestring- New start date, as YYYY-MM-DD. Example: 2026-11-02.
shortcut_update_key_resultUpdate a Shortcut key result's name or its initial, observed, or target value.WriteUpdate Key Result
Update a Shortcut key result's name or its initial, observed, or target value. Returns the updated key result with its progress. Use this to record progress on an objective's key result.
- Idempotent
Inputs
key_result_idstringrequired- UUID of the key result (from get_objective's key_result_ids). Example: 12345678-9abc-4def-8123-456789abcdef.
initial_observed_valueobject- The key result's starting value: an object with numeric_value (a decimal string with at most two decimals) or boolean_value. Example: {"numeric_value": "10"}
namestring- The name of the Key Result. Example: Reach 1,000 paid workspaces.
observed_valueobject- The key result's current observed value: an object with numeric_value (a decimal string with at most two decimals) or boolean_value. Example: {"numeric_value": "42.5"}
target_valueobject- The key result's target value: an object with numeric_value (a decimal string with at most two decimals) or boolean_value. Example: {"numeric_value": "100"}
shortcut_update_labelRename, recolor, describe, or archive a Shortcut label.WriteUpdate Label
Rename, recolor, describe, or archive a Shortcut label. Returns the updated label. Use this to edit a label. Use delete_label to remove it entirely.
- Idempotent
Inputs
label_idintegerrequired- Numeric ID of the label (from list_labels). Example: 345.
archivedboolean- A true/false boolean indicating if the Label has been archived. Example: false.
colorstring- The hex color to be displayed with the Label (for example, "#ff0000"). Example: #3366ff.
descriptionstring- The new description of the label. Example: Server-side work.
namestring- The new name of the label. Example: backend.
shortcut_update_linked_fileUpdate a Shortcut linked file's name, URL, type, description, or story.WriteUpdate Linked File
Update a Shortcut linked file's name, URL, type, description, or story. Returns the updated linked file. Use this to fix a link. Use delete_linked_file to remove it.
- Idempotent
Inputs
linked_file_idintegerrequired- Numeric ID of the linked file (from list_linked_files). Example: 99.
descriptionstring- The description of the file. Example: Final design spec.
namestring- The name of the file. Example: Design spec.
sizeinteger- The filesize, if the integration provided it. Example: 20480.
story_idinteger- The ID of the linked story. Example: 1234.
thumbnail_urlstring- The URL of the thumbnail, if the integration provided it. Example: https://example.com/thumb.png.
typestring- The integration type of the file (e.g. google, dropbox, box). Example: google.one of
googleurldropboxboxonedrive uploader_idstring- The UUID of the member that uploaded the file. Example: 12345678-9abc-4def-8123-456789abcdef.
urlstring- The URL of linked file. Example: https://drive.google.com/file/d/abc123/view.
shortcut_update_objectiveUpdate a Shortcut objective's name, description, state, categories, dates, position, or archived state.WriteUpdate Objective
Update a Shortcut objective's name, description, state, categories, dates, position, or archived state. Returns the updated objective. Use this to edit an objective. Use create_objective_health to post a health update.
- Idempotent
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
after_idinteger- The ID of the Objective we want to move this Objective after. Example: 1231.
archivedboolean- A boolean indicating whether the Objective is archived or not. Example: false.
before_idinteger- The ID of the Objective we want to move this Objective before. Example: 1230.
categoriesarray- Categories to attach, each an object with a name (created if it doesn't exist yet) and an optional hex color. Example: [{"name": "Growth"}]
completed_at_overridestring- A manual override for the time/date the Objective was completed. Example: 2026-11-15T17:00:00Z.
descriptionstring- The Objective's description. Example: Increase paid conversions in Q4.
namestring- The name of the Objective. Example: Grow self-serve revenue.
started_at_overridestring- A manual override for the time/date the Objective was started. Example: 2026-11-15T17:00:00Z.
statestring- The workflow state that the Objective is in. Example: in progress.one of
in progressto dodone
shortcut_update_projectUpdate a Shortcut project's name, description, color, team, followers, or archived state.WriteUpdate Project
Update a Shortcut project's name, description, color, team, followers, or archived state. Returns the updated project. Use this to edit a project. Use delete_project to remove an empty one.
- Idempotent
Inputs
project_idintegerrequired- Numeric ID of the project (from list_projects). Example: 23.
abbreviationstring- The Project abbreviation used in Story summaries. Should be kept to 3 characters at most. Example: WEB.
archivedboolean- A true/false boolean indicating whether the Story is in archived state. Example: false.
colorstring- The color that represents the Project in the UI. Example: #3366ff.
days_to_thermometerinteger- The number of days before the thermometer appears in the Story summary. Example: 14.
descriptionstring- The Project's description. Example: Customer-facing web app.
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
namestring- The Project's name. Example: Web App.
show_thermometerboolean- Configuration to enable or disable thermometers in the Story summary. Example: false.
team_idinteger- The ID of the team the project belongs to. Example: 1.
shortcut_update_storiesApply the same change to many Shortcut stories at once, such as moving state, setting epic or iteration, or adding and removing owners, followers, or labels.WriteUpdate Multiple Stories
Apply the same change to many Shortcut stories at once, such as moving state, setting epic or iteration, or adding and removing owners, followers, or labels. Returns an array of the updated stories. Use update_stories for bulk edits. Use update_story for one story.
- Idempotent
Inputs
story_idsarrayrequired- The Ids of the Stories you wish to update. Example: [1234, 1235]
after_idinteger- The ID of the story that the stories are to be moved below. Example: 1231.
archivedboolean- If the Stories should be archived or not. Example: false.
before_idinteger- The ID of the story that the stories are to be moved before. Example: 1230.
custom_fields_addarray- Custom field values to set, each pairing a custom field ID with one of its allowed value IDs (from list_custom_fields). Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
custom_fields_removearray- Custom field values to clear, each identified by the custom field ID and the value ID currently set. Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
epic_idinteger- The ID of the epic the story belongs to. Example: 56.
estimateinteger- Point estimate. Leave empty for unestimated. Example: 3.
external_linksarray- External URLs to associate (for example support tickets or design files). Example: ["https://support.example.com/tickets/42"]
follower_ids_addarray- The UUIDs of the new followers to be added. Example: ["12345678-9abc-4def-8123-456789abcdef"]
follower_ids_removearray- The UUIDs of the followers to be removed. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idstring- ID of the team (group) to associate, from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
iteration_idinteger- The ID of the iteration the story belongs to. Example: 78.
labels_addarray- Labels to add, each an object with a name (created if it doesn't exist yet) and an optional color. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
labels_removearray- Labels to remove, each an object with the label's name. Example: [{"name": "urgent"}]
move_tostring- Move the story to the first or last position in its workflow state. Example: last.one of
lastfirst owner_ids_addarray- The UUIDs of the new owners to be added. Example: ["12345678-9abc-4def-8123-456789abcdef"]
owner_ids_removearray- The UUIDs of the owners to be removed. Example: ["12345678-9abc-4def-8123-456789abcdef"]
project_idinteger- The ID of the Project the Stories should belong to. Example: 23.
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
story_typestring- The type of story (feature, bug, chore). Example: feature.one of
featurechorebug workflow_state_idinteger- ID of the workflow state (from list_workflows). Example: 500000008.
shortcut_update_storyUpdate fields on an existing Shortcut story, such as name, description, workflow state, owners, epic, iteration, estimate, or labels.WriteUpdate Story
Update fields on an existing Shortcut story, such as name, description, workflow state, owners, epic, iteration, estimate, or labels. Returns the updated story with its full details. Use update_story for one story. Use update_stories to apply the same change to many stories.
- Idempotent
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
after_idinteger- The ID of the story we want to move this story after. Example: 1231.
archivedboolean- True if the story is archived, otherwise false. Example: false.
before_idinteger- The ID of the story we want to move this story before. Example: 1230.
branch_idsarray- An array of IDs of Branches attached to the story. Example: [1234, 1235]
commit_idsarray- An array of IDs of Commits attached to the story. Example: [1234, 1235]
completed_at_overridestring- A manual override for the time/date the Story was completed. Example: 2026-11-15T17:00:00Z.
custom_fieldsarray- Custom field values, each pairing a custom field ID with the ID of one of that field's allowed values (get both from list_custom_fields). Example: [{"field_id": "12345678-9abc-4def-8123-456789abcdef", "value_id": "12345678-9abc-4def-8123-456789abcdef"}]
deadlinestring- Due date as an ISO 8601 date-time. Example: 2026-11-15T17:00:00Z.
descriptionstring- New story description in Markdown. Example: Steps to reproduce: ...
epic_idinteger- The ID of the epic the story belongs to. Example: 56.
estimateinteger- Point estimate. Leave empty for unestimated. Example: 3.
external_linksarray- External URLs to associate (for example support tickets or design files). Example: ["https://support.example.com/tickets/42"]
file_idsarray- An array of IDs of files attached to the story. Example: [1234, 1235]
follower_idsarray- IDs of the members who follow it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
group_idstring- ID of the team (group) to associate, from list_groups. Example: 12345678-9abc-4def-8123-456789abcdef.
iteration_idinteger- The ID of the iteration the story belongs to. Example: 78.
labelsarray- Labels to attach. Each label is an object with a name (created if it doesn't exist yet) and an optional hex color and description. Example: [{"name": "backend"}, {"name": "urgent", "color": "#ff0000"}]
linked_file_idsarray- An array of IDs of linked files attached to the story. Example: [1234, 1235]
move_tostring- Move the story to the first or last position in its workflow state. Example: last.one of
lastfirst namestring- The title of the story. Example: Fix login redirect loop.
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
parent_story_idinteger- The parent story id. If you want to unset this value set parent_story_id to null. Example: 1200.
project_idinteger- The ID of the project the story belongs to. Example: 23.
pull_request_idsarray- An array of IDs of Pull/Merge Requests attached to the story. Example: [1234, 1235]
requested_by_idstring- ID of the member who requested it, from list_members. Example: 12345678-9abc-4def-8123-456789abcdef.
started_at_overridestring- A manual override for the time/date the Story was started. Example: 2026-11-15T17:00:00Z.
story_typestring- The type of story (feature, bug, chore). Example: feature.one of
featurechorebug sub_tasksarray- The complete, ordered list of sub-task stories for this parent story. Stories missing from the list are unlinked, new ones are linked, and the order sets their positions. Example: [{"story_id": 1200}, {"story_id": 1201}]
workflow_state_idinteger- ID of the workflow state (from list_workflows). Example: 500000008.
shortcut_update_story_commentReplace the text of a comment on a Shortcut story.WriteUpdate Story Comment
Replace the text of a comment on a Shortcut story. Returns the updated comment. Use this to edit a story comment. Use update_epic_comment for epic comments.
- Idempotent
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
textstringrequired- The updated comment text. Example: Looks good, shipping today.
shortcut_update_story_linkChange the verb or the stories of an existing Shortcut story link.WriteUpdate Story Link
Change the verb or the stories of an existing Shortcut story link. Returns the updated story link. Use this to change a relationship. Use delete_story_link to remove it.
- Idempotent
Inputs
story_link_idintegerrequired- Numeric ID of the story link (from get_story's story_links). Example: 910.
object_idinteger- The ID of the object Story. Example: 1235.
subject_idinteger- The ID of the subject Story. Example: 1234.
verbstring- The type of link. Example: blocks.one of
blocksduplicatesrelates to
shortcut_update_taskUpdate a checklist task on a Shortcut story, for example to mark it complete, change its text, owners, or position.WriteUpdate Task
Update a checklist task on a Shortcut story, for example to mark it complete, change its text, owners, or position. Returns the updated task. Use this to tick off or edit a task. Use delete_task to remove it.
- Idempotent
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
task_idintegerrequired- Numeric ID of the task (from get_story). Example: 4321.
after_idinteger- Move task after this task ID. Example: 1231.
before_idinteger- Move task before this task ID. Example: 1230.
completeboolean- A true/false boolean indicating whether the task is complete. Example: true.
descriptionstring- The Task's description. Example: Write tests.
owner_idsarray- IDs of the members who own it, from list_members. Example: ["12345678-9abc-4def-8123-456789abcdef"]
shortcut_delete_categoryPermanently delete a Shortcut objective category.DestructiveDelete Category
Permanently delete a Shortcut objective category. Returns an empty response on success. Use this to remove a category. Use update_category with archived: true to hide it instead.
- Idempotent
Inputs
category_idintegerrequired- Numeric ID of the category (from list_categories). Example: 12.
shortcut_delete_docPermanently delete a Shortcut Doc.DestructiveDelete Doc
Permanently delete a Shortcut Doc. Requires admin access to the doc. Returns an empty response on success. Use this to remove a doc.
- Idempotent
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_delete_entity_templateDelete a Shortcut story template.DestructiveDelete Story Template
Delete a Shortcut story template. Returns an empty response on success. Use this to remove a template. Stories already created from it are not changed.
- Idempotent
Inputs
template_idstringrequired- UUID of the story template (from list_entity_templates). Example: 12345678-9abc-4def-8123-456789abcdef.
shortcut_delete_epicPermanently delete a Shortcut epic.DestructiveDelete Epic
Permanently delete a Shortcut epic. Returns an empty response on success. Use this to remove an epic. To keep history, archive it with update_epic (archived: true) instead.
- Idempotent
Inputs
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_delete_epic_commentDelete a comment from a Shortcut epic.DestructiveDelete Epic Comment
Delete a comment from a Shortcut epic. Returns an empty response on success. Use this to remove an epic comment. Use delete_story_comment for story comments.
- Idempotent
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
shortcut_delete_filePermanently delete an uploaded file from Shortcut.DestructiveDelete File
Permanently delete an uploaded file from Shortcut. Returns an empty response on success. Use this to remove an uploaded file. Use delete_linked_file for linked files.
- Idempotent
Inputs
file_idintegerrequired- Numeric ID of the uploaded file (from list_files). Example: 88.
shortcut_delete_iterationPermanently delete a Shortcut iteration.DestructiveDelete Iteration
Permanently delete a Shortcut iteration. Returns an empty response on success. Use this to remove a sprint. Its stories stay in the workspace without an iteration.
- Idempotent
Inputs
iteration_idintegerrequired- Numeric ID of the iteration (from list_iterations). Example: 78.
shortcut_delete_labelPermanently delete a Shortcut label.DestructiveDelete Label
Permanently delete a Shortcut label. Returns an empty response on success. Use this to remove a label. Use update_label with archived: true to hide it instead.
- Idempotent
Inputs
label_idintegerrequired- Numeric ID of the label (from list_labels). Example: 345.
shortcut_delete_linked_fileDelete a linked file from Shortcut.DestructiveDelete Linked File
Delete a linked file from Shortcut. Returns an empty response on success. Use this to remove a link added with create_linked_file. The external file is not touched.
- Idempotent
Inputs
linked_file_idintegerrequired- Numeric ID of the linked file (from list_linked_files). Example: 99.
shortcut_delete_objectivePermanently delete a Shortcut objective.DestructiveDelete Objective
Permanently delete a Shortcut objective. Returns an empty response on success. Use this to remove an objective. Use update_objective with archived: true to hide it instead.
- Idempotent
Inputs
objective_idintegerrequired- Numeric ID of the objective (from list_objectives). Example: 90.
shortcut_delete_projectDelete a Shortcut project.DestructiveDelete Project
Delete a Shortcut project. It must have no stories left. Returns an empty response on success; a 422 error if stories remain. Move or delete the project's stories first (list_project_stories, update_stories).
- Idempotent
Inputs
project_idintegerrequired- Numeric ID of the project (from list_projects). Example: 23.
shortcut_delete_storiesPermanently delete several archived Shortcut stories at once.DestructiveDelete Multiple Stories
Permanently delete several archived Shortcut stories at once. Returns an empty response on success. Use this for bulk deletion. Stories must be archived first (update_stories with archived: true).
- Idempotent
Inputs
story_idsarrayrequired- An array of IDs of Stories to delete. Example: [1234, 1235]
shortcut_delete_storyPermanently delete a Shortcut story.DestructiveDelete Story
Permanently delete a Shortcut story. Returns an empty response on success. Use delete_story to remove one story. To keep history, archive it with update_story (archived: true) instead.
- Idempotent
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_delete_story_commentDelete a comment from a Shortcut story.DestructiveDelete Story Comment
Delete a comment from a Shortcut story. Returns an empty response on success. Use this to remove a story comment. Use delete_epic_comment for epic comments.
- Idempotent
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_delete_story_linkRemove a relationship between two Shortcut stories.DestructiveDelete Story Link
Remove a relationship between two Shortcut stories. Returns an empty response on success. Use this to unlink stories created with create_story_link.
- Idempotent
Inputs
story_link_idintegerrequired- Numeric ID of the story link (from get_story's story_links). Example: 910.
shortcut_delete_story_reactionRemove an emoji reaction from a comment on a Shortcut story.DestructiveRemove Comment Reaction
Remove an emoji reaction from a comment on a Shortcut story. Returns an empty response on success. Use this to undo a reaction added with create_story_reaction.
- Idempotent
Inputs
comment_idintegerrequired- Numeric ID of the comment. Example: 5678.
emojistringrequired- Emoji short-code to react with. Example: :thumbsup:.
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
shortcut_delete_taskDelete a checklist task from a Shortcut story.DestructiveDelete Task
Delete a checklist task from a Shortcut story. Returns an empty response on success. Use this to remove a task. Use update_task with complete: true to mark it done instead.
- Idempotent
Inputs
story_idintegerrequired- Numeric ID of the story (shown in its URL, for example 1234 in app.shortcut.com/org/story/1234). Example: 1234.
task_idintegerrequired- Numeric ID of the task (from get_story). Example: 4321.
shortcut_unlink_doc_from_epicRemove the link between a Shortcut Doc and an epic.DestructiveUnlink Doc from Epic
Remove the link between a Shortcut Doc and an epic. Returns an empty response on success. Use this to undo link_doc_to_epic. The doc and epic are not deleted.
- Idempotent
Inputs
doc_idstringrequired- UUID of the doc (from list_docs or search_docs). Example: 12345678-9abc-4def-8123-456789abcdef.
epic_idintegerrequired- Numeric ID of the epic (from list_epics or search_epics). Example: 56.
No tools match.