Create Category
post
createCategory.post
Create Category
Risk: write
await corsair.shortcut.api.createCategory.post({"body":{"name":"Infrastructure"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
name: string,
color?: string,
external_id?: string,
type?: any
}
| Name | Type | Required | Description |
|---|---|---|---|
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
type | string | Yes | — |
updated_at | string | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
Create Doc
post
createDoc.post
Create Doc
Risk: write
await corsair.shortcut.api.createDoc.post({"body":{"title":"Release notes","content":"# Release notes","content_format":"markdown"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
content_format is omitted; set it to markdown when sending Markdown.
body full type
body full type
{
title: string,
content: string,
content_format?: markdown | html
}
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
title | string | null | Yes | — |
app_url | string | Yes | — |
Create Entity Template
post
createEntityTemplate.post
Create Entity Template
Risk: write
await corsair.shortcut.api.createEntityTemplate.post({"body":{"name":"Bug report","story_contents":{"story_type":"bug"}}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
name: string,
author_id?: string,
story_contents: {
description?: string,
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
file_ids?: number[],
name?: string,
epic_id?: number | null,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number | null,
tasks?: {
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string
}[],
group_id?: string | null,
workflow_state_id?: number | null,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number | null,
project_id?: number,
linked_file_ids?: number[],
deadline?: string | null
}
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | string | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
name | string | Yes | — |
author_id | string | Yes | — |
last_used_at | string | Yes | — |
story_contents | object | Yes | — |
story_contents full type
story_contents full type
{
description?: string,
entity_type?: string,
labels?: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
name?: string,
epic_id?: number,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number,
tasks?: {
description: string,
position?: number,
complete?: boolean,
owner_ids?: string[],
external_id?: string | null
}[],
label_ids?: number[],
group_id?: string,
workflow_state_id?: number,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number,
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
project_id?: number,
deadline?: string
}
Create Epic
post
createEpic.post
Create Epic
Risk: write
await corsair.shortcut.api.createEpic.post({"body":{"name":"Checkout redesign"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
completed_at_override?: string,
objective_ids?: number[],
name: string,
planned_start_date?: string | null,
state?: in progress | to do | done,
milestone_id?: number | null,
requested_by_id?: string,
size?: small | xlarge | medium | large | null,
epic_state_id?: number,
started_at_override?: string,
group_id?: string | null,
updated_at?: string,
follower_ids?: string[],
group_ids?: string[],
converted_from_story_id?: number | null,
owner_ids?: string[],
external_id?: string,
deadline?: string | null,
created_at?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
project_ids | number[] | Yes | — |
stories_without_projects | number | Yes | — |
completed_at_override | string | null | Yes | — |
productboard_plugin_id | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
objective_ids | number[] | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
productboard_url | string | null | Yes | — |
planned_start_date | string | null | Yes | — |
state | string | Yes | — |
milestone_id | number | null | Yes | — |
requested_by_id | string | Yes | — |
size | string | null | Yes | — |
epic_state_id | number | Yes | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
productboard_id | string | null | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
health | object | No | — |
position | number | Yes | — |
productboard_name | string | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
comments full type
comments full type
health full type
health full type
{
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
}
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Create Epic Comment
post
createEpicComment.post
Create Epic Comment
Risk: destructive
await corsair.shortcut.api.createEpicComment.post({"path":{"epicPublicId":1},"body":{"text":"Looks good to me."}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
body full type
body full type
{
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | Yes | — |
member_mention_ids | string[] | Yes | — |
comments | object[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
text | string | Yes | — |
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
Create Epic Comment Comment
post
createEpicCommentComment.post
Create Epic Comment Comment
Risk: destructive
await corsair.shortcut.api.createEpicCommentComment.post({"path":{"epicPublicId":1,"commentPublicId":1},"body":{"text":"Looks good to me."}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
epicPublicId: number,
commentPublicId: number
}
body full type
body full type
{
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | Yes | — |
member_mention_ids | string[] | Yes | — |
comments | object[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
text | string | Yes | — |
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
Create Epic Health
post
createEpicHealth.post
Create Epic Health
Risk: write
await corsair.shortcut.api.createEpicHealth.post({"path":{"epicPublicId":1},"body":{"status":"At Risk"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
body full type
body full type
{
status: At Risk | On Track | Off Track | No Health,
text?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
author_id | string | No | — |
epic_id | number | No | — |
objective_id | number | No | — |
updated_at | string | No | — |
status | At Risk | On Track | Off Track | No Health | string | Yes | — |
id | string | null | Yes | — |
created_at | string | No | — |
text | string | No | — |
Create Group
post
createGroup.post
Create Group
Risk: write
await corsair.shortcut.api.createGroup.post({"body":{"mention_name":"platform-team","name":"Platform Team"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
card_aging_mode?: off | gradual | immediate | null,
color?: string,
card_aging_threshold_days?: number | null,
display_icon_id?: string,
mention_name: string,
name: string,
color_key?: blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise,
member_ids?: string[],
workflow_ids?: number[]
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
card_aging_mode | off | gradual | immediate | string | null | Yes | — |
color | string | null | Yes | — |
card_aging_threshold_days | number | null | Yes | — |
num_stories_started | number | Yes | — |
mention_name | string | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
color_key | blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise | null | Yes | — |
num_stories | number | Yes | — |
num_epics_started | number | Yes | — |
creator_id | string | null | Yes | — |
updated_at | string | Yes | — |
num_stories_backlog | number | Yes | — |
id | string | Yes | — |
display_icon | object | null | Yes | — |
default_workflow_id | number | null | No | — |
member_ids | string[] | Yes | — |
workflow_ids | number[] | Yes | — |
created_at | string | Yes | — |
display_icon full type
display_icon full type
{
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null
Create Iteration
post
createIteration.post
Create Iteration
Risk: write
await corsair.shortcut.api.createIteration.post({"body":{"name":"Sprint 12","start_date":"2026-12-01","end_date":"2026-12-14"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
follower_ids?: string[],
group_ids?: string[],
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
description?: string,
name: string,
start_date: string,
end_date: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
label_ids | number[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
end_date | string | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
start_date | string | Yes | — |
status | string | Yes | — |
id | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Create Label
post
createLabel.post
Create Label
Risk: write
await corsair.shortcut.api.createLabel.post({"body":{"name":"needs-review"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
name: string,
description?: string,
color?: string,
external_id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
stats | object | No | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
}
Create Linked File
post
createLinkedFile.post
Create Linked File
Risk: write
await corsair.shortcut.api.createLinkedFile.post({"body":{"name":"Design spec","type":"url","url":"https://example.com/design-spec"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
story_id?: number,
name: string,
thumbnail_url?: string,
type: google | url | dropbox | box | onedrive,
size?: number,
uploader_id?: string,
content_type?: string,
url: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | null | Yes | — |
entity_type | string | Yes | — |
story_ids | number[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
name | string | Yes | — |
thumbnail_url | string | null | Yes | — |
type | string | Yes | — |
size | number | null | Yes | — |
uploader_id | string | Yes | — |
content_type | string | null | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
id | number | Yes | — |
url | string | Yes | — |
created_at | string | Yes | — |
Create Milestone
post
createMilestone.post
Create Milestone
Risk: write
await corsair.shortcut.api.createMilestone.post({"body":{"name":"Q1 launch"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
name: string,
description?: string,
state?: in progress | to do | done,
started_at_override?: string,
completed_at_override?: string,
categories?: {
name: string,
color?: string,
external_id?: string
}[]
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Create Multiple Stories
post
createMultipleStories.post
Create Multiple Stories
Risk: write
await corsair.shortcut.api.createMultipleStories.post({"body":{"stories":[{"name":"Fix login redirect","workflow_state_id":500000001}]}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
stories: {
description?: string,
archived?: boolean,
story_links?: {
subject_id?: number,
verb: blocks | duplicates | relates to,
object_id?: number
}[],
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
story_type?: feature | chore | bug,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
move_to?: last | first,
file_ids?: number[],
source_task_id?: number | null,
completed_at_override?: string,
name: string,
comments?: {
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string,
parent_id?: number | null
}[],
epic_id?: number | null,
story_template_id?: string | null,
external_links?: string[],
sub_tasks?: (
{
story_id: number
} | {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}
)[],
requested_by_id?: string,
iteration_id?: number | null,
tasks?: {
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string,
created_at?: string,
updated_at?: string
}[],
started_at_override?: string,
group_id?: string | null,
workflow_state_id?: number,
updated_at?: string,
follower_ids?: string[],
owner_ids?: string[],
external_id?: string,
parent_story_id?: number | null,
estimate?: number | null,
project_id?: number | null,
linked_file_ids?: number[],
deadline?: string | null,
created_at?: string
}[]
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
Create Objective
post
createObjective.post
Create Objective
Risk: write
await corsair.shortcut.api.createObjective.post({"body":{"name":"Reduce churn"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
name: string,
description?: string,
state?: in progress | to do | done,
started_at_override?: string,
completed_at_override?: string,
categories?: {
name: string,
color?: string,
external_id?: string
}[]
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Create Objective Health
post
createObjectiveHealth.post
Create Objective Health
Risk: write
await corsair.shortcut.api.createObjectiveHealth.post({"path":{"objectivePublicId":1},"body":{"status":"At Risk"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
body full type
body full type
{
status: At Risk | On Track | Off Track | No Health,
text?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
author_id | string | No | — |
epic_id | number | No | — |
objective_id | number | No | — |
updated_at | string | No | — |
status | At Risk | On Track | Off Track | No Health | string | Yes | — |
id | string | null | Yes | — |
created_at | string | No | — |
text | string | No | — |
Create Project
post
createProject.post
Create Project
Risk: write
await corsair.shortcut.api.createProject.post({"body":{"name":"Mobile app","team_id":1}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
color?: string,
name: string,
start_time?: string,
updated_at?: string,
follower_ids?: string[],
external_id?: string,
team_id: number,
iteration_length?: number,
abbreviation?: string,
created_at?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
days_to_thermometer | number | Yes | — |
color | string | null | Yes | — |
workflow_id | number | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
start_time | string | Yes | — |
updated_at | string | null | Yes | — |
follower_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
show_thermometer | boolean | Yes | — |
team_id | number | Yes | — |
iteration_length | number | Yes | — |
abbreviation | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_stories: number,
num_points: number,
num_related_documents: number
}
Create Story
post
createStory.post
Create Story
Risk: write
await corsair.shortcut.api.createStory.post({"body":{"name":"Fix login redirect","workflow_state_id":500000001}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
archived?: boolean,
story_links?: {
subject_id?: number,
verb: blocks | duplicates | relates to,
object_id?: number
}[],
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
story_type?: feature | chore | bug,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
move_to?: last | first,
file_ids?: number[],
source_task_id?: number | null,
completed_at_override?: string,
name: string,
comments?: {
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string,
parent_id?: number | null
}[],
epic_id?: number | null,
story_template_id?: string | null,
external_links?: string[],
sub_tasks?: (
{
story_id: number
} | {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}
)[],
requested_by_id?: string,
iteration_id?: number | null,
tasks?: {
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string,
created_at?: string,
updated_at?: string
}[],
started_at_override?: string,
group_id?: string | null,
workflow_state_id?: number,
updated_at?: string,
follower_ids?: string[],
owner_ids?: string[],
external_id?: string,
parent_story_id?: number | null,
estimate?: number | null,
project_id?: number | null,
linked_file_ids?: number[],
deadline?: string | null,
created_at?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
story_links | object[] | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
synced_item | object | No | — |
member_mention_ids | string[] | Yes | — |
story_type | string | Yes | — |
custom_fields | object[] | No | — |
linked_files | object[] | Yes | — |
workflow_id | number | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
blocker | boolean | Yes | — |
branches | object[] | Yes | — |
epic_id | number | null | Yes | — |
story_template_id | string | null | Yes | — |
external_links | string[] | Yes | — |
previous_iteration_ids | number[] | Yes | — |
requested_by_id | string | Yes | — |
iteration_id | number | null | Yes | — |
sub_task_story_ids | number[] | No | — |
tasks | object[] | Yes | — |
formatted_vcs_branch_name | string | null | No | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
workflow_state_id | number | Yes | — |
updated_at | string | null | Yes | — |
pull_requests | object[] | Yes | — |
group_mention_ids | string[] | Yes | — |
follower_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
lead_time | number | No | — |
parent_story_id | number | null | No | — |
estimate | number | null | Yes | — |
commits | object[] | Yes | — |
files | object[] | Yes | — |
position | number | Yes | — |
blocked | boolean | Yes | — |
project_id | number | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
cycle_time | number | No | — |
created_at | string | Yes | — |
moved_at | string | null | Yes | — |
story_links full type
story_links full type
{
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[]
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
synced_item full type
synced_item full type
{
external_id: string,
url: string
}
custom_fields full type
custom_fields full type
{
field_id: string,
value_id: string,
value: string
}[]
linked_files full type
linked_files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[]
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[]
branches full type
branches full type
{
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[]
tasks full type
tasks full type
{
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[]
pull_requests full type
pull_requests full type
{
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[]
commits full type
commits full type
{
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[]
files full type
files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]
stats full type
stats full type
{
num_related_documents: number
}
Create Story Comment
post
createStoryComment.post
Create Story Comment
Risk: destructive
await corsair.shortcut.api.createStoryComment.post({"path":{"storyPublicId":1},"body":{"text":"Looks good to me."}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
body full type
body full type
{
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string,
parent_id?: number | null
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | null | Yes | — |
member_mention_ids | string[] | Yes | — |
blocker | boolean | No | — |
linked_to_slack | boolean | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
parent_id | number | null | No | — |
id | number | Yes | — |
position | number | Yes | — |
unblocks_parent | boolean | No | — |
reactions | object[] | Yes | — |
created_at | string | Yes | — |
text | string | null | Yes | — |
reactions full type
reactions full type
{
emoji: string,
permission_ids: string[]
}[]
Create Story From Template
post
createStoryFromTemplate.post
Create Story From Template
Risk: write
await corsair.shortcut.api.createStoryFromTemplate.post({"body":{"story_template_id":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
description?: string,
archived?: boolean,
story_links?: {
subject_id?: number,
verb: blocks | duplicates | relates to,
object_id?: number
}[],
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
external_links_add?: string[],
story_type?: feature | chore | bug,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
move_to?: last | first,
file_ids?: number[],
source_task_id?: number | null,
completed_at_override?: string,
name?: string,
file_ids_add?: number[],
file_ids_remove?: number[],
comments?: {
text: string,
author_id?: string,
created_at?: string,
updated_at?: string,
external_id?: string,
parent_id?: number | null
}[],
follower_ids_add?: string[],
epic_id?: number | null,
story_template_id: string,
external_links?: string[],
follower_ids_remove?: string[],
sub_tasks?: (
{
story_id: number
} | {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}
)[],
linked_file_ids_remove?: number[],
requested_by_id?: string,
iteration_id?: number | null,
custom_fields_remove?: {
field_id: string
}[],
tasks?: {
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string,
created_at?: string,
updated_at?: string
}[],
started_at_override?: string,
labels_add?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
group_id?: string | null,
workflow_state_id?: number,
updated_at?: string,
follower_ids?: string[],
owner_ids?: string[],
external_id?: string,
parent_story_id?: number | null,
estimate?: number | null,
owner_ids_remove?: string[],
custom_fields_add?: {
field_id: string,
value_id: string,
value?: string
}[],
project_id?: number | null,
linked_file_ids_add?: number[],
linked_file_ids?: number[],
labels_remove?: {
name: string
}[],
deadline?: string | null,
owner_ids_add?: string[],
created_at?: string,
external_links_remove?: string[]
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
story_links | object[] | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
synced_item | object | No | — |
member_mention_ids | string[] | Yes | — |
story_type | string | Yes | — |
custom_fields | object[] | No | — |
linked_files | object[] | Yes | — |
workflow_id | number | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
blocker | boolean | Yes | — |
branches | object[] | Yes | — |
epic_id | number | null | Yes | — |
story_template_id | string | null | Yes | — |
external_links | string[] | Yes | — |
previous_iteration_ids | number[] | Yes | — |
requested_by_id | string | Yes | — |
iteration_id | number | null | Yes | — |
sub_task_story_ids | number[] | No | — |
tasks | object[] | Yes | — |
formatted_vcs_branch_name | string | null | No | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
workflow_state_id | number | Yes | — |
updated_at | string | null | Yes | — |
pull_requests | object[] | Yes | — |
group_mention_ids | string[] | Yes | — |
follower_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
lead_time | number | No | — |
parent_story_id | number | null | No | — |
estimate | number | null | Yes | — |
commits | object[] | Yes | — |
files | object[] | Yes | — |
position | number | Yes | — |
blocked | boolean | Yes | — |
project_id | number | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
cycle_time | number | No | — |
created_at | string | Yes | — |
moved_at | string | null | Yes | — |
story_links full type
story_links full type
{
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[]
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
synced_item full type
synced_item full type
{
external_id: string,
url: string
}
custom_fields full type
custom_fields full type
{
field_id: string,
value_id: string,
value: string
}[]
linked_files full type
linked_files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[]
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[]
branches full type
branches full type
{
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[]
tasks full type
tasks full type
{
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[]
pull_requests full type
pull_requests full type
{
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[]
commits full type
commits full type
{
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[]
files full type
files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]
stats full type
stats full type
{
num_related_documents: number
}
Create Story Link
post
createStoryLink.post
Create Story Link
Risk: write
await corsair.shortcut.api.createStoryLink.post({"body":{"verb":"blocks","subject_id":1,"object_id":1}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
verb: blocks | duplicates | relates to,
subject_id: number,
object_id: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | number | Yes | — |
subject_id | number | Yes | — |
subject_workflow_state_id | number | Yes | — |
verb | string | Yes | — |
object_id | number | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
Create Story Reaction
post
createStoryReaction.post
Create Story Reaction
Risk: write
await corsair.shortcut.api.createStoryReaction.post({"path":{"storyPublicId":1,"commentPublicId":1},"body":{"emoji":":thumbsup:"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
body full type
body full type
{
emoji: string
}
object[]
Output full type
Output full type
{
emoji: string,
permission_ids: string[]
}[]
Create Task
post
createTask.post
Create Task
Risk: write
await corsair.shortcut.api.createTask.post({"path":{"storyPublicId":1},"body":{"description":"Add a regression test"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
body full type
body full type
{
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string,
created_at?: string,
updated_at?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | Yes | — |
entity_type | string | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
completed_at | string | null | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
position | number | Yes | — |
complete | boolean | Yes | — |
created_at | string | Yes | — |
Delete Category
delete
deleteCategory.delete
Delete Category
Risk: destructive
await corsair.shortcut.api.deleteCategory.delete({"path":{"categoryPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
categoryPublicId: number
}
undefined
Delete Custom Field
delete
deleteCustomField.delete
Delete Custom Field
Risk: destructive
await corsair.shortcut.api.deleteCustomField.delete({"path":{"customFieldPublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
customFieldPublicId: string
}
undefined
Delete Doc
delete
deleteDoc.delete
Delete Doc
Risk: destructive
await corsair.shortcut.api.deleteDoc.delete({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
docPublicId: string
}
body full type
body full type
{
content_format?: markdown | html
}
undefined
Delete Entity Template
delete
deleteEntityTemplate.delete
Delete Entity Template
Risk: destructive
await corsair.shortcut.api.deleteEntityTemplate.delete({"path":{"entityTemplatePublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
entityTemplatePublicId: string
}
undefined
Delete Epic
delete
deleteEpic.delete
Delete Epic
Risk: destructive
await corsair.shortcut.api.deleteEpic.delete({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
undefined
Delete Epic Comment
delete
deleteEpicComment.delete
Delete Epic Comment
Risk: destructive
await corsair.shortcut.api.deleteEpicComment.delete({"path":{"epicPublicId":1,"commentPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number,
commentPublicId: number
}
undefined
Delete File
delete
deleteFile.delete
Delete File
Risk: destructive
await corsair.shortcut.api.deleteFile.delete({"path":{"filePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
filePublicId: number
}
undefined
Delete Iteration
delete
deleteIteration.delete
Delete Iteration
Risk: destructive
await corsair.shortcut.api.deleteIteration.delete({"path":{"iterationPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
iterationPublicId: number
}
undefined
Delete Label
delete
deleteLabel.delete
Delete Label
Risk: destructive
await corsair.shortcut.api.deleteLabel.delete({"path":{"labelPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
labelPublicId: number
}
undefined
Delete Linked File
delete
deleteLinkedFile.delete
Delete Linked File
Risk: destructive
await corsair.shortcut.api.deleteLinkedFile.delete({"path":{"linkedFilePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
linkedFilePublicId: number
}
undefined
Delete Milestone
delete
deleteMilestone.delete
Delete Milestone
Risk: destructive
await corsair.shortcut.api.deleteMilestone.delete({"path":{"milestonePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
milestonePublicId: number
}
undefined
Delete Multiple Stories
delete
deleteMultipleStories.delete
Delete Multiple Stories
Risk: destructive
await corsair.shortcut.api.deleteMultipleStories.delete({"body":{"story_ids":[1]}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
story_ids: number[]
}
undefined
Delete Objective
delete
deleteObjective.delete
Delete Objective
Risk: destructive
await corsair.shortcut.api.deleteObjective.delete({"path":{"objectivePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
undefined
Delete Project
delete
deleteProject.delete
Delete Project
Risk: destructive
await corsair.shortcut.api.deleteProject.delete({"path":{"projectPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
projectPublicId: number
}
undefined
Delete Story
delete
deleteStory.delete
Delete Story
Risk: destructive
await corsair.shortcut.api.deleteStory.delete({"path":{"storyPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
undefined
Delete Story Comment
delete
deleteStoryComment.delete
Delete Story Comment
Risk: destructive
await corsair.shortcut.api.deleteStoryComment.delete({"path":{"storyPublicId":1,"commentPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
undefined
Delete Story Link
delete
deleteStoryLink.delete
Delete Story Link
Risk: destructive
await corsair.shortcut.api.deleteStoryLink.delete({"path":{"storyLinkPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyLinkPublicId: number
}
undefined
Delete Story Reaction
delete
deleteStoryReaction.delete
Delete Story Reaction
Risk: destructive
await corsair.shortcut.api.deleteStoryReaction.delete({"path":{"storyPublicId":1,"commentPublicId":1},"body":{"emoji":":thumbsup:"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
body full type
body full type
{
emoji: string
}
undefined
Delete Task
delete
deleteTask.delete
Delete Task
Risk: destructive
await corsair.shortcut.api.deleteTask.delete({"path":{"storyPublicId":1,"taskPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
taskPublicId: number
}
undefined
Disable Iterations
put
disableIterations.put
Disable Iterations
Risk: write
await corsair.shortcut.api.disableIterations.put({});
undefined
Disable Story Templates
put
disableStoryTemplates.put
Disable Story Templates
Risk: write
await corsair.shortcut.api.disableStoryTemplates.put({});
undefined
Enable Iterations
put
enableIterations.put
Enable Iterations
Risk: write
await corsair.shortcut.api.enableIterations.put({});
undefined
Enable Story Templates
put
enableStoryTemplates.put
Enable Story Templates
Risk: write
await corsair.shortcut.api.enableStoryTemplates.put({});
undefined
Get Category
get
getCategory.get
Get Category
Risk: read
await corsair.shortcut.api.getCategory.get({"path":{"categoryPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
categoryPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
type | string | Yes | — |
updated_at | string | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
Get Current Member Info
get
getCurrentMemberInfo.get
Get Current Member Info
Risk: read
await corsair.shortcut.api.getCurrentMemberInfo.get({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
is_owner | boolean | Yes | — |
mention_name | string | Yes | — |
name | string | Yes | — |
role | string | Yes | — |
workspace2 | object | Yes | — |
organization2 | object | Yes | — |
workspace2 full type
workspace2 full type
{
id: string,
created_at: string,
default_workflow_id: number,
estimate_scale: number[],
name: string,
url_slug: string,
utc_offset: string,
korey_enabled?: boolean
}
organization2 full type
organization2 full type
{
id: string
}
Get Custom Field
get
getCustomField.get
Get Custom Field
Risk: read
await corsair.shortcut.api.getCustomField.get({"path":{"customFieldPublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
customFieldPublicId: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | — |
icon_set_identifier | string | No | — |
entity_type | custom-field | string | Yes | — |
story_types | string[] | No | — |
last_edited_by_id | string | null | Yes | — |
name | string | Yes | — |
fixed_position | boolean | No | — |
creator_id | string | null | Yes | — |
updated_at | string | Yes | — |
id | string | Yes | — |
values | object[] | No | — |
last_edited_at | string | null | Yes | — |
field_type | enum | string | Yes | — |
position | number | Yes | — |
canonical_name | string | No | — |
enabled | boolean | Yes | — |
created_at | string | Yes | — |
values full type
values full type
{
id: string,
value: string,
position: number,
color_key: string | null,
entity_type: custom-field-enum-value | string,
enabled: boolean
}[]
Get Doc
get
getDoc.get
Get Doc
Risk: read
await corsair.shortcut.api.getDoc.get({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012"},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
content_format: html to include HTML content; the default response format is Markdown.
path full type
path full type
{
docPublicId: string
}
query full type
query full type
{
content_format?: markdown | html
}
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
title | string | null | Yes | — |
content_markdown | string | null | Yes | — |
content_html | string | null | No | — |
app_url | string | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
archived | boolean | Yes | — |
Get Entity Template
get
getEntityTemplate.get
Get Entity Template
Risk: read
await corsair.shortcut.api.getEntityTemplate.get({"path":{"entityTemplatePublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
entityTemplatePublicId: string
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | string | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
name | string | Yes | — |
author_id | string | Yes | — |
last_used_at | string | Yes | — |
story_contents | object | Yes | — |
story_contents full type
story_contents full type
{
description?: string,
entity_type?: string,
labels?: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
name?: string,
epic_id?: number,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number,
tasks?: {
description: string,
position?: number,
complete?: boolean,
owner_ids?: string[],
external_id?: string | null
}[],
label_ids?: number[],
group_id?: string,
workflow_state_id?: number,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number,
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
project_id?: number,
deadline?: string
}
Get Epic
get
getEpic.get
Get Epic
Risk: read
await corsair.shortcut.api.getEpic.get({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
project_ids | number[] | Yes | — |
stories_without_projects | number | Yes | — |
completed_at_override | string | null | Yes | — |
productboard_plugin_id | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
objective_ids | number[] | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
productboard_url | string | null | Yes | — |
planned_start_date | string | null | Yes | — |
state | string | Yes | — |
milestone_id | number | null | Yes | — |
requested_by_id | string | Yes | — |
size | string | null | Yes | — |
epic_state_id | number | Yes | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
productboard_id | string | null | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
health | object | No | — |
position | number | Yes | — |
productboard_name | string | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
health full type
health full type
{
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
}
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Get Epic Comment
get
getEpicComment.get
Get Epic Comment
Risk: read
await corsair.shortcut.api.getEpicComment.get({"path":{"epicPublicId":1,"commentPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number,
commentPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | Yes | — |
member_mention_ids | string[] | Yes | — |
comments | object[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
text | string | Yes | — |
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
Get Epic Health
get
getEpicHealth.get
Get Epic Health
Risk: read
await corsair.shortcut.api.getEpicHealth.get({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
author_id | string | No | — |
epic_id | number | No | — |
objective_id | number | No | — |
updated_at | string | No | — |
status | At Risk | On Track | Off Track | No Health | string | Yes | — |
id | string | null | Yes | — |
created_at | string | No | — |
text | string | No | — |
Get Epic Workflow
get
getEpicWorkflow.get
Get Epic Workflow
Risk: read
await corsair.shortcut.api.getEpicWorkflow.get({});
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
default_epic_state_id | number | Yes | — |
epic_states | object[] | Yes | — |
epic_states full type
epic_states full type
{
description: string,
entity_type: string,
color?: string,
name: string,
global_id: string,
type: string,
updated_at: string,
id: number,
position: number,
created_at: string
}[]
Get External Link Stories
get
getExternalLinkStories.get
Get External Link Stories
Risk: read
await corsair.shortcut.api.getExternalLinkStories.get({"query":{"external_link":"https://github.com/acme/app/issues/42"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
query full type
query full type
{
external_link: string
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
Get File
get
getFile.get
Get File
Risk: read
await corsair.shortcut.api.getFile.get({"path":{"filePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
filePublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | null | Yes | — |
entity_type | string | Yes | — |
story_ids | number[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
name | string | Yes | — |
thumbnail_url | string | null | Yes | — |
size | number | Yes | — |
uploader_id | string | Yes | — |
content_type | string | Yes | — |
updated_at | string | null | Yes | — |
filename | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
url | string | null | Yes | — |
created_at | string | Yes | — |
Get Group
get
getGroup.get
Get Group
Risk: read
await corsair.shortcut.api.getGroup.get({"path":{"groupPublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
groupPublicId: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
card_aging_mode | off | gradual | immediate | string | null | Yes | — |
color | string | null | Yes | — |
card_aging_threshold_days | number | null | Yes | — |
num_stories_started | number | Yes | — |
mention_name | string | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
color_key | blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise | null | Yes | — |
num_stories | number | Yes | — |
num_epics_started | number | Yes | — |
creator_id | string | null | Yes | — |
updated_at | string | Yes | — |
num_stories_backlog | number | Yes | — |
id | string | Yes | — |
display_icon | object | null | Yes | — |
default_workflow_id | number | null | No | — |
member_ids | string[] | Yes | — |
workflow_ids | number[] | Yes | — |
created_at | string | Yes | — |
display_icon full type
display_icon full type
{
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null
Get Iteration
get
getIteration.get
Get Iteration
Risk: read
await corsair.shortcut.api.getIteration.get({"path":{"iterationPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
iterationPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
label_ids | number[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
end_date | string | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
start_date | string | Yes | — |
status | string | Yes | — |
id | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Get Key Result
get
getKeyResult.get
Get Key Result
Risk: read
await corsair.shortcut.api.getKeyResult.get({"path":{"keyResultPublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
keyResultPublicId: string
}
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
name | string | Yes | — |
objective_id | number | Yes | — |
type | percent | boolean | numeric | string | Yes | — |
initial_observed_value | object | Yes | — |
current_observed_value | object | Yes | — |
current_target_value | object | Yes | — |
progress | number | Yes | — |
initial_observed_value full type
initial_observed_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
current_observed_value full type
current_observed_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
current_target_value full type
current_target_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
Get Label
get
getLabel.get
Get Label
Risk: read
await corsair.shortcut.api.getLabel.get({"path":{"labelPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
labelPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
stats | object | No | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
}
Get Linked File
get
getLinkedFile.get
Get Linked File
Risk: read
await corsair.shortcut.api.getLinkedFile.get({"path":{"linkedFilePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
linkedFilePublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | null | Yes | — |
entity_type | string | Yes | — |
story_ids | number[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
name | string | Yes | — |
thumbnail_url | string | null | Yes | — |
type | string | Yes | — |
size | number | null | Yes | — |
uploader_id | string | Yes | — |
content_type | string | null | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
id | number | Yes | — |
url | string | Yes | — |
created_at | string | Yes | — |
Get Member
get
getMember.get
Get Member
Risk: read
await corsair.shortcut.api.getMember.get({"path":{"memberPublicId":"12345678-9012-3456-7890-123456789012"},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
path full type
path full type
{
memberPublicId: string
}
query full type
query full type
{
org-public-id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
role | string | Yes | — |
entity_type | string | Yes | — |
disabled | boolean | Yes | — |
global_id | string | Yes | — |
state | partial | full | disabled | imported | string | Yes | — |
updated_at | string | null | Yes | — |
created_without_invite | boolean | Yes | — |
group_ids | string[] | Yes | — |
id | string | Yes | — |
installation_id | string | No | — |
profile | object | Yes | — |
created_at | string | null | Yes | — |
replaced_by | string | No | — |
profile full type
profile full type
{
entity_type: string,
deactivated: boolean,
two_factor_auth_activated?: boolean,
mention_name: string,
is_mentionable?: boolean,
name: string | null,
is_agent?: boolean,
gravatar_hash: string | null,
id: string,
display_icon: {
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null,
is_owner: boolean,
is_assignable?: boolean,
email_address: string | null
}
Get Milestone
get
getMilestone.get
Get Milestone
Risk: read
await corsair.shortcut.api.getMilestone.get({"path":{"milestonePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
milestonePublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Get Objective
get
getObjective.get
Get Objective
Risk: read
await corsair.shortcut.api.getObjective.get({"path":{"objectivePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Get Objective Health
get
getObjectiveHealth.get
Get Objective Health
Risk: read
await corsair.shortcut.api.getObjectiveHealth.get({"path":{"objectivePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
author_id | string | No | — |
epic_id | number | No | — |
objective_id | number | No | — |
updated_at | string | No | — |
status | At Risk | On Track | Off Track | No Health | string | Yes | — |
id | string | null | Yes | — |
created_at | string | No | — |
text | string | No | — |
Get Project
get
getProject.get
Get Project
Risk: read
await corsair.shortcut.api.getProject.get({"path":{"projectPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
projectPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
days_to_thermometer | number | Yes | — |
color | string | null | Yes | — |
workflow_id | number | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
start_time | string | Yes | — |
updated_at | string | null | Yes | — |
follower_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
show_thermometer | boolean | Yes | — |
team_id | number | Yes | — |
iteration_length | number | Yes | — |
abbreviation | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_stories: number,
num_points: number,
num_related_documents: number
}
Get Repository
get
getRepository.get
Get Repository
Risk: read
await corsair.shortcut.api.getRepository.get({"path":{"repoPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
repoPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
name | string | null | Yes | — |
type | github | gitlab | bitbucket | string | Yes | — |
updated_at | string | null | Yes | — |
external_id | string | null | Yes | — |
id | number | null | Yes | — |
url | string | null | Yes | — |
full_name | string | null | Yes | — |
created_at | string | null | Yes | — |
Get Story
get
getStory.get
Get Story
Risk: read
await corsair.shortcut.api.getStory.get({"path":{"storyPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
story_links | object[] | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
synced_item | object | No | — |
member_mention_ids | string[] | Yes | — |
story_type | string | Yes | — |
custom_fields | object[] | No | — |
linked_files | object[] | Yes | — |
workflow_id | number | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
blocker | boolean | Yes | — |
branches | object[] | Yes | — |
epic_id | number | null | Yes | — |
story_template_id | string | null | Yes | — |
external_links | string[] | Yes | — |
previous_iteration_ids | number[] | Yes | — |
requested_by_id | string | Yes | — |
iteration_id | number | null | Yes | — |
sub_task_story_ids | number[] | No | — |
tasks | object[] | Yes | — |
formatted_vcs_branch_name | string | null | No | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
workflow_state_id | number | Yes | — |
updated_at | string | null | Yes | — |
pull_requests | object[] | Yes | — |
group_mention_ids | string[] | Yes | — |
follower_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
lead_time | number | No | — |
parent_story_id | number | null | No | — |
estimate | number | null | Yes | — |
commits | object[] | Yes | — |
files | object[] | Yes | — |
position | number | Yes | — |
blocked | boolean | Yes | — |
project_id | number | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
cycle_time | number | No | — |
created_at | string | Yes | — |
moved_at | string | null | Yes | — |
story_links full type
story_links full type
{
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[]
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
synced_item full type
synced_item full type
{
external_id: string,
url: string
}
custom_fields full type
custom_fields full type
{
field_id: string,
value_id: string,
value: string
}[]
linked_files full type
linked_files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[]
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[]
branches full type
branches full type
{
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[]
tasks full type
tasks full type
{
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[]
pull_requests full type
pull_requests full type
{
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[]
commits full type
commits full type
{
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[]
files full type
files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]
stats full type
stats full type
{
num_related_documents: number
}
Get Story Comment
get
getStoryComment.get
Get Story Comment
Risk: read
await corsair.shortcut.api.getStoryComment.get({"path":{"storyPublicId":1,"commentPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | null | Yes | — |
member_mention_ids | string[] | Yes | — |
blocker | boolean | No | — |
linked_to_slack | boolean | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
parent_id | number | null | No | — |
id | number | Yes | — |
position | number | Yes | — |
unblocks_parent | boolean | No | — |
reactions | object[] | Yes | — |
created_at | string | Yes | — |
text | string | null | Yes | — |
reactions full type
reactions full type
{
emoji: string,
permission_ids: string[]
}[]
Get Story Link
get
getStoryLink.get
Get Story Link
Risk: read
await corsair.shortcut.api.getStoryLink.get({"path":{"storyLinkPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyLinkPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | number | Yes | — |
subject_id | number | Yes | — |
subject_workflow_state_id | number | Yes | — |
verb | string | Yes | — |
object_id | number | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
Get Task
get
getTask.get
Get Task
Risk: read
await corsair.shortcut.api.getTask.get({"path":{"storyPublicId":1,"taskPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
taskPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | Yes | — |
entity_type | string | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
completed_at | string | null | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
position | number | Yes | — |
complete | boolean | Yes | — |
created_at | string | Yes | — |
Get Workflow
get
getWorkflow.get
Get Workflow
Risk: read
await corsair.shortcut.api.getWorkflow.get({"path":{"workflowPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
workflowPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | Yes | — |
entity_type | string | Yes | — |
project_ids | number[] | Yes | — |
states | object[] | Yes | — |
name | string | Yes | — |
updated_at | string | Yes | — |
auto_assign_owner | boolean | Yes | — |
id | number | Yes | — |
team_id | number | Yes | — |
created_at | string | Yes | — |
default_state_id | number | Yes | — |
states full type
states full type
{
description: string,
entity_type: string,
color?: string,
verb: string | null,
name: string,
global_id: string,
num_stories: number,
type: string,
updated_at: string,
id: number,
num_story_templates: number,
position: number,
created_at: string
}[]
Link Document To Epic
put
linkDocumentToEpic.put
Link Document to Epic
Risk: write
await corsair.shortcut.api.linkDocumentToEpic.put({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012","epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
docPublicId: string,
epicPublicId: number
}
undefined
List Categories
get
listCategories.get
List Categories
Risk: read
await corsair.shortcut.api.listCategories.get({});
object[]
Output full type
Output full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
List Category Milestones
get
listCategoryMilestones.get
List Category Milestones
Risk: read
await corsair.shortcut.api.listCategoryMilestones.get({"path":{"categoryPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
categoryPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
List Category Objectives
get
listCategoryObjectives.get
List Category Objectives
Risk: read
await corsair.shortcut.api.listCategoryObjectives.get({"path":{"categoryPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
categoryPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
List Custom Fields
get
listCustomFields.get
List Custom Fields
Risk: read
await corsair.shortcut.api.listCustomFields.get({});
object[]
Output full type
Output full type
{
description?: string,
icon_set_identifier?: string,
entity_type: custom-field | string,
story_types?: string[],
last_edited_by_id: string | null,
name: string,
fixed_position?: boolean,
creator_id: string | null,
updated_at: string,
id: string,
values?: {
id: string,
value: string,
position: number,
color_key: string | null,
entity_type: custom-field-enum-value | string,
enabled: boolean
}[],
last_edited_at: string | null,
field_type: enum | string,
position: number,
canonical_name?: string,
enabled: boolean,
created_at: string
}[]
List Docs
get
listDocs.get
List Docs
Risk: read
await corsair.shortcut.api.listDocs.get({});
object[]
Output full type
Output full type
{
id: string,
title: string | null,
app_url: string
}[]
List Document Epics
get
listDocumentEpics.get
List Document Epics
Risk: read
await corsair.shortcut.api.listDocumentEpics.get({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012"}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
docPublicId: string
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Entity Templates
get
listEntityTemplates.get
List Entity Templates
Risk: read
await corsair.shortcut.api.listEntityTemplates.get({});
object[]
Output full type
Output full type
{
entity_type: string,
id: string,
created_at: string,
updated_at: string,
name: string,
author_id: string,
last_used_at: string,
story_contents: {
description?: string,
entity_type?: string,
labels?: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
name?: string,
epic_id?: number,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number,
tasks?: {
description: string,
position?: number,
complete?: boolean,
owner_ids?: string[],
external_id?: string | null
}[],
label_ids?: number[],
group_id?: string,
workflow_state_id?: number,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number,
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
project_id?: number,
deadline?: string
}
}[]
List Epic Comments
get
listEpicComments.get
List Epic Comments
Risk: read
await corsair.shortcut.api.listEpicComments.get({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
List Epic Documents
get
listEpicDocuments.get
List Epic Documents
Risk: read
await corsair.shortcut.api.listEpicDocuments.get({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
object[]
Output full type
Output full type
{
id: string,
title: string | null,
app_url: string
}[]
List Epic Healths
get
listEpicHealths.get
List Epic Healths
Risk: read
await corsair.shortcut.api.listEpicHealths.get({"path":{"epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
object[]
Output full type
Output full type
{
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
}[]
List Epics
get
listEpics.get
List Epics
Risk: read
await corsair.shortcut.api.listEpics.get({"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
query full type
query full type
{
includes_description?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Epics Paginated
get
listEpicsPaginated.get
List Epics Paginated
Risk: read
await corsair.shortcut.api.listEpicsPaginated.get({"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
page and page_size; values are forwarded without local pagination defaults.
query full type
query full type
{
includes_description?: boolean,
page?: number,
page_size?: number
}
| Name | Type | Required | Description |
|---|---|---|---|
data | object[] | Yes | — |
next | number | null | Yes | — |
total | number | Yes | — |
data full type
data full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Epic Stories
get
listEpicStories.get
List Epic Stories
Risk: read
await corsair.shortcut.api.listEpicStories.get({"path":{"epicPublicId":1},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
query full type
query full type
{
includes_description?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Files
get
listFiles.get
List Files
Risk: read
await corsair.shortcut.api.listFiles.get({});
object[]
Output full type
Output full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]
List Groups
get
listGroups.get
List Groups
Risk: read
await corsair.shortcut.api.listGroups.get({"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
query full type
query full type
{
archived?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description: string,
archived: boolean,
entity_type: string,
card_aging_mode: off | gradual | immediate | string | null,
color: string | null,
card_aging_threshold_days: number | null,
num_stories_started: number,
mention_name: string,
name: string,
global_id: string,
color_key: blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise | null,
num_stories: number,
num_epics_started: number,
creator_id: string | null,
updated_at: string,
num_stories_backlog: number,
id: string,
display_icon: {
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null,
default_workflow_id?: number | null,
member_ids: string[],
workflow_ids: number[],
created_at: string
}[]
List Group Stories
get
listGroupStories.get
List Group Stories
Risk: read
await corsair.shortcut.api.listGroupStories.get({"path":{"groupPublicId":"12345678-9012-3456-7890-123456789012"},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
limit and offset pagination.
path full type
path full type
{
groupPublicId: string
}
query full type
query full type
{
limit?: number,
offset?: number
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Iterations
get
listIterations.get
List Iterations
Risk: read
await corsair.shortcut.api.listIterations.get({});
object[]
Output full type
Output full type
{
app_url: string,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
name: string,
global_id: string,
label_ids: number[],
updated_at: string,
group_mention_ids: string[],
end_date: string,
follower_ids: string[],
group_ids: string[],
start_date: string,
status: string,
id: number,
stats: {
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string
}[]
List Iteration Stories
get
listIterationStories.get
List Iteration Stories
Risk: read
await corsair.shortcut.api.listIterationStories.get({"path":{"iterationPublicId":1},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
path full type
path full type
{
iterationPublicId: number
}
query full type
query full type
{
includes_description?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Label Epics
get
listLabelEpics.get
List Label Epics
Risk: read
await corsair.shortcut.api.listLabelEpics.get({"path":{"labelPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
labelPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Labels
get
listLabels.get
List Labels
Risk: read
await corsair.shortcut.api.listLabels.get({"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
query full type
query full type
{
slim?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[]
List Label Stories
get
listLabelStories.get
List Label Stories
Risk: read
await corsair.shortcut.api.listLabelStories.get({"path":{"labelPublicId":1},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
path full type
path full type
{
labelPublicId: number
}
query full type
query full type
{
includes_description?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Linked Files
get
listLinkedFiles.get
List Linked Files
Risk: read
await corsair.shortcut.api.listLinkedFiles.get({});
object[]
Output full type
Output full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[]
List Members
get
listMembers.get
List Members
Risk: read
await corsair.shortcut.api.listMembers.get({"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
query full type
query full type
{
org-public-id?: string,
disabled?: boolean
}
object[]
Output full type
Output full type
{
role: string,
entity_type: string,
disabled: boolean,
global_id: string,
state: partial | full | disabled | imported | string,
updated_at: string | null,
created_without_invite: boolean,
group_ids: string[],
id: string,
installation_id?: string,
profile: {
entity_type: string,
deactivated: boolean,
two_factor_auth_activated?: boolean,
mention_name: string,
is_mentionable?: boolean,
name: string | null,
is_agent?: boolean,
gravatar_hash: string | null,
id: string,
display_icon: {
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null,
is_owner: boolean,
is_assignable?: boolean,
email_address: string | null
},
created_at: string | null,
replaced_by?: string
}[]
List Milestone Epics
get
listMilestoneEpics.get
List Milestone Epics
Risk: read
await corsair.shortcut.api.listMilestoneEpics.get({"path":{"milestonePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
milestonePublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Milestones
get
listMilestones.get
List Milestones
Risk: read
await corsair.shortcut.api.listMilestones.get({});
object[]
Output full type
Output full type
{
app_url: string,
description: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
List Objective Epics
get
listObjectiveEpics.get
List Objective Epics
Risk: read
await corsair.shortcut.api.listObjectiveEpics.get({"path":{"objectivePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
List Objective Healths
get
listObjectiveHealths.get
List Objective Healths
Risk: read
await corsair.shortcut.api.listObjectiveHealths.get({"path":{"objectivePublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
object[]
Output full type
Output full type
{
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
}[]
List Objectives
get
listObjectives.get
List Objectives
Risk: read
await corsair.shortcut.api.listObjectives.get({});
object[]
Output full type
Output full type
{
app_url: string,
description: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
List Projects
get
listProjects.get
List Projects
Risk: read
await corsair.shortcut.api.listProjects.get({});
object[]
Output full type
Output full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
days_to_thermometer: number,
color: string | null,
workflow_id: number,
name: string,
global_id: string,
start_time: string,
updated_at: string | null,
follower_ids: string[],
external_id: string | null,
id: number,
show_thermometer: boolean,
team_id: number,
iteration_length: number,
abbreviation: string | null,
stats: {
num_stories: number,
num_points: number,
num_related_documents: number
},
created_at: string | null
}[]
List Repositories
get
listRepositories.get
List Repositories
Risk: read
await corsair.shortcut.api.listRepositories.get({});
object[]
Output full type
Output full type
{
entity_type: string,
name: string | null,
type: github | gitlab | bitbucket | string,
updated_at: string | null,
external_id: string | null,
id: number | null,
url: string | null,
full_name: string | null,
created_at: string | null
}[]
List Stories
get
listStories.get
List Stories
Risk: read
await corsair.shortcut.api.listStories.get({"path":{"projectPublicId":1},"query":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
query | object | Yes | — |
path full type
path full type
{
projectPublicId: number
}
query full type
query full type
{
includes_description?: boolean
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Story Comment
get
listStoryComment.get
List Story Comment
Risk: read
await corsair.shortcut.api.listStoryComment.get({"path":{"storyPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[]
List Story Sub Tasks
get
listStorySubTasks.get
List Story Sub tasks
Risk: read
await corsair.shortcut.api.listStorySubTasks.get({"path":{"storyPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
List Workflows
get
listWorkflows.get
List Workflows
Risk: read
await corsair.shortcut.api.listWorkflows.get({});
object[]
Output full type
Output full type
{
description: string,
entity_type: string,
project_ids: number[],
states: {
description: string,
entity_type: string,
color?: string,
verb: string | null,
name: string,
global_id: string,
num_stories: number,
type: string,
updated_at: string,
id: number,
num_story_templates: number,
position: number,
created_at: string
}[],
name: string,
updated_at: string,
auto_assign_owner: boolean,
id: number,
team_id: number,
created_at: string,
default_state_id: number
}[]
Query Stories
post
queryStories.post
Query Stories
Risk: read
await corsair.shortcut.api.queryStories.post({"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
archived?: boolean,
owner_id?: string | null,
story_type?: feature | chore | bug,
epic_ids?: number[],
project_ids?: (number | null)[],
updated_at_end?: string,
completed_at_end?: string,
workflow_state_types?: (started | backlog | unstarted | done)[],
deadline_end?: string,
created_at_start?: string,
epic_id?: number | null,
label_name?: string,
requested_by_id?: string,
iteration_id?: number | null,
label_ids?: number[],
group_id?: string | null,
workflow_state_id?: number,
iteration_ids?: number[],
created_at_end?: string,
deadline_start?: string,
group_ids?: string[],
owner_ids?: string[],
external_id?: string,
includes_description?: boolean,
estimate?: number,
project_id?: number | null,
completed_at_start?: string,
updated_at_start?: string
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
Search
get
search.get
Search
Risk: read
await corsair.shortcut.api.search.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
epics | object | No | — |
stories | object | No | — |
iterations | object | No | — |
milestones | object | No | — |
epics full type
epics full type
{
total: number,
data: {
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
comments?: {
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[],
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
health?: {
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
},
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[],
next: string | null
}
stories full type
stories full type
{
total: number,
data: {
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids?: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
file_ids?: number[],
num_tasks_completed?: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
comments?: {
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[],
blocker: boolean,
branches?: {
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[],
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
tasks?: {
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
pull_requests?: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
commits?: {
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[],
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids?: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids?: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[],
next: string | null
}
iterations full type
iterations full type
{
total: number,
data: {
app_url: string,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
name: string,
global_id: string,
label_ids: number[],
updated_at: string,
group_mention_ids: string[],
end_date: string,
follower_ids: string[],
group_ids: string[],
start_date: string,
status: string,
id: number,
stats: {
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string
}[],
next: string | null
}
milestones full type
milestones full type
{
total: number,
data: {
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[],
next: string | null
}
Search Documents
get
searchDocuments.get
Search Documents
Risk: read
await corsair.shortcut.api.searchDocuments.get({"query":{"title":"Release notes"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
title: string,
archived?: boolean,
created_by_me?: boolean,
followed_by_me?: boolean,
page_size?: number,
next?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
id: string,
title: string | null,
app_url: string
}[]
Search Epics
get
searchEpics.get
Search Epics
Risk: read
await corsair.shortcut.api.searchEpics.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
project_ids: number[],
stories_without_projects: number,
completed_at_override: string | null,
productboard_plugin_id: string | null,
started_at: string | null,
completed_at: string | null,
objective_ids: number[],
name: string,
global_id: string,
completed: boolean,
comments?: {
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[],
productboard_url: string | null,
planned_start_date: string | null,
state: string,
milestone_id: number | null,
requested_by_id: string,
size: string | null,
epic_state_id: number,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
updated_at: string | null,
group_mention_ids: string[],
productboard_id: string | null,
follower_ids: string[],
group_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
health?: {
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
},
position: number,
productboard_name: string | null,
deadline: string | null,
stats: {
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string | null
}[]
Search Iterations
get
searchIterations.get
Search Iterations
Risk: read
await corsair.shortcut.api.searchIterations.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
app_url: string,
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[],
mention_ids: string[],
member_mention_ids: string[],
associated_groups: {
group_id: string,
associated_stories_count?: number
}[] | null,
name: string,
global_id: string,
label_ids: number[],
updated_at: string,
group_mention_ids: string[],
end_date: string,
follower_ids: string[],
group_ids: string[],
start_date: string,
status: string,
id: number,
stats: {
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
},
created_at: string
}[]
Search Milestones
get
searchMilestones.get
Search Milestones
Risk: read
await corsair.shortcut.api.searchMilestones.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
Search Objectives
get
searchObjectives.get
Search Objectives
Risk: read
await corsair.shortcut.api.searchObjectives.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
entity_type: string,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
state: string,
started_at_override: string | null,
updated_at: string,
categories: {
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[],
id: number,
key_result_ids: string[],
position: number,
stats: {
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
},
created_at: string
}[]
Search Stories
get
searchStories.get
Search Stories
Risk: read
await corsair.shortcut.api.searchStories.get({"query":{"query":"login bug"}});
| Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | — |
next query value and page_size.
query full type
query full type
{
query: string,
page_size?: number,
detail?: full | slim,
next?: string,
entity_types?: (story | milestone | epic | iteration | objective)[]
}
| Name | Type | Required | Description |
|---|---|---|---|
total | number | Yes | — |
data | object[] | Yes | — |
next | string | null | Yes | — |
data full type
data full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids?: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
file_ids?: number[],
num_tasks_completed?: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
comments?: {
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[],
blocker: boolean,
branches?: {
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[],
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
tasks?: {
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
pull_requests?: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
commits?: {
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[],
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids?: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids?: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
Story History
get
storyHistory.get
Story History
Risk: read
await corsair.shortcut.api.storyHistory.get({"path":{"storyPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
object[]
Output full type
Output full type
{
actor_name?: string,
changed_at: string,
primary_id?: number | string,
references?: (
{
id: number | string,
entity_type: string,
name: string,
url: string
} | {
id: number | string,
entity_type: string,
message: string,
url: string
} | {
id: number | string,
entity_type: string,
app_url: string,
name: string
} | {
id: string,
entity_type: string,
name: string
} | {
id: number | string,
entity_type: string,
app_url: string,
name: string
} | {
id: number | string,
entity_type: string,
app_url: string,
name: string
} | {
id: number | string,
entity_type: string,
app_url: string,
name: string
} | {
id: number | string,
entity_type: string,
app_url: string,
name: string,
story_type: feature | chore | bug | string,
parent_story_id?: number
} | {
id: number | string,
entity_type: string,
description: string
} | {
id: number | string,
entity_type: string,
string_value: string | null,
enum_value_enabled: boolean | null,
field_id: string,
field_type: string,
field_name: string,
field_enabled: boolean
} | {
id: number | string,
entity_type: string,
type: started | backlog | unstarted | done | string,
name: string
} | {
id: number | string,
entity_type: string,
name: string
}
)[],
actions: (
{
id: number,
entity_type: string,
name: string,
url: string,
action: create | string
} | {
id: number,
entity_type: string,
name: string,
url: string,
action: merge | string
} | {
id: number,
entity_type: string,
name: string,
url: string,
action: push | string
} | {
id: number,
entity_type: string,
action: create | string,
app_url: string,
name: string
} | {
id: number,
entity_type: string,
action: update | string
} | {
id: number,
entity_type: string,
action: delete | string,
name: string
} | {
id: number,
entity_type: string,
action: update | string,
app_url: string,
name: string
} | {
id: number,
entity_type: string,
action: open | update | reopen | close | sync | comment | string,
number: number,
title: string,
url: string
} | {
app_url: string,
description?: string,
started?: boolean,
entity_type: string,
task_ids?: number[],
story_type: feature | chore | bug | string,
name: string,
completed?: boolean,
blocker?: boolean,
epic_id?: number,
requested_by_id?: string,
iteration_id?: number | null,
label_ids?: number[],
group_id?: string,
workflow_state_id?: number,
object_story_link_ids?: number[],
follower_ids?: string[],
owner_ids?: string[],
custom_field_value_ids?: string[],
id: number,
parent_story_id?: number,
estimate?: number,
subject_story_link_ids?: number[],
action: create | string,
blocked?: boolean,
project_id?: number,
deadline?: string
} | {
id: number,
entity_type: string,
action: update | string,
app_url: string,
changes?: {
description?: {
old?: string | null,
new?: string
},
archived?: {
old?: boolean,
new?: boolean
},
started?: {
old?: boolean,
new?: boolean
},
task_ids?: {
adds?: number[],
removes?: number[]
},
mention_ids?: {
adds?: string[],
removes?: string[]
},
story_type?: {
old?: string | null,
new?: string
},
name?: {
old?: string | null,
new?: string
},
completed?: {
old?: boolean,
new?: boolean
},
blocker?: {
old?: boolean,
new?: boolean
},
epic_id?: {
old?: number,
new?: number
},
branch_ids?: {
adds?: number[],
removes?: number[]
},
commit_ids?: {
adds?: number[],
removes?: number[]
},
requested_by_id?: {
old?: string,
new?: string
},
iteration_id?: {
old?: number,
new?: number
},
label_ids?: {
adds?: number[],
removes?: number[]
},
group_id?: {
old?: string,
new?: string
},
workflow_state_id?: {
old?: number,
new?: number
},
object_story_link_ids?: {
adds?: number[],
removes?: number[]
},
follower_ids?: {
adds?: string[],
removes?: string[]
},
owner_ids?: {
adds?: string[],
removes?: string[]
},
custom_field_value_ids?: {
adds?: string[],
removes?: string[]
},
parent_story_id?: {
old?: number,
new?: number
},
estimate?: {
old?: number,
new?: number
},
subject_story_link_ids?: {
adds?: number[],
removes?: number[]
},
blocked?: {
old?: boolean,
new?: boolean
},
project_id?: {
old?: number,
new?: number
},
deadline?: {
old?: string | null,
new?: string
}
},
name: string,
story_type: feature | chore | bug | string,
parent_story_id?: number
} | {
id: number,
entity_type: string,
action: delete | string,
name: string,
story_type: feature | chore | bug | string,
parent_story_id?: number
} | {
id: number,
entity_type: string,
action: create | string,
app_url: string,
author_id: string
} | {
id: number,
entity_type: string,
action: create | string,
verb: blocks | duplicates | relates to | string,
subject_id: number,
object_id: number
} | {
id: number,
entity_type: string,
action: update | string,
verb: blocks | duplicates | relates to | string,
subject_id: number,
object_id: number,
changes: {
verb?: {
old?: string | null,
new?: string
},
object_id?: {
old?: number,
new?: number
},
subject_id?: {
old?: number,
new?: number
}
}
} | {
id: number,
entity_type: string,
action: delete | string,
verb: blocks | duplicates | relates to | string,
subject_id: number | null,
object_id: number | null
} | {
description: string,
entity_type: string,
mention_ids?: string[],
group_mention_ids?: string[],
owner_ids?: string[],
id: number,
action: create | string,
complete: boolean,
deadline?: string
} | {
id: number,
entity_type: string,
action: update | string,
changes: {
complete?: {
old?: boolean,
new?: boolean
},
description?: {
old?: string | null,
new?: string
},
mention_ids?: {
adds?: string[],
removes?: string[]
},
owner_ids?: {
adds?: string[],
removes?: string[]
}
},
complete?: boolean,
description: string,
story_id: number
} | {
id: number,
entity_type: string,
action: delete | string,
description: string
} | {
id: string,
entity_type: string,
action: bulk-update | string,
name: string
}
)[],
member_id?: string,
external_id?: string,
id: string,
version: v1 | string,
webhook_id?: string | null,
automation_id?: string
}[]
Unlink Comment Thread From Slack
post
unlinkCommentThreadFromSlack.post
Unlink Comment thread from Slack
Risk: write
await corsair.shortcut.api.unlinkCommentThreadFromSlack.post({"path":{"storyPublicId":1,"commentPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | null | Yes | — |
member_mention_ids | string[] | Yes | — |
blocker | boolean | No | — |
linked_to_slack | boolean | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
parent_id | number | null | No | — |
id | number | Yes | — |
position | number | Yes | — |
unblocks_parent | boolean | No | — |
reactions | object[] | Yes | — |
created_at | string | Yes | — |
text | string | null | Yes | — |
reactions full type
reactions full type
{
emoji: string,
permission_ids: string[]
}[]
Unlink Document From Epic
delete
unlinkDocumentFromEpic.delete
Unlink Document from Epic
Risk: destructive
await corsair.shortcut.api.unlinkDocumentFromEpic.delete({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012","epicPublicId":1}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
path full type
path full type
{
docPublicId: string,
epicPublicId: number
}
undefined
Update Category
put
updateCategory.put
Update Category
Risk: write
await corsair.shortcut.api.updateCategory.put({"path":{"categoryPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
categoryPublicId: number
}
body full type
body full type
{
name?: string,
color?: string | null,
archived?: boolean
}
| Name | Type | Required | Description |
|---|---|---|---|
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
type | string | Yes | — |
updated_at | string | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
Update Custom Field
put
updateCustomField.put
Update Custom Field
Risk: write
await corsair.shortcut.api.updateCustomField.put({"path":{"customFieldPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
customFieldPublicId: string
}
body full type
body full type
{
enabled?: boolean,
name?: string,
values?: {
id?: string,
value?: string,
color_key?: blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise | null,
enabled?: boolean
}[],
icon_set_identifier?: string,
description?: string,
before_id?: string,
after_id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | — |
icon_set_identifier | string | No | — |
entity_type | custom-field | string | Yes | — |
story_types | string[] | No | — |
last_edited_by_id | string | null | Yes | — |
name | string | Yes | — |
fixed_position | boolean | No | — |
creator_id | string | null | Yes | — |
updated_at | string | Yes | — |
id | string | Yes | — |
values | object[] | No | — |
last_edited_at | string | null | Yes | — |
field_type | enum | string | Yes | — |
position | number | Yes | — |
canonical_name | string | No | — |
enabled | boolean | Yes | — |
created_at | string | Yes | — |
values full type
values full type
{
id: string,
value: string,
position: number,
color_key: string | null,
entity_type: custom-field-enum-value | string,
enabled: boolean
}[]
Update Doc
put
updateDoc.put
Update Doc
Risk: write
await corsair.shortcut.api.updateDoc.put({"path":{"docPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
content_format is omitted. Set markdown when writing Markdown content.
path full type
path full type
{
docPublicId: string
}
body full type
body full type
{
title?: string,
content?: string,
content_format?: markdown | html
}
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
title | string | null | Yes | — |
content_markdown | string | null | Yes | — |
content_html | string | null | No | — |
app_url | string | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
archived | boolean | Yes | — |
Update Entity Template
put
updateEntityTemplate.put
Update Entity Template
Risk: write
await corsair.shortcut.api.updateEntityTemplate.put({"path":{"entityTemplatePublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
entityTemplatePublicId: string
}
body full type
body full type
{
name?: string,
story_contents?: {
description?: string,
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
file_ids?: number[],
name?: string,
epic_id?: number | null,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number | null,
tasks?: {
description: string,
complete?: boolean,
owner_ids?: string[],
external_id?: string
}[],
group_id?: string | null,
workflow_state_id?: number | null,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number | null,
project_id?: number | null,
linked_file_ids?: number[],
deadline?: string | null
}
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | string | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
name | string | Yes | — |
author_id | string | Yes | — |
last_used_at | string | Yes | — |
story_contents | object | Yes | — |
story_contents full type
story_contents full type
{
description?: string,
entity_type?: string,
labels?: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
story_type?: string,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
linked_files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[],
name?: string,
epic_id?: number,
external_links?: string[],
sub_tasks?: {
name: string,
owner_ids?: string[],
workflow_state_id?: number
}[],
iteration_id?: number,
tasks?: {
description: string,
position?: number,
complete?: boolean,
owner_ids?: string[],
external_id?: string | null
}[],
label_ids?: number[],
group_id?: string,
workflow_state_id?: number,
follower_ids?: string[],
owner_ids?: string[],
estimate?: number,
files?: {
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[],
project_id?: number,
deadline?: string
}
Update Epic
put
updateEpic.put
Update Epic
Risk: write
await corsair.shortcut.api.updateEpic.put({"path":{"epicPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
epicPublicId: number
}
body full type
body full type
{
description?: string,
archived?: boolean,
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
completed_at_override?: string | null,
objective_ids?: number[],
name?: string,
planned_start_date?: string | null,
state?: in progress | to do | done,
milestone_id?: number | null,
requested_by_id?: string,
size?: small | xlarge | medium | large | null,
epic_state_id?: number,
started_at_override?: string | null,
group_id?: string | null,
follower_ids?: string[],
group_ids?: string[],
owner_ids?: string[],
external_id?: string,
before_id?: number,
after_id?: number,
deadline?: string | null
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
project_ids | number[] | Yes | — |
stories_without_projects | number | Yes | — |
completed_at_override | string | null | Yes | — |
productboard_plugin_id | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
objective_ids | number[] | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
productboard_url | string | null | Yes | — |
planned_start_date | string | null | Yes | — |
state | string | Yes | — |
milestone_id | number | null | Yes | — |
requested_by_id | string | Yes | — |
size | string | null | Yes | — |
epic_state_id | number | Yes | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
productboard_id | string | null | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
health | object | No | — |
position | number | Yes | — |
productboard_name | string | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
health full type
health full type
{
entity_type: string,
author_id?: string,
epic_id?: number,
objective_id?: number,
updated_at?: string,
status: At Risk | On Track | Off Track | No Health | string,
id: string | null,
created_at?: string,
text?: string
}
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
num_stories_unstarted: number,
num_stories_total: number,
last_story_update: string | null,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Update Epic Comment
put
updateEpicComment.put
Update Epic Comment
Risk: write
await corsair.shortcut.api.updateEpicComment.put({"path":{"epicPublicId":1,"commentPublicId":1},"body":{"text":"Looks good to me."}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
epicPublicId: number,
commentPublicId: number
}
body full type
body full type
{
text: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | Yes | — |
member_mention_ids | string[] | Yes | — |
comments | object[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
created_at | string | Yes | — |
text | string | Yes | — |
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
mention_ids: string[],
author_id: string,
member_mention_ids: string[],
comments: (recursive)[],
updated_at: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
created_at: string,
text: string
}[]
Update File
put
updateFile.put
Update File
Risk: write
await corsair.shortcut.api.updateFile.put({"path":{"filePublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
filePublicId: number
}
body full type
body full type
{
description?: string,
created_at?: string,
updated_at?: string,
name?: string,
uploader_id?: string,
external_id?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | null | Yes | — |
entity_type | string | Yes | — |
story_ids | number[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
name | string | Yes | — |
thumbnail_url | string | null | Yes | — |
size | number | Yes | — |
uploader_id | string | Yes | — |
content_type | string | Yes | — |
updated_at | string | null | Yes | — |
filename | string | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
url | string | null | Yes | — |
created_at | string | Yes | — |
Update Group
put
updateGroup.put
Update Group
Risk: write
await corsair.shortcut.api.updateGroup.put({"path":{"groupPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
groupPublicId: string
}
body full type
body full type
{
description?: string,
archived?: boolean | null,
card_aging_mode?: off | gradual | immediate | null,
color?: string | null,
card_aging_threshold_days?: number | null,
display_icon_id?: string | null,
mention_name?: string,
name?: string,
color_key?: blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise,
default_workflow_id?: number | null,
member_ids?: string[],
workflow_ids?: number[]
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
card_aging_mode | off | gradual | immediate | string | null | Yes | — |
color | string | null | Yes | — |
card_aging_threshold_days | number | null | Yes | — |
num_stories_started | number | Yes | — |
mention_name | string | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
color_key | blue | purple | midnight-blue | orange | yellow-green | brass | gray | fuchsia | yellow | pink | sky-blue | green | red | black | slate | turquoise | null | Yes | — |
num_stories | number | Yes | — |
num_epics_started | number | Yes | — |
creator_id | string | null | Yes | — |
updated_at | string | Yes | — |
num_stories_backlog | number | Yes | — |
id | string | Yes | — |
display_icon | object | null | Yes | — |
default_workflow_id | number | null | No | — |
member_ids | string[] | Yes | — |
workflow_ids | number[] | Yes | — |
created_at | string | Yes | — |
display_icon full type
display_icon full type
{
entity_type: string,
id: string,
created_at: string,
updated_at: string,
url: string
} | null
Update Health
put
updateHealth.put
Update Health
Risk: write
await corsair.shortcut.api.updateHealth.put({"path":{"healthPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
healthPublicId: string
}
body full type
body full type
{
status?: At Risk | On Track | Off Track | No Health,
text?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
author_id | string | No | — |
epic_id | number | No | — |
objective_id | number | No | — |
updated_at | string | No | — |
status | At Risk | On Track | Off Track | No Health | string | Yes | — |
id | string | null | Yes | — |
created_at | string | No | — |
text | string | No | — |
Update Iteration
put
updateIteration.put
Update Iteration
Risk: write
await corsair.shortcut.api.updateIteration.put({"path":{"iterationPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
iterationPublicId: number
}
body full type
body full type
{
follower_ids?: string[],
group_ids?: string[],
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
description?: string,
name?: string,
start_date?: string,
end_date?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
associated_groups | object[] | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
label_ids | number[] | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
end_date | string | Yes | — |
follower_ids | string[] | Yes | — |
group_ids | string[] | Yes | — |
start_date | string | Yes | — |
status | string | Yes | — |
id | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
stats?: {
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
},
created_at: string | null
}[]
associated_groups full type
associated_groups full type
{
group_id: string,
associated_stories_count?: number
}[] | null
stats full type
stats full type
{
num_points_done: number,
num_related_documents: number,
average_cycle_time?: number,
num_stories_unstarted: number,
num_points_started: number,
num_points_unstarted: number,
num_stories_started: number,
num_stories_unestimated: number,
num_stories_backlog: number,
average_lead_time?: number,
num_points_backlog: number,
num_points: number,
num_stories_done: number
}
Update Key Result
put
updateKeyResult.put
Update Key Result
Risk: write
await corsair.shortcut.api.updateKeyResult.put({"path":{"keyResultPublicId":"12345678-9012-3456-7890-123456789012"},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
keyResultPublicId: string
}
body full type
body full type
{
name?: string,
initial_observed_value?: {
numeric_value?: string,
boolean_value?: boolean
},
observed_value?: {
numeric_value?: string,
boolean_value?: boolean
},
target_value?: {
numeric_value?: string,
boolean_value?: boolean
}
}
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
name | string | Yes | — |
objective_id | number | Yes | — |
type | percent | boolean | numeric | string | Yes | — |
initial_observed_value | object | Yes | — |
current_observed_value | object | Yes | — |
current_target_value | object | Yes | — |
progress | number | Yes | — |
initial_observed_value full type
initial_observed_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
current_observed_value full type
current_observed_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
current_target_value full type
current_target_value full type
{
numeric_value?: string,
boolean_value?: boolean
}
Update Label
put
updateLabel.put
Update Label
Risk: write
await corsair.shortcut.api.updateLabel.put({"path":{"labelPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
labelPublicId: number
}
body full type
body full type
{
name?: string,
description?: string,
color?: string | null,
archived?: boolean
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
color | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
stats | object | No | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_related_documents: number,
num_epics: number,
num_stories_unstarted: number,
num_stories_total: number,
num_epics_unstarted: number,
num_epics_in_progress: number,
num_points_unstarted: number,
num_stories_unestimated: number,
num_points_in_progress: number,
num_epics_total: number,
num_stories_completed: number,
num_points_completed: number,
num_stories_backlog: number,
num_points_total: number,
num_stories_in_progress: number,
num_points_backlog: number,
num_epics_completed: number
}
Update Linked File
put
updateLinkedFile.put
Update Linked File
Risk: write
await corsair.shortcut.api.updateLinkedFile.put({"path":{"linkedFilePublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
linkedFilePublicId: number
}
body full type
body full type
{
description?: string,
story_id?: number,
name?: string,
thumbnail_url?: string,
type?: google | url | dropbox | box | onedrive,
size?: number,
uploader_id?: string,
url?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | null | Yes | — |
entity_type | string | Yes | — |
story_ids | number[] | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
name | string | Yes | — |
thumbnail_url | string | null | Yes | — |
type | string | Yes | — |
size | number | null | Yes | — |
uploader_id | string | Yes | — |
content_type | string | null | Yes | — |
updated_at | string | Yes | — |
group_mention_ids | string[] | Yes | — |
id | number | Yes | — |
url | string | Yes | — |
created_at | string | Yes | — |
Update Milestone
put
updateMilestone.put
Update Milestone
Risk: write
await corsair.shortcut.api.updateMilestone.put({"path":{"milestonePublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
milestonePublicId: number
}
body full type
body full type
{
description?: string,
archived?: boolean,
completed_at_override?: string | null,
name?: string,
state?: in progress | to do | done,
started_at_override?: string | null,
categories?: {
name: string,
color?: string,
external_id?: string
}[],
before_id?: number,
after_id?: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Update Multiple Stories
put
updateMultipleStories.put
Update Multiple Stories
Risk: write
await corsair.shortcut.api.updateMultipleStories.put({"body":{"story_ids":[1]}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | Yes | — |
body full type
body full type
{
archived?: boolean,
story_ids: number[],
story_type?: feature | chore | bug,
move_to?: last | first,
follower_ids_add?: string[],
epic_id?: number | null,
external_links?: string[],
follower_ids_remove?: string[],
requested_by_id?: string,
iteration_id?: number | null,
custom_fields_remove?: {
field_id: string,
value_id: string,
value?: string
}[],
labels_add?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
group_id?: string | null,
workflow_state_id?: number,
before_id?: number,
estimate?: number | null,
after_id?: number,
owner_ids_remove?: string[],
custom_fields_add?: {
field_id: string,
value_id: string,
value?: string
}[],
project_id?: number | null,
labels_remove?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
deadline?: string | null,
owner_ids_add?: string[]
}
object[]
Output full type
Output full type
{
app_url: string,
description?: string,
archived: boolean,
started: boolean,
story_links: {
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[],
entity_type: string,
labels: {
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[],
task_ids: number[],
mention_ids: string[],
synced_item?: {
external_id: string,
url: string
},
member_mention_ids: string[],
story_type: string,
custom_fields?: {
field_id: string,
value_id: string,
value: string
}[],
file_ids: number[],
num_tasks_completed: number,
workflow_id: number,
completed_at_override: string | null,
started_at: string | null,
completed_at: string | null,
name: string,
global_id: string,
completed: boolean,
blocker: boolean,
epic_id: number | null,
story_template_id: string | null,
external_links: string[],
previous_iteration_ids: number[],
requested_by_id: string,
iteration_id: number | null,
sub_task_story_ids?: number[],
formatted_vcs_branch_name?: string | null,
label_ids: number[],
started_at_override: string | null,
group_id: string | null,
workflow_state_id: number,
updated_at: string | null,
group_mention_ids: string[],
follower_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
lead_time?: number,
parent_story_id?: number | null,
estimate: number | null,
position: number,
blocked: boolean,
project_id: number | null,
linked_file_ids: number[],
deadline: string | null,
stats: {
num_related_documents: number
},
comment_ids: number[],
cycle_time?: number,
created_at: string,
moved_at: string | null
}[]
Update Objective
put
updateObjective.put
Update Objective
Risk: write
await corsair.shortcut.api.updateObjective.put({"path":{"objectivePublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
objectivePublicId: number
}
body full type
body full type
{
description?: string,
archived?: boolean,
completed_at_override?: string | null,
name?: string,
state?: in progress | to do | done,
started_at_override?: string | null,
categories?: {
name: string,
color?: string,
external_id?: string
}[],
before_id?: number,
after_id?: number
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
entity_type | string | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
state | string | Yes | — |
started_at_override | string | null | Yes | — |
updated_at | string | Yes | — |
categories | object[] | Yes | — |
id | number | Yes | — |
key_result_ids | string[] | Yes | — |
position | number | Yes | — |
stats | object | Yes | — |
created_at | string | Yes | — |
categories full type
categories full type
{
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
type: string,
updated_at: string,
external_id: string | null,
id: number,
created_at: string
}[]
stats full type
stats full type
{
average_cycle_time?: number,
average_lead_time?: number,
num_related_documents: number
}
Update Project
put
updateProject.put
Update Project
Risk: write
await corsair.shortcut.api.updateProject.put({"path":{"projectPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
projectPublicId: number
}
body full type
body full type
{
description?: string,
archived?: boolean,
days_to_thermometer?: number,
color?: string,
name?: string,
follower_ids?: string[],
show_thermometer?: boolean,
team_id?: number,
abbreviation?: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | null | Yes | — |
archived | boolean | Yes | — |
entity_type | string | Yes | — |
days_to_thermometer | number | Yes | — |
color | string | null | Yes | — |
workflow_id | number | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
start_time | string | Yes | — |
updated_at | string | null | Yes | — |
follower_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
show_thermometer | boolean | Yes | — |
team_id | number | Yes | — |
iteration_length | number | Yes | — |
abbreviation | string | null | Yes | — |
stats | object | Yes | — |
created_at | string | null | Yes | — |
stats full type
stats full type
{
num_stories: number,
num_points: number,
num_related_documents: number
}
Update Story
put
updateStory.put
Update Story
Risk: write
await corsair.shortcut.api.updateStory.put({"path":{"storyPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number
}
body full type
body full type
{
description?: string,
archived?: boolean,
labels?: {
name: string,
description?: string,
color?: string,
external_id?: string
}[],
pull_request_ids?: number[],
story_type?: feature | chore | bug,
custom_fields?: {
field_id: string,
value_id: string,
value?: string
}[],
move_to?: last | first,
file_ids?: number[],
completed_at_override?: string | null,
name?: string,
epic_id?: number | null,
external_links?: string[],
branch_ids?: number[],
commit_ids?: number[],
sub_tasks?: {
story_id: number
}[],
requested_by_id?: string,
iteration_id?: number | null,
started_at_override?: string | null,
group_id?: string | null,
workflow_state_id?: number,
follower_ids?: string[],
owner_ids?: string[],
parent_story_id?: number | null,
before_id?: number,
estimate?: number | null,
after_id?: number,
project_id?: number | null,
linked_file_ids?: number[],
deadline?: string | null
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
description | string | Yes | — |
archived | boolean | Yes | — |
started | boolean | Yes | — |
story_links | object[] | Yes | — |
entity_type | string | Yes | — |
labels | object[] | Yes | — |
mention_ids | string[] | Yes | — |
synced_item | object | No | — |
member_mention_ids | string[] | Yes | — |
story_type | string | Yes | — |
custom_fields | object[] | No | — |
linked_files | object[] | Yes | — |
workflow_id | number | Yes | — |
completed_at_override | string | null | Yes | — |
started_at | string | null | Yes | — |
completed_at | string | null | Yes | — |
name | string | Yes | — |
global_id | string | Yes | — |
completed | boolean | Yes | — |
comments | object[] | Yes | — |
blocker | boolean | Yes | — |
branches | object[] | Yes | — |
epic_id | number | null | Yes | — |
story_template_id | string | null | Yes | — |
external_links | string[] | Yes | — |
previous_iteration_ids | number[] | Yes | — |
requested_by_id | string | Yes | — |
iteration_id | number | null | Yes | — |
sub_task_story_ids | number[] | No | — |
tasks | object[] | Yes | — |
formatted_vcs_branch_name | string | null | No | — |
label_ids | number[] | Yes | — |
started_at_override | string | null | Yes | — |
group_id | string | null | Yes | — |
workflow_state_id | number | Yes | — |
updated_at | string | null | Yes | — |
pull_requests | object[] | Yes | — |
group_mention_ids | string[] | Yes | — |
follower_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
lead_time | number | No | — |
parent_story_id | number | null | No | — |
estimate | number | null | Yes | — |
commits | object[] | Yes | — |
files | object[] | Yes | — |
position | number | Yes | — |
blocked | boolean | Yes | — |
project_id | number | null | Yes | — |
deadline | string | null | Yes | — |
stats | object | Yes | — |
cycle_time | number | No | — |
created_at | string | Yes | — |
moved_at | string | null | Yes | — |
story_links full type
story_links full type
{
entity_type: string,
object_id: number,
verb: string,
type: string,
updated_at: string,
id: number,
subject_id: number,
subject_workflow_state_id: number,
created_at: string
}[]
labels full type
labels full type
{
app_url: string,
description: string | null,
archived: boolean,
entity_type: string,
color: string | null,
name: string,
global_id: string,
updated_at: string | null,
external_id: string | null,
id: number,
created_at: string | null
}[]
synced_item full type
synced_item full type
{
external_id: string,
url: string
}
custom_fields full type
custom_fields full type
{
field_id: string,
value_id: string,
value: string
}[]
linked_files full type
linked_files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
type: string,
size: number | null,
uploader_id: string,
content_type: string | null,
updated_at: string,
group_mention_ids: string[],
id: number,
url: string,
created_at: string
}[]
comments full type
comments full type
{
app_url: string,
entity_type: string,
deleted: boolean,
story_id: number,
mention_ids: string[],
author_id: string | null,
member_mention_ids: string[],
blocker?: boolean,
linked_to_slack: boolean,
updated_at: string | null,
group_mention_ids: string[],
external_id: string | null,
parent_id?: number | null,
id: number,
position: number,
unblocks_parent?: boolean,
reactions: {
emoji: string,
permission_ids: string[]
}[],
created_at: string,
text: string | null
}[]
branches full type
branches full type
{
entity_type: string,
deleted: boolean,
name: string,
persistent: boolean,
updated_at: string | null,
pull_requests: {
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[],
merged_branch_ids: number[],
id: number | null,
url: string,
repository_id: number,
created_at: string | null
}[]
tasks full type
tasks full type
{
description: string,
entity_type: string,
story_id: number,
mention_ids: string[],
member_mention_ids: string[],
completed_at: string | null,
global_id: string,
updated_at: string | null,
group_mention_ids: string[],
owner_ids: string[],
external_id: string | null,
id: number,
position: number,
complete: boolean,
created_at: string
}[]
pull_requests full type
pull_requests full type
{
entity_type: string,
closed: boolean,
merged: boolean,
num_added: number,
branch_id: number,
overlapping_stories?: number[],
number: number,
branch_name: string,
target_branch_name: string,
num_commits: number | null,
title: string,
updated_at: string,
has_overlapping_stories: boolean,
draft: boolean,
id: number,
vcs_labels?: {
entity_type: string,
id: number,
color: string,
description?: string | null,
name: string
}[] | null,
url: string,
num_removed: number,
review_status?: string,
num_modified: number | null,
build_status?: string,
target_branch_id: number,
repository_id: number,
created_at: string
}[]
commits full type
commits full type
{
entity_type: string,
author_id: string | null,
hash: string,
updated_at: string | null,
id: number | null,
url: string,
author_email: string,
timestamp: string,
author_identity: {
entity_type: string,
name: string | null,
type: slack | github | gitlab | bitbucket | string | null
},
repository_id: number | null,
created_at: string,
message: string
}[]
files full type
files full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]
stats full type
stats full type
{
num_related_documents: number
}
Update Story Comment
put
updateStoryComment.put
Update Story Comment
Risk: write
await corsair.shortcut.api.updateStoryComment.put({"path":{"storyPublicId":1,"commentPublicId":1},"body":{"text":"Looks good to me."}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
commentPublicId: number
}
body full type
body full type
{
text: string
}
| Name | Type | Required | Description |
|---|---|---|---|
app_url | string | Yes | — |
entity_type | string | Yes | — |
deleted | boolean | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
author_id | string | null | Yes | — |
member_mention_ids | string[] | Yes | — |
blocker | boolean | No | — |
linked_to_slack | boolean | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
parent_id | number | null | No | — |
id | number | Yes | — |
position | number | Yes | — |
unblocks_parent | boolean | No | — |
reactions | object[] | Yes | — |
created_at | string | Yes | — |
text | string | null | Yes | — |
reactions full type
reactions full type
{
emoji: string,
permission_ids: string[]
}[]
Update Story Link
put
updateStoryLink.put
Update Story Link
Risk: write
await corsair.shortcut.api.updateStoryLink.put({"path":{"storyLinkPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyLinkPublicId: number
}
body full type
body full type
{
verb?: blocks | duplicates | relates to,
subject_id?: number,
object_id?: number
}
| Name | Type | Required | Description |
|---|---|---|---|
entity_type | string | Yes | — |
id | number | Yes | — |
subject_id | number | Yes | — |
subject_workflow_state_id | number | Yes | — |
verb | string | Yes | — |
object_id | number | Yes | — |
created_at | string | Yes | — |
updated_at | string | Yes | — |
Update Task
put
updateTask.put
Update Task
Risk: write
await corsair.shortcut.api.updateTask.put({"path":{"storyPublicId":1,"taskPublicId":1},"body":{}});
| Name | Type | Required | Description |
|---|---|---|---|
path | object | Yes | — |
body | object | Yes | — |
path full type
path full type
{
storyPublicId: number,
taskPublicId: number
}
body full type
body full type
{
description?: string,
owner_ids?: string[],
complete?: boolean,
before_id?: number,
after_id?: number
}
| Name | Type | Required | Description |
|---|---|---|---|
description | string | Yes | — |
entity_type | string | Yes | — |
story_id | number | Yes | — |
mention_ids | string[] | Yes | — |
member_mention_ids | string[] | Yes | — |
completed_at | string | null | Yes | — |
global_id | string | Yes | — |
updated_at | string | null | Yes | — |
group_mention_ids | string[] | Yes | — |
owner_ids | string[] | Yes | — |
external_id | string | null | Yes | — |
id | number | Yes | — |
position | number | Yes | — |
complete | boolean | Yes | — |
created_at | string | Yes | — |
Upload Files
post
uploadFiles.post
Upload Files
Risk: write
await corsair.shortcut.api.uploadFiles.post({"body":{"file0": new Blob(["sample"])}});
| Name | Type | Required | Description |
|---|---|---|---|
body | object | No | — |
file0; file1 through file3 are optional multipart file fields.
body full type
body full type
{
story_id?: number,
file0: custom,
file1?: custom,
file2?: custom,
file3?: custom
}
object[]
Output full type
Output full type
{
description: string | null,
entity_type: string,
story_ids: number[],
mention_ids: string[],
member_mention_ids: string[],
name: string,
thumbnail_url: string | null,
size: number,
uploader_id: string,
content_type: string,
updated_at: string | null,
filename: string,
group_mention_ids: string[],
external_id: string | null,
id: number,
url: string | null,
created_at: string
}[]