Shortcut Software Groups API
The Groups API from Shortcut Software — 3 operation(s) for groups.
The Groups API from Shortcut Software — 3 operation(s) for groups.
openapi: 3.0.0
info:
title: Shortcut Categories Groups API
version: '3.0'
description: Shortcut API
servers:
- url: https://api.app.shortcut.com
security:
- api_token: []
tags:
- name: Groups
paths:
/api/v3/groups:
get:
parameters:
- in: query
name: archived
description: Filter groups by their archived state. If true, returns only archived groups. If false, returns only unarchived groups. If not provided, returns all groups
required: false
schema:
type: boolean
responses:
'200':
description: Resource
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Group'
'400':
description: Schema mismatch
'404':
description: Resource does not exist
'422':
description: Unprocessable
operationId: listGroups
description: A group in our API maps to a "Team" within the Shortcut Product. A Team is a collection of Users that can be associated to Stories, Epics, and Iterations within Shortcut.
summary: List Groups
tags:
- Groups
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGroup'
required: true
responses:
'201':
description: Resource
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
description: Schema mismatch
'403':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UnusableEntitlementError'
'404':
description: Resource does not exist
'422':
description: Unprocessable
operationId: createGroup
summary: Create Group
tags:
- Groups
/api/v3/groups/{group-public-id}:
get:
parameters:
- in: path
name: group-public-id
description: The unique ID of the Group.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Resource
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
description: Schema mismatch
'404':
description: Resource does not exist
'422':
description: Unprocessable
operationId: getGroup
summary: Get Group
tags:
- Groups
put:
parameters:
- in: path
name: group-public-id
description: The unique ID of the Group.
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateGroup'
required: true
responses:
'200':
description: Resource
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
description: Schema mismatch
'403':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UnusableEntitlementError'
'404':
description: Resource does not exist
'422':
description: Unprocessable
operationId: updateGroup
summary: Update Group
tags:
- Groups
/api/v3/groups/{group-public-id}/stories:
get:
parameters:
- in: path
name: group-public-id
description: The unique ID of the Group.
required: true
schema:
type: string
format: uuid
- in: query
name: limit
description: The maximum number of results to return. (Defaults to 1000, max 1000)
required: false
schema:
type: integer
format: int64
- in: query
name: offset
description: The offset at which to begin returning results. (Defaults to 0)
required: false
schema:
type: integer
format: int64
responses:
'200':
description: Resource
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StorySlim'
'400':
description: Schema mismatch
'404':
description: Resource does not exist
'422':
description: Unprocessable
operationId: listGroupStories
description: List the Stories assigned to the Group. (By default, limited to 1,000).
summary: List Group Stories
tags:
- Groups
components:
schemas:
TypedStoryLink:
description: 'The type of Story Link. The string can be subject or object. '
type: object
properties:
entity_type:
description: A string description of this resource.
type: string
object_id:
description: The ID of the object Story.
type: integer
format: int64
verb:
description: How the subject Story acts on the object Story. This can be "blocks", "duplicates", or "relates to".
type: string
type:
description: This indicates whether the Story is the subject or object in the Story Link.
type: string
updated_at:
description: The time/date when the Story Link was last updated.
type: string
format: date-time
id:
description: The unique identifier of the Story Link.
type: integer
format: int64
subject_id:
description: The ID of the subject Story.
type: integer
format: int64
subject_workflow_state_id:
description: The workflow state of the "subject" story.
x-doc-skip: true
type: integer
format: int64
created_at:
description: The time/date when the Story Link was created.
type: string
format: date-time
additionalProperties: false
required:
- entity_type
- object_id
- verb
- type
- updated_at
- id
- subject_id
- subject_workflow_state_id
- created_at
SyncedItem:
x-doc-skip: true
description: The synced item for the story.
type: object
properties:
external_id:
description: The id used to reference an external entity.
type: string
url:
description: The url to the external entity.
type: string
additionalProperties: false
required:
- external_id
- url
StorySlim:
description: StorySlim represents the same resource as a Story, but is more light-weight. For certain fields it provides ids rather than full resources (e.g., `comment_ids` and `file_ids`) and it also excludes certain aggregate values (e.g., `cycle_time`). The `description` field can be optionally included. Use the [Get Story](#Get-Story) endpoint to fetch the unabridged payload for a Story.
type: object
properties:
app_url:
description: The Shortcut application url for the Story.
type: string
description:
description: The description of the Story.
type: string
archived:
description: True if the story has been archived or not.
type: boolean
started:
description: A true/false boolean indicating if the Story has been started.
type: boolean
story_links:
description: An array of story links attached to the Story.
type: array
items:
$ref: '#/components/schemas/TypedStoryLink'
entity_type:
description: A string description of this resource.
type: string
labels:
description: An array of labels attached to the story.
type: array
items:
$ref: '#/components/schemas/LabelSlim'
task_ids:
description: An array of IDs of Tasks attached to the story.
type: array
items:
type: integer
format: int64
mention_ids:
description: '`Deprecated:` use `member_mention_ids`.'
type: array
items:
type: string
format: uuid
synced_item:
$ref: '#/components/schemas/SyncedItem'
member_mention_ids:
description: An array of Member IDs that have been mentioned in the Story description.
type: array
items:
type: string
format: uuid
story_type:
description: The type of story (feature, bug, chore).
type: string
custom_fields:
description: An array of CustomField value assertions for the story.
type: array
items:
$ref: '#/components/schemas/StoryCustomField'
file_ids:
description: An array of IDs of Files attached to the story.
type: array
items:
type: integer
format: int64
num_tasks_completed:
description: The number of tasks on the story which are complete.
type: integer
format: int64
workflow_id:
description: The ID of the workflow the story belongs to.
type: integer
format: int64
completed_at_override:
description: A manual override for the time/date the Story was completed.
type: string
format: date-time
nullable: true
started_at:
description: The time/date the Story was started.
type: string
format: date-time
nullable: true
completed_at:
description: The time/date the Story was completed.
type: string
format: date-time
nullable: true
name:
description: The name of the story.
type: string
global_id:
x-doc-skip: true
type: string
completed:
description: A true/false boolean indicating if the Story has been completed.
type: boolean
blocker:
description: A true/false boolean indicating if the Story is currently a blocker of another story.
type: boolean
epic_id:
description: The ID of the epic the story belongs to.
type: integer
format: int64
nullable: true
story_template_id:
description: The ID of the story template used to create this story, or null if not created using a template.
type: string
format: uuid
nullable: true
external_links:
description: An array of external links (strings) associated with a Story
type: array
items:
type: string
previous_iteration_ids:
description: The IDs of the iteration the story belongs to.
type: array
items:
type: integer
format: int64
requested_by_id:
description: The ID of the Member that requested the story.
type: string
format: uuid
iteration_id:
description: The ID of the iteration the story belongs to.
type: integer
format: int64
nullable: true
sub_task_story_ids:
description: 'The Story IDs of Sub-tasks attached to the Story
Field only applicable when Sub-task feature is enabled.'
type: array
items:
type: integer
format: int64
formatted_vcs_branch_name:
description: The formatted branch name for this story.
x-doc-skip: true
type: string
nullable: true
label_ids:
description: An array of label ids attached to the story.
type: array
items:
type: integer
format: int64
started_at_override:
description: A manual override for the time/date the Story was started.
type: string
format: date-time
nullable: true
group_id:
description: The ID of the group associated with the story.
type: string
format: uuid
nullable: true
workflow_state_id:
description: The ID of the workflow state the story is currently in.
type: integer
format: int64
updated_at:
description: The time/date the Story was updated.
type: string
format: date-time
nullable: true
group_mention_ids:
description: An array of Group IDs that have been mentioned in the Story description.
type: array
items:
type: string
format: uuid
follower_ids:
description: An array of UUIDs for any Members listed as Followers.
type: array
items:
type: string
format: uuid
owner_ids:
description: An array of UUIDs of the owners of this story.
type: array
items:
type: string
format: uuid
external_id:
description: 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.
type: string
nullable: true
id:
description: The unique ID of the Story.
type: integer
format: int64
lead_time:
description: The lead time (in seconds) of this story when complete.
type: integer
format: int64
parent_story_id:
description: 'The ID of the parent story to this story (making this story a sub-task).
Field only applicable when Sub-task feature is enabled.'
type: integer
format: int64
nullable: true
estimate:
description: The numeric point estimate of the story. Can also be null, which means unestimated.
type: integer
format: int64
nullable: true
position:
description: A number representing the position of the story in relation to every other story in the current project.
type: integer
format: int64
blocked:
description: A true/false boolean indicating if the Story is currently blocked.
type: boolean
project_id:
description: The ID of the project the story belongs to.
type: integer
format: int64
nullable: true
linked_file_ids:
description: An array of IDs of LinkedFiles attached to the story.
type: array
items:
type: integer
format: int64
deadline:
description: The due date of the story.
type: string
format: date-time
nullable: true
stats:
$ref: '#/components/schemas/StoryStats'
comment_ids:
description: An array of IDs of Comments attached to the story.
type: array
items:
type: integer
format: int64
cycle_time:
description: The cycle time (in seconds) of this story when complete.
type: integer
format: int64
created_at:
description: The time/date the Story was created.
type: string
format: date-time
moved_at:
description: The time/date the Story was last changed workflow-state.
type: string
format: date-time
nullable: true
additionalProperties: false
required:
- app_url
- archived
- started
- story_links
- entity_type
- labels
- task_ids
- mention_ids
- member_mention_ids
- story_type
- file_ids
- num_tasks_completed
- workflow_id
- completed_at_override
- started_at
- completed_at
- name
- global_id
- completed
- blocker
- epic_id
- story_template_id
- external_links
- previous_iteration_ids
- requested_by_id
- iteration_id
- label_ids
- started_at_override
- group_id
- workflow_state_id
- updated_at
- group_mention_ids
- follower_ids
- owner_ids
- external_id
- id
- estimate
- position
- blocked
- project_id
- linked_file_ids
- deadline
- stats
- comment_ids
- created_at
- moved_at
LabelSlim:
description: A Label can be used to associate and filter Stories and Epics, and also create new Workspaces. A slim Label does not include aggregate stats. Fetch the Label using the labels endpoint to retrieve them.
type: object
properties:
app_url:
description: The Shortcut application url for the Label.
type: string
description:
description: The description of the Label.
type: string
nullable: true
archived:
description: A true/false boolean indicating if the Label has been archived.
type: boolean
entity_type:
description: A string description of this resource.
type: string
color:
description: The hex color to be displayed with the Label (for example, "#ff0000").
pattern: ^#[a-fA-F0-9]{6}$
format: css-color
minLength: 1
type: string
nullable: true
name:
description: The name of the Label.
type: string
global_id:
x-doc-skip: true
type: string
updated_at:
description: The time/date that the Label was updated.
type: string
format: date-time
nullable: true
external_id:
description: 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.
type: string
nullable: true
id:
description: The unique ID of the Label.
type: integer
format: int64
created_at:
description: The time/date that the Label was created.
type: string
format: date-time
nullable: true
additionalProperties: false
required:
- app_url
- description
- archived
- entity_type
- color
- name
- global_id
- updated_at
- external_id
- id
- created_at
StoryCustomField:
type: object
properties:
field_id:
description: The unique public ID for a CustomField.
type: string
format: uuid
value_id:
description: The unique public ID for a CustomFieldEnumValue.
type: string
format: uuid
value:
description: A string representation of the value, if applicable.
type: string
additionalProperties: false
required:
- field_id
- value_id
- value
Icon:
description: Icons are used to attach images to Groups, Workspaces, Members, and Loading screens in the Shortcut web application.
type: object
properties:
entity_type:
description: A string description of this resource.
type: string
id:
description: The unique ID of the Icon.
type: string
format: uuid
created_at:
description: The time/date that the Icon was created.
type: string
format: date-time
updated_at:
description: The time/date that the Icon was updated.
type: string
format: date-time
url:
description: The URL of the Icon.
type: string
additionalProperties: false
required:
- entity_type
- id
- created_at
- updated_at
- url
CreateGroup:
type: object
properties:
description:
maxLength: 4096
description: The description of the Group.
type: string
card_aging_mode:
description: '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.'
type: string
enum:
- 'off'
- gradual
- immediate
nullable: true
color:
pattern: ^#[a-fA-F0-9]{6}$
format: css-color
description: The color you wish to use for the Group in the system.
minLength: 1
type: string
card_aging_threshold_days:
description: 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.
type: integer
format: int64
nullable: true
display_icon_id:
description: The Icon id for the avatar of this Group.
type: string
format: uuid
mention_name:
maxLength: 63
minLength: 1
description: The mention name of this Group.
type: string
name:
maxLength: 63
minLength: 1
description: The name of this Group.
type: string
color_key:
description: The color key you wish to use for the Group in the system.
type: string
enum:
- blue
- purple
- midnight-blue
- orange
- yellow-green
- brass
- gray
- fuchsia
- yellow
- pink
- sky-blue
- green
- red
- black
- slate
- turquoise
member_ids:
description: The Member ids to add to this Group.
type: array
items:
type: string
format: uuid
uniqueItems: true
workflow_ids:
description: The Workflow ids to add to the Group.
type: array
items:
type: integer
format: int64
additionalProperties: false
required:
- mention_name
- name
Group:
description: A Group.
type: object
properties:
app_url:
description: The Shortcut application url for the Group.
type: string
description:
description: The description of the Group.
type: string
archived:
description: Whether or not the Group is archived.
type: boolean
entity_type:
description: A string description of this resource.
type: string
card_aging_mode:
description: 'The card aging mode for stories in this Group: "gradual" or "immediate". Null if card aging is off.'
type: string
enum:
- 'off'
- gradual
- immediate
nullable: true
color:
description: The hex color to be displayed with the Group (for example, "#ff0000").
pattern: ^#[a-fA-F0-9]{6}$
format: css-color
minLength: 1
type: string
nullable: true
card_aging_threshold_days:
description: The number of days an in-progress Story can go without activity before it is considered stale.
type: integer
format: int64
nullable: true
num_stories_started:
description: The number of stories assigned to the group which are in a started workflow state.
type: integer
format: int64
mention_name:
pattern: ^[a-z0-9\-\_\.]+$
minLength: 1
description: The mention name of the Group.
type: string
name:
description: The name of the Group.
type: string
global_id:
x-doc-skip: true
type: string
color_key:
description: The color key to be displayed with the Group.
type: string
enum:
- blue
- purple
- midnight-blue
- orange
- yellow-green
- brass
- gray
- fuchsia
- yellow
- pink
- sky-blue
- green
- red
- black
- slate
- turquoise
nullable: true
num_stories:
description: The total number of stories assigned to the group.
type: integer
format: int64
num_epics_started:
description: The number of epics assigned to the group which are in the started workflow state.
type: integer
format: int64
updated_at:
description: The last instant when this group was updated.
type: string
format: date-time
num_stories_backlog:
description: The number of stories assigned to the group which are in a backlog workflow state.
type: integer
format: int64
id:
description: The id of the Group.
type: string
format: uuid
display_icon:
$ref: '#/components/schemas/Icon'
default_workflow_id:
description: The ID of the default workflow for stories created in this group.
type: integer
format: int64
nullable: true
member_ids:
description: The Member IDs contain within the Group.
type: array
items:
type: string
format: uuid
workflow_ids:
description: The Workflow IDs contained within the Group.
type: array
items:
type: integer
format: int64
created_at:
description: The instant when this group was created.
type: string
format: date-time
additionalProperties: false
required:
- app_url
- description
- archived
- entity_type
- card_aging_mode
- color
- card_aging_threshold_days
- num_stories_started
- mention_name
- name
- global_id
- color_key
- num_stories
- num_epics_started
- updated_at
- num_stories_backlog
- id
- display_icon
- member_ids
- workflow_ids
- created_at
StoryStats:
description: The stats object for Stories
type: object
properties:
num_related_documents:
description: The number of documents related to this Story.
type: integer
format: int64
additionalProperties: false
required:
- num_related_documents
UnusableEntitlementError:
type: object
properties:
reason_tag:
description: The tag for violating an entitlement action.
type: string
enum:
- entitlement-violation
entitlement_tag:
maxLength: 63
minLength: 1
description: Short tag describing the unusable entitlement action taken by the user.
type: string
message:
maxLength: 256
minLength: 1
description: Message displayed to the user on why their action failed.
type: string
additionalProperties: false
required:
- reason_tag
- entitlement_tag
- message
UpdateGroup:
type: object
properties:
description:
maxLength: 4096
description: The description of this Group.
type: string
archived:
description: Whether or not this Group is archived.
type: boolean
nullable: true
card_aging_mode:
description: '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.'
type: string
enum:
- 'off'
- gradual
- immediate
nullable: true
color:
description: The color you wish to use for the Group in the system.
pattern: ^#[a-fA-F0-9]{6}$
format: css-color
minLength: 1
type: string
nullable: true
card_aging_threshold_days:
description: 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.
type: integer
format: int64
nullable: true
display_icon_id:
description: The Icon id for the avatar of this Group.
type: string
format: uuid
nullable: true
mention_name:
maxLength: 63
minLength: 1
description: The mention name of this Group.
type: string
name:
maxLength: 63
minLength: 1
description: The name of this Group.
type: string
color_key:
description: The color key you wish to use for the Group in the system.
type: string
enum:
- blue
- purple
- midnight-blue
- orange
- yellow-green
- brass
- gray
- fuchsia
- yellow
- pink
- sky-blue
- green
- red
- black
- slate
- turquoise
default_workflow_id:
description: The ID of the default workflow for stories created in this group.
type: integer
format: int64
nullable: true
member_ids:
description: The Member ids to add to this Group.
type: array
items:
type: string
format: uuid
uniqueItems: true
workflow_ids:
description: The Workflow ids to add to the Group.
type: array
items:
type: integer
format: int64
additionalProperties: false
securitySchemes:
api_token:
type: apiKey
in: header
name: Shortcut-Token