Shortcut Stories, Epics & Iterations
Run sprint check-ins in Shortcut: search stories with the same query syntax as the app (owner:, state:, iteration:), see what is left in the current iteration or an epic, file new stories, move them through workflow states and leave comments.
Connect this API to an AI agent Browse all specs
What you can do with Shortcut Stories, Epics & Iterations via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /api/v3/member |
getCurrentMember | Get the token owner's member id and workspace |
| GET | /api/v3/members |
listMembers | List workspace members (to find owner ids) |
| GET | /api/v3/workflows |
listWorkflows | List workflows and their states (Backlog, In Progress, Done) |
| GET | /api/v3/groups |
listTeams | List teams |
| GET | /api/v3/search/stories |
searchStories | Search stories with Shortcut search syntax |
| GET | /api/v3/stories/{story-public-id} |
getStory | Get a story with its description, state, owners and tasks |
| PUT | /api/v3/stories/{story-public-id} |
updateStory | Move a story to another state, iteration or owner, or edit it |
| POST | /api/v3/stories |
createStory | Create a story (feature, bug or chore) |
| GET | /api/v3/stories/{story-public-id}/comments |
listStoryComments | List comments on a story |
| POST | /api/v3/stories/{story-public-id}/comments |
createStoryComment | Comment on a story |
| GET | /api/v3/epics |
listEpics | List epics with their state and progress |
| GET | /api/v3/epics/{epic-public-id}/stories |
listEpicStories | List the stories in an epic |
| GET | /api/v3/iterations |
listIterations | List iterations (sprints) with dates and status |
| GET | /api/v3/iterations/{iteration-public-id}/stories |
listIterationStories | List the stories in an iteration |
Authentication
shortcutToken
API key — sent as the Shortcut-Token header
Shortcut API token sent in the Shortcut-Token header.
How to get a credential
- In Shortcut, open Settings > Your Account > API Tokens (app.shortcut.com/settings/account/api-tokens).
- Enter a name (e.g.
VX Agents) and click Generate Token. - Copy the token; Shortcut shows it only once.
Permissions used
Tokens are per user and per workspace and act with that member's role.
| Role needed | Operations |
|---|---|
| Observer or above (read) | getCurrentMember, listMembers, listWorkflows, listTeams, searchStories, getStory, listStoryComments, listEpics, listEpicStories, listIterations, listIterationStories |
| Member or above (write) | createStory, updateStory, createStoryComment |
Common errors
- 401 Unauthorized: token missing, revoked or for another workspace. Generate a new token in the right workspace.
- 403 Forbidden: the member is an Observer and tried to write.
- 400 / 422: invalid body, e.g. an unknown
workflow_state_id, or a story withoutnameor a team/workflow state. - 429 Too Many Requests: limit is 200 requests per minute per token; wait a minute and retry.
Store the token as a VX Agents credential so it is never pasted into chat.
Usage guide
Setup
- Add an API key credential: a Shortcut API token (Settings > Your Account > API Tokens), sent in the
Shortcut-Tokenheader. The token is tied to one workspace and acts as you. - Call
getCurrentMemberonce for your memberid(a UUID) andlistWorkflowsfor the state ids (workflow_state_id) of Backlog, In Progress, Done and so on. Pin your team'sgroup_id(fromlistTeams) if you always file stories there.
Sprint check-in
listIterationsand pick the one withstatus: started(or searchiteration:"Sprint 42").listIterationStorieswith its id, orsearchStorieswith aquerysuch asowner:jane state:"In Progress",type:bug label:urgentorepic:"Billing revamp". Usedetail=slimfor shorter results and a smallpage_size; follownextfor more.getStoryfor the description, tasks, owners and links;listStoryCommentsfor the discussion.listEpics/listEpicStoriesto report progress on a larger piece of work.
Make changes
Show the user what will change and wait for confirmation first.
- New story:
createStorywithname(required) plusstory_type(feature,bug,chore),description(Markdown),workflow_state_idorgroup_id,owner_ids,iteration_id,epic_id,estimate,labels: [{"name": "urgent"}]. - Move or reassign:
updateStorywith only the fields that change, e.g.{"workflow_state_id": 500000008}or{"owner_ids": ["<member uuid>"], "iteration_id": 1234}. - Comment:
createStoryCommentwithtext(Markdown).
Good to know
- Story, epic and iteration ids are integers (the number in
app.shortcut.com/<workspace>/story/1234); member and team ids are UUIDs. - Dates are ISO 8601 UTC.
- Search queries use the same operators as the Shortcut search bar.
- Rate limit is 200 requests per minute per token.
- This spec cannot delete stories, epics or iterations.
Source: Shortcut REST API v3 reference (https://developer.shortcut.com/api/rest/v3), checked 2026-10-21.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Shortcut Stories, Epics & Iterations” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.