luke.mxDocs

Search docs

Search every page of the documentation.

API reference

Issue spaces

Spaces, their settings, versions (releases) and components.

See Issues.

GET /v1/orgs/:orgId/issues/spaces

Spaces the caller can browse (archived=1 includes archived ones).

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
Query parameterTypeRequiredNotes
archived"0" | "1"No

Response 200

{
  spaces: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: object[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: object
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: object
        }[]
        slas: {
          id: string
          name: string
          start: object
          pause: object
          stop: object
          goals: object
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
}

POST /v1/orgs/:orgId/issues/spaces

Creates a space from a template (scrum, kanban, bugs, service, basic) with its board; the caller becomes lead.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).

Request body

FieldTypeRequiredNotes
keystringYes2–10 characters; trimmed
namestringYes1–80 characters; trimmed
template"scrum" | "kanban" | "bugs" | "service" | "basic"Yes
descriptionstringNoup to 2,000 characters
leadIdstringNoup to 64 characters
iconstringNoup to 16 characters
color"gray" | "blue" | "green" | "teal" | "yellow" | "orange" | "red" | "pink" | "purple"No

Response 201

{
  space: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: {
          type: "spaceRole"
          role: "admin" | "viewer" | "member"
        } | {
          type: "orgRole"
          role: string
        } | {
          type: "user"
          id: string
        } | {
          type: "team"
          id: string
        } | {
          type: "reporter"
        } | {
          type: "assignee"
        } | {
          type: "lead"
        } | {
          type: "anyone"
        }[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: string[]
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: string[]
        }[]
        slas: {
          id: string
          name: string
          start: string[]
          pause: string[]
          stop: string[]
          goals: object[]
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object[]
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}

GET /v1/orgs/:orgId/issues/spaces/:spaceKey

A space with what the caller may do in it, its versions and components.

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  space: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: {
          type: "spaceRole"
          role: "admin" | "viewer" | "member"
        } | {
          type: "orgRole"
          role: string
        } | {
          type: "user"
          id: string
        } | {
          type: "team"
          id: string
        } | {
          type: "reporter"
        } | {
          type: "assignee"
        } | {
          type: "lead"
        } | {
          type: "anyone"
        }[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: string[]
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: string[]
        }[]
        slas: {
          id: string
          name: string
          start: string[]
          pause: string[]
          stop: string[]
          goals: object[]
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object[]
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }
  permissions: {
    link?: boolean
    worklog?: boolean
    delete?: boolean
    comment?: boolean
    create?: boolean
    browse?: boolean
    edit?: boolean
    editOwn?: boolean
    transition?: boolean
    assign?: boolean
    assignable?: boolean
    deleteOwn?: boolean
    editComments?: boolean
    deleteComments?: boolean
    attach?: boolean
    deleteAttachments?: boolean
    manageWatchers?: boolean
    manageSprints?: boolean
    move?: boolean
    administer?: boolean
    serviceAgent?: boolean
  }
  allPermissions: ["browse", "create", "edit", "editOwn", "transition", "assign", "assignable", "delete", "deleteOwn", "comment", "editComments", "deleteComments", "attach", "deleteAttachments", "link", "worklog", "manageWatchers", "manageSprints", "move", "administer", "serviceAgent"]
  versions: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }[]
  components: {
    componentId: string
    spaceId: string
    name: string
    description: string
    leadId?: string
    defaultAssignee: "space" | "lead" | "unassigned"
  }[]
}

PATCH /v1/orgs/:orgId/issues/spaces/:spaceKey

Changes a space: name, key (old keys keep resolving), lead, and its configuration (types, workflows, screens, fields, access, security levels, notifications, service desk).

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Request body

FieldTypeRequiredNotes
namestringNo1–80 characters; trimmed
keystringNo2–10 characters; trimmed
descriptionstringNoup to 2,000 characters
leadIdstringNoup to 64 characters
iconstringNoup to 16 characters
color"gray" | "blue" | "green" | "teal" | "yellow" | "orange" | "red" | "pink" | "purple"No
configobjectNo
config.issueTypeIdsstring[]Noup to 50 items; each up to 32 characters
config.defaultTypeIdstringNoup to 32 characters
config.workflowsobjectNokeys up to 32 characters; values: string (up to 64 characters)
config.screensobjectNo
config.screens.createobjectYesvalues: string (up to 64 characters)
config.screens.editobjectYesvalues: string (up to 64 characters)
config.screens.viewobjectYesvalues: string (up to 64 characters)
config.fieldSettingsobjectNokeys up to 64 characters; values: object
config.customFieldIdsstring[]Noup to 200 items; each up to 64 characters
config.accessobjectNo
config.access.visibility"org" | "private"Yes
config.access.membersobject[]Yesup to 500 items
config.access.members[].type"user" | "team"Yes
config.access.members[].idstringYesup to 64 characters
config.access.members[].role"admin" | "member" | "viewer"Yes
config.permissionSchemeIdstringNoup to 64 characters
config.securityLevelsobject[]Noup to 20 items
config.securityLevels[].idstringYesup to 40 characters
config.securityLevels[].namestringYes1–80 characters; trimmed
config.securityLevels[].descriptionstringNoup to 500 characters
config.securityLevels[].grantsobject[]Yesup to 50 items
config.securityLevels[].grants[].typestringYesup to 20 characters
config.securityLevels[].grants[].rolestringNoup to 20 characters
config.securityLevels[].grants[].idstringNoup to 64 characters
config.defaultSecurityLevelIdstringNoup to 40 characters
config.notificationsobjectNovalues: ("assignee" | "reporter" | "watchers" | "lead" | "participants")[]
config.defaultAssignee"unassigned" | "lead"No
config.estimation"storyPoints" | "originalEstimate" | "count"No
config.servicedeskobjectNo
config.servicedesk.requestTypesobject[]Yesup to 100 items
config.servicedesk.requestTypes[].idstringYesup to 40 characters
config.servicedesk.requestTypes[].namestringYes1–80 characters; trimmed
config.servicedesk.requestTypes[].descriptionstringNoup to 500 characters
config.servicedesk.requestTypes[].iconstringNoup to 40 characters
config.servicedesk.requestTypes[].typeIdstringYesup to 32 characters
config.servicedesk.requestTypes[].groupstringNoup to 60 characters
config.servicedesk.requestTypes[].fieldsstring[]Yesup to 30 items; each up to 64 characters
config.servicedesk.requestTypes[].hiddenbooleanNo
config.servicedesk.queuesobject[]Yesup to 50 items
config.servicedesk.queues[].idstringYesup to 40 characters
config.servicedesk.queues[].namestringYes1–80 characters; trimmed
config.servicedesk.queues[].querystringYesup to 2,000 characters
config.servicedesk.queues[].columnsstring[]Noup to 20 items; each up to 64 characters
config.servicedesk.slasobject[]Yesup to 20 items
config.servicedesk.slas[].idstringYesup to 40 characters
config.servicedesk.slas[].namestringYes1–80 characters; trimmed
config.servicedesk.slas[].startstring[]Yesup to 20 items; each up to 80 characters
config.servicedesk.slas[].pausestring[]Yesup to 20 items; each up to 80 characters
config.servicedesk.slas[].stopstring[]Yesup to 20 items; each up to 80 characters
config.servicedesk.slas[].goalsobject[]Yesup to 20 items
config.servicedesk.slas[].goals[].querystringNoup to 2,000 characters
config.servicedesk.slas[].goals[].minutesintegerYes1–525600
config.servicedesk.slas[].goals[].calendar"business" | "always"No
config.servicedesk.hoursobjectYes
config.servicedesk.hours.timeZonestringYesup to 64 characters
config.servicedesk.hours.daysobjectYesvalues: integer[][] (up to 4 items, each 2 items, each 0–1440)
config.servicedesk.hours.holidaysstring[]Yesup to 200 items; each matches ^\d{4}-\d{2}-\d{2}$
config.servicedesk.portalobjectYes
config.servicedesk.portal.enabledbooleanYes
config.servicedesk.portal.titlestringYesup to 100 characters
config.servicedesk.portal.introstringYesup to 2,000 characters
config.servicedesk.portal.access"org" | "listed" | "any"Yes
config.servicedesk.portal.customersstring[]Yesup to 5,000 items; each up to 320 characters
config.servicedesk.cannedResponsesobject[]Yesup to 100 items
config.servicedesk.cannedResponses[].idstringYesup to 40 characters
config.servicedesk.cannedResponses[].namestringYesup to 80 characters
config.servicedesk.cannedResponses[].bodystringYesup to 8,000 characters
config.servicedesk.satisfactionbooleanYes
baseVersionintegerNo≥ 0

Response 200

{
  space: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: {
          type: "spaceRole"
          role: "admin" | "viewer" | "member"
        } | {
          type: "orgRole"
          role: string
        } | {
          type: "user"
          id: string
        } | {
          type: "team"
          id: string
        } | {
          type: "reporter"
        } | {
          type: "assignee"
        } | {
          type: "lead"
        } | {
          type: "anyone"
        }[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: string[]
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: string[]
        }[]
        slas: {
          id: string
          name: string
          start: string[]
          pause: string[]
          stop: string[]
          goals: object[]
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object[]
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/archive

Archives a space: read-only and hidden from lists.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  space: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: {
          type: "spaceRole"
          role: "admin" | "viewer" | "member"
        } | {
          type: "orgRole"
          role: string
        } | {
          type: "user"
          id: string
        } | {
          type: "team"
          id: string
        } | {
          type: "reporter"
        } | {
          type: "assignee"
        } | {
          type: "lead"
        } | {
          type: "anyone"
        }[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: string[]
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: string[]
        }[]
        slas: {
          id: string
          name: string
          start: string[]
          pause: string[]
          stop: string[]
          goals: object[]
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object[]
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/restore

Restores an archived space.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  space: {
    orgId: string
    spaceId: string
    key: string
    name: string
    description: string
    template: "basic" | "service" | "scrum" | "kanban" | "bugs"
    leadId?: string
    icon?: string
    color?: string
    archived: boolean
    archivedAt?: number
    seq: number
    config: {
      issueTypeIds: string[]
      defaultTypeId: string
      workflows: {
        [key: string]: string
      }
      screens: {
        create: {
          [key: string]: string
        }
        edit: {
          [key: string]: string
        }
        view: {
          [key: string]: string
        }
      }
      fieldSettings: {
        [key: string]: {
          required?: boolean
          hidden?: boolean
          description?: string
        }
      }
      customFieldIds: string[]
      access: {
        visibility: "org" | "private"
        members: {
          type: "user" | "team"
          id: string
          role: "admin" | "viewer" | "member"
        }[]
      }
      permissionSchemeId?: string
      securityLevels: {
        id: string
        name: string
        description?: string
        grants: {
          type: "spaceRole"
          role: "admin" | "viewer" | "member"
        } | {
          type: "orgRole"
          role: string
        } | {
          type: "user"
          id: string
        } | {
          type: "team"
          id: string
        } | {
          type: "reporter"
        } | {
          type: "assignee"
        } | {
          type: "lead"
        } | {
          type: "anyone"
        }[]
      }[]
      defaultSecurityLevelId?: string
      notifications: {
        created?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        deleted?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        assigned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        updated?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        transitioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        commented?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        mentioned?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
        resolved?: ("participants" | "assignee" | "reporter" | "lead" | "watchers")[]
      }
      defaultAssignee: "lead" | "unassigned"
      estimation: "count" | "storyPoints" | "originalEstimate"
      boardId?: string
      servicedesk?: {
        requestTypes: {
          id: string
          name: string
          description?: string
          icon?: string
          typeId: string
          group?: string
          fields: string[]
          hidden?: boolean
        }[]
        queues: {
          id: string
          name: string
          query: string
          columns?: string[]
        }[]
        slas: {
          id: string
          name: string
          start: string[]
          pause: string[]
          stop: string[]
          goals: object[]
        }[]
        hours: {
          timeZone: string
          days: {
            [key: number]: object[]
          }
          holidays: string[]
        }
        portal: {
          enabled: boolean
          title: string
          intro: string
          access: "any" | "org" | "listed"
          customers: string[]
        }
        cannedResponses: {
          id: string
          name: string
          body: string
        }[]
        satisfaction: boolean
      }
      formerKeys?: string[]
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}

DELETE /v1/orgs/:orgId/issues/spaces/:spaceKey

Deletes an archived space and everything in it, a batch at a time: call again while done is false.

Auth: user access token or platform agent key · Scopes: issues:write, issues:admin

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  done: boolean
}

GET /v1/orgs/:orgId/issues/spaces/:spaceKey/versions

Versions (releases) of a space.

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  versions: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }[]
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/versions

Creates a version.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Request body

FieldTypeRequiredNotes
descriptionstringNoup to 2,000 characters
startDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
releaseDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
archivedbooleanNo
positionintegerNo0–1000000
namestringYes1–100 characters; trimmed

Response 201

{
  version: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }
}

GET /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId

A version with its issues and progress.

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).

Response 200

{
  version: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }
  issues: {
    orgId: string
    issueId: string
    spaceId: string
    number: number
    key: string
    typeId: string
    summary: string
    statusId: string
    statusCategory: "done" | "todo" | "inprogress"
    statusChangedAt?: number
    resolutionId?: string
    resolvedAt?: number
    priorityId?: string
    assigneeId?: string
    reporterId?: string
    creatorId?: string
    labels: string[]
    componentIds: string[]
    fixVersionIds: string[]
    affectsVersionIds: string[]
    dueDate?: string
    startDate?: string
    storyPoints?: number
    originalEstimate?: number
    remainingEstimate?: number
    timeSpent?: number
    environment?: string
    parentId?: string
    sprintId?: string
    closedSprintIds: string[]
    rank: string
    watchers: string[]
    voters: string[]
    securityLevelId?: string
    fields: {
      [key: string]: boolean | null | string | number | string[] | {
        parent: string
        child?: string
      }
    }
    excerpt: string
    statusLog: [string, number][]
    commentCount: number
    attachmentCount: number
    requestTypeId?: string
    channel?: string
    participants: string[]
    satisfaction?: number
    satisfactionComment?: string
    sla: {
      [key: string]: {
        runningSince?: number
        elapsed: number
        paused?: boolean
        stopped?: boolean
        goal?: number
        calendar: "business" | "always"
        breached?: boolean
        startedAt?: number
        stoppedAt?: number
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
  counts: {
    todo: number
    inprogress: number
    done: number
    total: number
  }
  points: {
    total: number
    done: number
  }
}

PATCH /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId

Changes a version's name, dates, order or archived state.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).

Request body

FieldTypeRequiredNotes
namestringNo1–100 characters; trimmed
descriptionstringNoup to 2,000 characters
startDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
releaseDatestringNomatches ^\d{4}-\d{2}-\d{2}$; can be null
archivedbooleanNo
positionintegerNo0–1000000

Response 200

{
  version: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId/release

Releases (or unreleases) a version, optionally moving unresolved issues to another version.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).

Request body

FieldTypeRequiredDefaultNotes
releasedbooleanNotrue
moveUnresolvedTostringNoup to 64 characters; can be null
releaseDatestringNomatches ^\d{4}-\d{2}-\d{2}$

Response 200

{
  version: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }
  moved: number
}

GET /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId/notes

Release notes in Markdown: resolved issues grouped by type.

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).

Response 200

{
  markdown: string
  issues: number
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId/deployments

Links (or unlinks) a Cloud deployment to a version.

Auth: user access token or platform agent key · Scopes: issues:write, deployments:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).

Request body

FieldTypeRequiredDefaultNotes
deploymentIdstringYesup to 64 characters
projectIdstringYesup to 64 characters
labelstringNoup to 100 characters
linkedbooleanNotrue

Response 200

{
  version: {
    versionId: string
    spaceId: string
    name: string
    description: string
    startDate?: string
    releaseDate?: string
    released: boolean
    releasedAt?: number
    archived: boolean
    position: number
    data: {
      deployments?: {
        deploymentId: string
        projectId: string
        label?: string
        at: number
      }[]
    }
  }
}

DELETE /v1/orgs/:orgId/issues/spaces/:spaceKey/versions/:versionId

Deletes a version, optionally moving its issues to replaceWith.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:versionIdVersion id: a saved page version, as listed by the page history, or an issue space's version (release, ver_…).
Query parameterTypeRequiredNotes
replaceWithstringNoup to 64 characters

Response 200

{
  versionId: string
  updated: number
}

GET /v1/orgs/:orgId/issues/spaces/:spaceKey/components

Components of a space.

Auth: user access token or platform agent key · Scope: issues:read

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Response 200

{
  components: {
    componentId: string
    spaceId: string
    name: string
    description: string
    leadId?: string
    defaultAssignee: "space" | "lead" | "unassigned"
  }[]
}

POST /v1/orgs/:orgId/issues/spaces/:spaceKey/components

Creates a component (with an optional lead and default assignee).

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).

Request body

FieldTypeRequiredNotes
descriptionstringNoup to 2,000 characters
leadIdstringNoup to 64 characters; can be null
defaultAssignee"lead" | "unassigned" | "space"No
namestringYes1–100 characters; trimmed

Response 201

{
  component: {
    componentId: string
    spaceId: string
    name: string
    description: string
    leadId?: string
    defaultAssignee: "space" | "lead" | "unassigned"
  }
}

PATCH /v1/orgs/:orgId/issues/spaces/:spaceKey/components/:componentId

Changes a component.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:componentIdComponent id (cmp_…).

Request body

FieldTypeRequiredNotes
namestringNo1–100 characters; trimmed
descriptionstringNoup to 2,000 characters
leadIdstringNoup to 64 characters; can be null
defaultAssignee"lead" | "unassigned" | "space"No

Response 200

{
  component: {
    componentId: string
    spaceId: string
    name: string
    description: string
    leadId?: string
    defaultAssignee: "space" | "lead" | "unassigned"
  }
}

DELETE /v1/orgs/:orgId/issues/spaces/:spaceKey/components/:componentId

Deletes a component and removes it from its issues.

Auth: user access token or platform agent key · Scope: issues:write

Path parameterDescription
:orgIdOrganization id (org_…).
:spaceKeySpace key (WEB; former keys work too) or space id (spc_…).
:componentIdComponent id (cmp_…).

Response 200

{
  componentId: string
  updated: number
}