> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Shortcut

> Connect Shortcut to your Atako agents — 10 read and 4 write actions.

Let your agents search, create and update Shortcut stories, comment on them, add tasks and read epics, workflows, teams, members, labels and iterations.

## Connection

* **Authentication**: API key (API token).

<Note>
  Shortcut → Settings → API Tokens ([https://app.shortcut.com/settings/account/api-tokens](https://app.shortcut.com/settings/account/api-tokens)): enter a name, generate the token and copy it. A Shortcut API token has no scopes: it acts with the full rights of the member who created it, in their workspace.

  See [Shortcut's documentation](https://app.shortcut.com/settings/account/api-tokens).
</Note>

## Read actions (10)

| Action | Description |
| - | - |
| `get_current_member` | Get the member behind the API token: id (UUID), name, mention\_name, role and workspace (url\_slug, estimate\_scale). |
| `get_epic` | Get an epic by its numeric id (name, description, state, owners, dates, story stats). |
| `get_story` | Get a story by its numeric id, with its description, workflow\_state\_id, owner\_ids, estimate, labels, comments and its tasks (checklist items: id, description, complete, owner\_ids). |
| `list_epics` | List epics, paginated (page from 1, page\_size 1-250, default 10); includes\_description adds their descriptions. |
| `list_groups` | List teams (API "groups": id UUID, name, mention\_name, member\_ids, workflow\_ids). archived true returns only archived teams, false only active ones. |
| `list_iterations` | List iterations (id, name, status unstarted/started/done, start\_date, end\_date, group\_ids). |
| `list_labels` | List labels (id, name, color, archived, stats); slim true returns them without stats. |
| `list_members` | List workspace members (id UUID, role, disabled, profile with name, mention\_name and email). disabled true returns only disabled members, false only enabled ones. |
| `list_workflows` | List workflows (id, name, default\_state\_id, team\_id) with their states (id, name, type = category unstarted, started or finished): the source of workflow\_state\_id values. |
| `search_stories` | Search stories with Shortcut search operators (AND between terms, plain words match title, description and comments). Operators: type:feature\|bug\|chore, state:"Ready for Dev", is:unstarted\|started\|done, is:blocked, is:overdue, is:archived, owner:\<mention\_name>, requester:\<mention\_name>, team:"Team name", epic:"Epic name", label:"Label", estimate:3, is:unestimated, id:123, title:"…", description:"…", comment:"…", has:owner\|epic\|comment\|task\|label\|deadline, dates created:\|updated:\|completed:\|moved:\|due: with YYYY-MM-DD, YYYY-MM-DD..YYYY-MM-DD, \*..YYYY-MM-DD or today/yesterday; prefix ! or - to negate (!is:done). page\_size 1-250; detail "slim" omits descriptions and comments (default "full"). Paging: the response "next" is a URL path — pass only the value of its "next" query parameter as next. |

## Write actions (4)

| Action | Description |
| - | - |
| `create_story` | Create a story. Arguments: name (string, required, max 512); description (Markdown string); story\_type ("feature" \| "bug" \| "chore"); workflow\_state\_id (integer, from list\_workflows); owner\_ids (array of member UUID strings, from list\_members); requested\_by\_id (member UUID string); estimate (bare integer, or null for unestimated); epic\_id (integer, from list\_epics); iteration\_id (integer, from list\_iterations); group\_id (team UUID string, from list\_groups); labels (array of objects \{ name: string }); deadline (ISO 8601 date-time string). |
| `create_story_comment` | Add a comment to a story, as the token owner. Arguments: story\_id (integer, required); text (Markdown string, required, max 100000); parent\_id (integer, optional: id of the comment to reply to, from get\_story comments). |
| `create_task` | Add a task (checklist item) to a story. Arguments: story\_id (integer, required); description (string, required, max 2048); complete (boolean, default false); owner\_ids (array of member UUID strings). Existing tasks are listed by get\_story. |
| `update_story` | Update a story; only the fields sent change. Arguments: story\_id (integer, required); name (string, max 512); description (Markdown string); story\_type ("feature" \| "bug" \| "chore"); workflow\_state\_id (integer, from list\_workflows — moves the story to that state); owner\_ids (array of member UUID strings: the full list of owners); requested\_by\_id (member UUID string); estimate (bare integer, or null to unestimate); epic\_id, iteration\_id (integer, or null to detach); group\_id (team UUID string, or null); labels (array of objects \{ name: string }: the full list of labels); deadline (ISO 8601 date-time string, or null). |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.