components:
schemas:
IssueArchivalSyncResponse:
additionalProperties: false
description: >-
Number of archived/unarchived issues and list of errors that occurred
during the action, if any.
properties:
errors:
$ref: '#/components/schemas/Errors'
numberOfIssuesUpdated:
format: int64
type: integer
type: object
IssueCreateMetadata:
additionalProperties: false
description: The wrapper for the issue creation metadata for a list of projects.
properties:
expand:
description: >-
Expand options that include additional project details in the
response.
readOnly: true
type: string
xml:
attribute: true
projects:
description: List of projects and their issue creation metadata.
items:
$ref: '#/components/schemas/ProjectIssueCreateMetadata'
readOnly: true
type: array
type: object
PageOfCreateMetaIssueTypes:
additionalProperties: true
description: A page of CreateMetaIssueTypes.
properties:
createMetaIssueType:
items:
$ref: '#/components/schemas/IssueTypeIssueCreateMetadata'
type: array
writeOnly: true
issueTypes:
description: The list of CreateMetaIssueType.
items:
$ref: '#/components/schemas/IssueTypeIssueCreateMetadata'
readOnly: true
type: array
maxResults:
description: The maximum number of items to return per page.
format: int32
readOnly: true
type: integer
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The total number of items in all pages.
format: int64
readOnly: true
type: integer
type: object
PageOfCreateMetaIssueTypeWithField:
additionalProperties: true
description: A page of CreateMetaIssueType with Field.
properties:
fields:
description: The collection of FieldCreateMetaBeans.
items:
$ref: '#/components/schemas/FieldCreateMetadata'
readOnly: true
type: array
maxResults:
description: The maximum number of items to return per page.
format: int32
readOnly: true
type: integer
results:
items:
$ref: '#/components/schemas/FieldCreateMetadata'
type: array
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The total number of items in all pages.
format: int64
readOnly: true
type: integer
type: object
IssuePickerSuggestions:
additionalProperties: false
description: A list of issues suggested for use in auto-completion.
properties:
sections:
description: >-
A list of issues for an issue type suggested for use in
auto-completion.
items:
$ref: '#/components/schemas/IssuePickerSuggestionsIssueType'
readOnly: true
type: array
type: object
BulkIssueIsWatching:
additionalProperties: false
description: A container for the watch status of a list of issues.
properties:
issuesIsWatching:
additionalProperties:
readOnly: true
type: boolean
description: The map of issue ID to boolean watch status.
readOnly: true
type: object
type: object
IssueBean:
additionalProperties: false
description: Details about an issue.
properties:
changelog:
allOf:
- $ref: '#/components/schemas/PageOfChangelogs'
description: Details of changelogs associated with the issue.
readOnly: true
editmeta:
allOf:
- $ref: '#/components/schemas/IssueUpdateMetadata'
description: The metadata for the fields on the issue that can be amended.
readOnly: true
expand:
description: >-
Expand options that include additional issue details in the
response.
readOnly: true
type: string
xml:
attribute: true
fields:
additionalProperties: {}
type: object
fieldsToInclude:
$ref: '#/components/schemas/IncludedFields'
id:
description: The ID of the issue.
readOnly: true
type: string
key:
description: The key of the issue.
readOnly: true
type: string
names:
additionalProperties:
readOnly: true
type: string
description: The ID and name of each field present on the issue.
readOnly: true
type: object
operations:
allOf:
- $ref: '#/components/schemas/Operations'
description: The operations that can be performed on the issue.
readOnly: true
properties:
additionalProperties:
readOnly: true
description: Details of the issue properties identified in the request.
readOnly: true
type: object
renderedFields:
additionalProperties:
readOnly: true
description: The rendered value of each field present on the issue.
readOnly: true
type: object
schema:
additionalProperties:
$ref: '#/components/schemas/JsonTypeBean'
description: The schema describing each field present on the issue.
readOnly: true
type: object
self:
description: The URL of the issue details.
format: uri
readOnly: true
type: string
transitions:
description: The transitions that can be performed on the issue.
items:
$ref: '#/components/schemas/IssueTransition'
readOnly: true
type: array
versionedRepresentations:
additionalProperties:
additionalProperties:
readOnly: true
readOnly: true
type: object
description: The versions of each field on the issue.
readOnly: true
type: object
type: object
xml:
name: issue
PageBeanChangelog:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/Changelog'
readOnly: true
type: array
type: object
PageOfChangelogs:
additionalProperties: false
description: A page of changelogs.
properties:
histories:
description: The list of changelogs.
items:
$ref: '#/components/schemas/Changelog'
readOnly: true
type: array
maxResults:
description: The maximum number of results that could be on the page.
format: int32
readOnly: true
type: integer
startAt:
description: The index of the first item returned on the page.
format: int32
readOnly: true
type: integer
total:
description: The number of results on the page.
format: int32
readOnly: true
type: integer
type: object
PageOfComments:
additionalProperties: true
description: A page of comments.
properties:
comments:
description: The list of comments.
items:
$ref: '#/components/schemas/Comment'
readOnly: true
type: array
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
type: object
Comment:
additionalProperties: true
description: A comment.
properties:
author:
allOf:
- $ref: '#/components/schemas/UserDetails'
description: The ID of the user who created the comment.
readOnly: true
body:
description: >-
The comment text in [Atlassian Document
Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/).
created:
description: The date and time at which the comment was created.
format: date-time
readOnly: true
type: string
id:
description: The ID of the comment.
readOnly: true
type: string
jsdAuthorCanSeeRequest:
description: >-
Whether the comment was added from an email sent by a person who is
not part of the issue. See [Allow external emails to be added as
comments on
issues](https://support.atlassian.com/jira-service-management-cloud/docs/allow-external-emails-to-be-added-as-comments-on-issues/)for
information on setting up this feature.
readOnly: true
type: boolean
jsdPublic:
description: >-
Whether the comment is visible in Jira Service Desk. Defaults to
true when comments are created in the Jira Cloud Platform. This
includes when the site doesn't use Jira Service Desk or the project
isn't a Jira Service Desk project and, therefore, there is no Jira
Service Desk for the issue to be visible on. To create a comment
with its visibility in Jira Service Desk set to false, use the Jira
Service Desk REST API [Create request
comment](https://developer.atlassian.com/cloud/jira/service-desk/rest/#api-rest-servicedeskapi-request-issueIdOrKey-comment-post)
operation.
readOnly: true
type: boolean
properties:
description: A list of comment properties. Optional on create and update.
items:
$ref: '#/components/schemas/EntityProperty'
type: array
renderedBody:
description: The rendered version of the comment.
readOnly: true
type: string
self:
description: The URL of the comment.
readOnly: true
type: string
updateAuthor:
allOf:
- $ref: '#/components/schemas/UserDetails'
description: The ID of the user who updated the comment last.
readOnly: true
updated:
description: The date and time at which the comment was updated last.
format: date-time
readOnly: true
type: string
visibility:
allOf:
- $ref: '#/components/schemas/Visibility'
description: >-
The group or role to which this comment is visible. Optional on
create and update.
type: object
IssueUpdateMetadata:
description: A list of editable field details.
properties:
fields:
additionalProperties:
$ref: '#/components/schemas/FieldMetadata'
readOnly: true
type: object
type: object
PropertyKeys:
additionalProperties: false
description: List of property keys.
properties:
keys:
description: Property key details.
items:
$ref: '#/components/schemas/PropertyKey'
readOnly: true
type: array
type: object
EntityProperty:
additionalProperties: false
description: >-
An entity property, for more information see [Entity
properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/).
properties:
key:
description: The key of the property. Required on create and update.
type: string
value:
description: The value of the property. Required on create and update.
type: object
RemoteIssueLink:
additionalProperties: false
description: Details of an issue remote link.
properties:
application:
allOf:
- $ref: '#/components/schemas/Application'
description: Details of the remote application the linked item is in.
globalId:
description: >-
The global ID of the link, such as the ID of the item on the remote
system.
type: string
id:
description: The ID of the link.
format: int64
type: integer
object:
allOf:
- $ref: '#/components/schemas/RemoteObject'
description: Details of the item linked to.
relationship:
description: >-
Description of the relationship between the issue and the linked
item.
type: string
self:
description: The URL of the link.
format: uri
type: string
type: object
RemoteIssueLinkIdentifies:
additionalProperties: false
description: Details of the identifiers for a created or updated remote issue link.
properties:
id:
description: >-
The ID of the remote issue link, such as the ID of the item on the
remote system.
format: int64
readOnly: true
type: integer
xml:
attribute: true
self:
description: The URL of the remote issue link.
readOnly: true
type: string
xml:
attribute: true
type: object
Transitions:
additionalProperties: false
description: List of issue transitions.
properties:
expand:
description: >-
Expand options that include additional transitions details in the
response.
readOnly: true
type: string
xml:
attribute: true
transitions:
description: List of issue transitions.
items:
$ref: '#/components/schemas/IssueTransition'
readOnly: true
type: array
type: object
Votes:
additionalProperties: false
description: The details of votes on an issue.
properties:
hasVoted:
description: Whether the user making this request has voted on the issue.
readOnly: true
type: boolean
self:
description: The URL of these issue vote details.
format: uri
readOnly: true
type: string
voters:
description: >-
List of the users who have voted on this issue. An empty list is
returned when the calling user doesn't have the *View voters and
watchers* project permission.
items:
$ref: '#/components/schemas/User'
readOnly: true
type: array
votes:
description: The number of votes on the issue.
format: int64
readOnly: true
type: integer
type: object
Watchers:
additionalProperties: false
description: The details of watchers on an issue.
properties:
isWatching:
description: Whether the calling user is watching this issue.
readOnly: true
type: boolean
self:
description: The URL of these issue watcher details.
readOnly: true
type: string
watchCount:
description: The number of users watching this issue.
format: int32
readOnly: true
type: integer
watchers:
description: Details of the users watching this issue.
items:
$ref: '#/components/schemas/UserDetails'
readOnly: true
type: array
type: object
xml:
name: watchers
PageOfWorklogs:
additionalProperties: true
description: Paginated list of worklog details
properties:
maxResults:
description: The maximum number of results that could be on the page.
format: int32
readOnly: true
type: integer
startAt:
description: The index of the first item returned on the page.
format: int32
readOnly: true
type: integer
total:
description: The number of results on the page.
format: int32
readOnly: true
type: integer
worklogs:
description: List of worklogs.
items:
$ref: '#/components/schemas/Worklog'
readOnly: true
type: array
type: object
Worklog:
additionalProperties: true
description: Details of a worklog.
properties:
author:
allOf:
- $ref: '#/components/schemas/UserDetails'
description: Details of the user who created the worklog.
readOnly: true
comment:
description: >-
A comment about the worklog in [Atlassian Document
Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/).
Optional when creating or updating a worklog.
created:
description: The datetime on which the worklog was created.
format: date-time
readOnly: true
type: string
id:
description: The ID of the worklog record.
readOnly: true
type: string
issueId:
description: The ID of the issue this worklog is for.
readOnly: true
type: string
properties:
description: >-
Details of properties for the worklog. Optional when creating or
updating a worklog.
items:
$ref: '#/components/schemas/EntityProperty'
type: array
self:
description: The URL of the worklog item.
format: uri
readOnly: true
type: string
started:
description: >-
The datetime on which the worklog effort was started. Required when
creating a worklog. Optional when updating a worklog.
format: date-time
type: string
timeSpent:
description: >-
The time spent working on the issue as days (\#d), hours (\#h), or
minutes (\#m or \#). Required when creating a worklog if
`timeSpentSeconds` isn't provided. Optional when updating a worklog.
Cannot be provided if `timeSpentSecond` is provided.
type: string
timeSpentSeconds:
description: >-
The time in seconds spent working on the issue. Required when
creating a worklog if `timeSpent` isn't provided. Optional when
updating a worklog. Cannot be provided if `timeSpent` is provided.
format: int64
type: integer
updateAuthor:
allOf:
- $ref: '#/components/schemas/UserDetails'
description: Details of the user who last updated the worklog.
readOnly: true
updated:
description: The datetime on which the worklog was last updated.
format: date-time
readOnly: true
type: string
visibility:
allOf:
- $ref: '#/components/schemas/Visibility'
description: >-
Details about any restrictions in the visibility of the worklog.
Optional when creating or updating a worklog.
type: object
xml:
name: worklog
externalDocs:
description: Find out more about Atlassian products and services.
url: http://www.atlassian.com
info:
contact:
email: ecosystem@atlassian.com
description: Needs description.
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: http://atlassian.com/terms/
title: 'Atlassian rest/api/3/issue/'
version: 1001.0.0-SNAPSHOT-67b5c6e5f3598d7ec1649016d026468ab2838a77
openapi: 3.0.1
paths:
/rest/api/3/issue/archive:
post:
deprecated: false
description: >-
Enables admins to archive up to 100,000 issues in a single request using
JQL, returning the URL to check the status of the submitted
request.
You can use the [get
task](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-tasks/#api-rest-api-3-task-taskid-get)
and [cancel
task](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-tasks/#api-rest-api-3-task-taskid-cancel-post)
APIs to manage the request.
**Note that:**
* you can't
archive subtasks directly, only through their parent issues
* you
can only archive issues from software, service management, and business
projects
**[Permissions](#permissions) required:** Jira admin or
site admin: [global
permission](https://confluence.atlassian.com/x/x4dKLg)
**License
required:** Premium or Enterprise
**Signed-in users only:** This
API can't be accessed anonymously.
**Rate limiting:** Only a
single request per jira instance can be active at any given
time.
operationId: atlassianArchiveissuesasync
parameters: []
requestBody:
content:
application/json:
example:
jql: project = FOO AND updated < -2y
schema:
$ref: '#/components/schemas/ArchiveIssueAsyncRequest'
description: >-
A JQL query specifying the issues to archive. Note that subtasks can
only be archived through their parent issues.
required: true
responses:
'202':
content:
application/json:
example: '"https://your-domain.atlassian.net/rest/api/3/task/1010"'
schema:
type: string
description: Returns the URL to check the status of the submitted request.
'400':
content:
application/json:
example: '{"errorMessages":["Invalid JQL. Bad request."],"errors":{}}'
description: >-
Returned if no issues were archived due to a bad request, for
example an invalid JQL query.
'401':
content:
application/json:
example: '{"errorMessages":["User is not logged in."],"errors":{}}'
description: >-
Returned if no issues were archived because the provided
authentication credentials are either missing or invalid.
'403':
content:
application/json:
example: >-
{"errorMessages":["Archiving issues is only available for
premium editions of Jira."],"errors":{}}
description: >-
Returned if no issues were archived because the user lacks the
required Jira admin or site admin permissions.
'412':
content:
application/json:
example: >-
{"errorMessages":["An issue archival task is already running
with ID 1010. To start a new one, cancel the task or wait for it
to finish."],"errors":{}}
description: Returned if a request to archive issue(s) is already running.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Archive Issue S By Jql
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
state: Beta
x-experimental: true
x-atlassian-connect-scope: WRITE
put:
deprecated: false
description: >-
Enables admins to archive up to 1000 issues in a single request using
issue ID/key, returning details of the issue(s) archived in the process
and the errors encountered, if any.
**Note that:**
* you
can't archive subtasks directly, only through their parent issues
* you can only archive issues from software, service management, and
business projects
**[Permissions](#permissions) required:** Jira
admin or site admin: [global
permission](https://confluence.atlassian.com/x/x4dKLg)
**License
required:** Premium or Enterprise
**Signed-in users only:** This
API can't be accessed anonymously.
operationId: atlassianArchiveissues
parameters: []
requestBody:
content:
application/json:
example:
issueIdsOrKeys:
- PR-1
- '1001'
- PROJECT-2
schema:
$ref: '#/components/schemas/IssueArchivalSyncRequest'
description: Contains a list of issue keys or IDs to be archived.
required: true
responses:
'200':
content:
application/json:
example: >-
{"errors":{"issueIsSubtask":{"count":3,"issueIdsOrKeys":["ST-1","ST-2","ST-3"],"message":"Issue
is
subtask."},"issuesInArchivedProjects":{"count":2,"issueIdsOrKeys":["AR-1","AR-2"],"message":"Issue
exists in archived
project."},"issuesInUnlicensedProjects":{"count":3,"issueIdsOrKeys":["UL-1","UL-2","UL-3"],"message":"Issues
with these IDs are in unlicensed
projects."},"issuesNotFound":{"count":3,"issueIdsOrKeys":["PR-1","PR-2","PR-3"],"message":"Issue
not found."}},"numberOfIssuesUpdated":10}
schema:
$ref: '#/components/schemas/IssueArchivalSyncResponse'
description: >-
Returned if there is at least one valid issue to archive in the
request. The return message will include the count of archived
issues and subtasks, as well as error details for issues which
failed to get archived.
'400':
content:
application/json:
example: >-
{"errorMessages":["No valid issue to archive or unarchive. Bad
request."],"errors":{}}
description: >-
Returned if none of the issues in the request can be archived.
Possible reasons:
* the issues weren't found
* the issues are subtasks
* the issues belong to unlicensed projects
* the issues belong to archived projects
'401':
content:
application/json:
example: '{"errorMessages":["User is not logged in."],"errors":{}}'
description: >-
Returned if no issues were archived because the provided
authentication credentials are either missing or invalid.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only admins can archive or unarchive issues.
Access denied."],"errors":{}}
description: >-
Returned if no issues were archived because the user lacks the
required Jira admin or site admin permissions.
'412':
content:
application/json:
example: >-
{"errorMessages":["The number of issues to archive or unarchive
exceeds the hard limit of 1000. Precondition
failed."],"errors":{}}
description: >-
Returned if one or more issues were successfully archived, but the
operation was incomplete because the number of issue IDs or keys
provided exceeds 1000.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Archive Issue S By Issue Id Key
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
state: Beta
x-experimental: true
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/bulk:
post:
deprecated: false
description: >-
Creates upto **50** issues and, where the option to create subtasks is
enabled in Jira, subtasks. Transitions may be applied, to move the
issues or subtasks to a workflow step other than the default start step,
and issue properties set.
The content of each issue or subtask is
defined using `update` and `fields`. The fields that can be set in the
issue or subtask are determined using the [ Get create issue
metadata](#api-rest-api-3-issue-createmeta-get). These are the same
fields that appear on the issues' create screens. Note that the
`description`, `environment`, and any `textarea` type custom fields
(multi-line text fields) take Atlassian Document Format content. Single
line custom fields (`textfield`) accept a string and don't handle
Atlassian Document Format content.
Creating a subtask differs
from creating an issue as follows:
* `issueType` must be set to
a subtask issue type (use [ Get create issue
metadata](#api-rest-api-3-issue-createmeta-get) to find subtask issue
types).
* `parent` the must contain the ID or key of the parent
issue.
**[Permissions](#permissions) required:** *Browse
projects* and *Create issues* [project
permissions](https://confluence.atlassian.com/x/yodKLg) for the project
in which each issue or subtask is created.
operationId: atlassianCreateissues
parameters: []
requestBody:
content:
application/json:
example:
issueUpdates:
- fields:
assignee:
id: 5b109f2e9729b51b54dc274d
components:
- id: '10000'
customfield_10000: 09/Jun/19
customfield_20000: 06/Jul/19 3:25 PM
customfield_30000:
- '10000'
- '10002'
customfield_40000:
content:
- content:
- text: Occurs on all orders
type: text
type: paragraph
type: doc
version: 1
customfield_50000:
content:
- content:
- text: Could impact day-to-day work.
type: text
type: paragraph
type: doc
version: 1
customfield_60000: jira-software-users
customfield_70000:
- jira-administrators
- jira-software-users
customfield_80000:
value: red
description:
content:
- content:
- text: Order entry fails when selecting supplier.
type: text
type: paragraph
type: doc
version: 1
duedate: '2011-03-11'
environment:
content:
- content:
- text: UAT
type: text
type: paragraph
type: doc
version: 1
fixVersions:
- id: '10001'
issuetype:
id: '10000'
labels:
- bugfix
- blitz_test
priority:
id: '20000'
project:
id: '10000'
reporter:
id: 5b10a2844c20165700ede21g
security:
id: '10000'
summary: Main order flow broken
timetracking:
originalEstimate: '10'
remainingEstimate: '5'
versions:
- id: '10000'
update:
worklog:
- add:
started: 2019-07-05T11:05:00.000+0000
timeSpent: 60m
- fields:
assignee:
id: 5b109f2e9729b51b54dc274d
components:
- id: '10000'
customfield_10000: 09/Jun/19
customfield_20000: 06/Jul/19 3:25 PM
customfield_30000:
- '10000'
- '10002'
customfield_40000:
content:
- content:
- text: Occurs on all orders
type: text
type: paragraph
type: doc
version: 1
customfield_50000:
content:
- content:
- text: Could impact day-to-day work.
type: text
type: paragraph
type: doc
version: 1
customfield_60000: jira-software-users
customfield_70000:
- jira-administrators
- jira-software-users
customfield_80000:
value: red
description:
content:
- content:
- text: Order remains pending after approved.
type: text
type: paragraph
type: doc
version: 1
duedate: '2019-04-16'
environment:
content:
- content:
- text: UAT
type: text
type: paragraph
type: doc
version: 1
fixVersions:
- id: '10001'
issuetype:
id: '10000'
labels:
- new_release
priority:
id: '20000'
project:
id: '1000'
reporter:
id: 5b10a2844c20165700ede21g
security:
id: '10000'
summary: Order stuck in pending
timetracking:
originalEstimate: '15'
remainingEstimate: '5'
versions:
- id: '10000'
update: {}
schema:
$ref: '#/components/schemas/IssuesUpdateBean'
required: true
responses:
'201':
content:
application/json:
example: >-
{"issues":[{"id":"10000","key":"ED-24","self":"https://your-domain.atlassian.net/rest/api/3/issue/10000","transition":{"status":200,"errorCollection":{"errorMessages":[],"errors":{}}}},{"id":"10001","key":"ED-25","self":"https://your-domain.atlassian.net/rest/api/3/issue/10001"}],"errors":[]}
schema:
$ref: '#/components/schemas/CreatedIssues'
description: >-
Returned if any of the issue or subtask creation requests were
successful. A request may be unsuccessful when it:
* is missing required fields.
* contains invalid field values.
* contains fields that cannot be set for the issue type.
* is by a user who does not have the necessary permission.
* is to create a subtype in a project different that of the parent issue.
* is for a subtask when the option to create subtasks is disabled.
* is invalid for any other reason.
'400':
content:
application/json:
example: >-
{"issues":[],"errors":[{"elementErrors":{"errorMessages":[],"errors":{"issuetype":"The
issue type selected is invalid.","project":"Sub-tasks must be
created in the same project as the
parent."}},"failedElementNumber":0,"status":400},{"elementErrors":{"errorMessages":[],"errors":{"issuetype":"The
issue type selected is invalid.","project":"Sub-tasks must be
created in the same project as the
parent."}},"failedElementNumber":1,"status":400}]}
schema:
$ref: '#/components/schemas/CreatedIssues'
description: >-
Returned if all requests are invalid. Requests may be unsuccessful
when they:
* are missing required fields.
* contain invalid field values.
* contain fields that cannot be set for the issue type.
* are by a user who does not have the necessary permission.
* are to create a subtype in a project different that of the parent issue.
* is for a subtask when the option to create subtasks is disabled.
* are invalid for any other reason.
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Bulk Create Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
- write:comment:jira
- write:comment.property:jira
- write:attachment:jira
- read:issue:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/createmeta:
get:
deprecated: true
description: >-
Returns details of projects, issue types within projects, and, when
requested, the create screen fields for each issue type for the user.
Use the information to populate the requests in [ Create
issue](#api-rest-api-3-issue-post) and [Create
issues](#api-rest-api-3-issue-bulk-post).
The request can be
restricted to specific projects or issue types using the query
parameters. The response will contain information for the valid
projects, issue types, or project and issue type combinations requested.
Note that invalid project, issue type, or project and issue type
combinations do not generate errors.
This operation can be
accessed anonymously.
**[Permissions](#permissions) required:**
*Create issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) in the requested
projects.
operationId: atlassianGetcreateissuemeta
parameters:
- description: >-
List of project IDs. This parameter accepts a comma-separated list.
Multiple project IDs can also be provided using an
ampersand-separated list. For example,
`projectIds=10000,10001&projectIds=10020,10021`. This parameter may
be provided with `projectKeys`.
in: query
name: projectIds
schema:
items:
type: string
type: array
- description: >-
List of project keys. This parameter accepts a comma-separated list.
Multiple project keys can also be provided using an
ampersand-separated list. For example,
`projectKeys=proj1,proj2&projectKeys=proj3`. This parameter may be
provided with `projectIds`.
in: query
name: projectKeys
schema:
items:
type: string
type: array
- description: >-
List of issue type IDs. This parameter accepts a comma-separated
list. Multiple issue type IDs can also be provided using an
ampersand-separated list. For example,
`issuetypeIds=10000,10001&issuetypeIds=10020,10021`. This parameter
may be provided with `issuetypeNames`.
in: query
name: issuetypeIds
schema:
items:
type: string
type: array
- description: >-
List of issue type names. This parameter accepts a comma-separated
list. Multiple issue type names can also be provided using an
ampersand-separated list. For example,
`issuetypeNames=name1,name2&issuetypeNames=name3`. This parameter
may be provided with `issuetypeIds`.
in: query
name: issuetypeNames
schema:
items:
type: string
type: array
- description: >-
Use [expand](#expansion) to include additional information about
issue metadata in the response. This parameter accepts
`projects.issuetypes.fields`, which returns information about the
fields in the issue creation screen for each issue type. Fields
hidden from the screen are not returned. Use the information to
populate the `fields` and `update` fields in [Create
issue](#api-rest-api-3-issue-post) and [Create
issues](#api-rest-api-3-issue-bulk-post).
in: query
name: expand
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"projects":[{"avatarUrls":{"16x16":"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000&avatarId=10011","24x24":"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000&avatarId=10011","32x32":"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000&avatarId=10011","48x48":"https://your-domain.atlassian.net/secure/projectavatar?pid=10000&avatarId=10011"},"id":"10000","issuetypes":[{"description":"An
error in the
code","fields":{"issuetype":{"allowedValues":["set"],"autoCompleteUrl":"issuetype","hasDefaultValue":false,"key":"issuetype","name":"Issue
Type","required":true}},"iconUrl":"https://your-domain.atlassian.net/images/icons/issuetypes/bug.png","id":"1","name":"Bug","self":"https://your-domain.atlassian.net/rest/api/3/issueType/1","subtask":false}],"key":"ED","name":"Edison
Project","self":"https://your-domain.atlassian.net/rest/api/3/project/ED"}]}
schema:
$ref: '#/components/schemas/IssueCreateMetadata'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Create Issue Metadata
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:avatar:jira
- read:field-configuration:jira
state: Beta
x-changes:
- announced: '2023-12-11'
details: >-
https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1304
effective: '2024-06-03'
type: removed
x-atlassian-connect-scope: READ
/rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes:
get:
deprecated: false
description: >-
Returns a page of issue type metadata for a specified project. Use the
information to populate the requests in [ Create
issue](#api-rest-api-3-issue-post) and [Create
issues](#api-rest-api-3-issue-bulk-post).
This operation can be
accessed anonymously.
**[Permissions](#permissions) required:**
*Create issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) in the requested
projects.
operationId: atlassianGetcreateissuemetaissuetypes
parameters:
- description: The ID or key of the project.
in: path
name: projectIdOrKey
required: true
schema:
type: string
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int32
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 50
format: int32
maximum: 200
type: integer
responses:
'200':
content:
application/json:
example: >-
{"issueTypes":[{"description":"An error in the
code","iconUrl":"https://your-domain.atlassian.net/images/icons/issuetypes/bug.png","id":"1","name":"Bug","self":"https://your-domain.atlassian.net/rest/api/3/issueType/1","subtask":false}],"maxResults":1,"startAt":0,"total":1}
schema:
$ref: '#/components/schemas/PageOfCreateMetaIssueTypes'
description: Returned if the request is successful.
'400':
content:
application/json:
example: >-
{"errorMessages":["Parameter 'maxResults' must not exceed the
limit
'200'"],"errors":{},"httpStatusCode":{"empty":false,"present":true}}
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Create Metadata Issue Types For A Project
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:avatar:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}:
get:
deprecated: false
description: >-
Returns a page of field metadata for a specified project and issuetype
id. Use the information to populate the requests in [ Create
issue](#api-rest-api-3-issue-post) and [Create
issues](#api-rest-api-3-issue-bulk-post).
This operation can be
accessed anonymously.
**[Permissions](#permissions) required:**
*Create issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) in the requested
projects.
operationId: atlassianGetcreateissuemetaissuetypeid
parameters:
- description: The ID or key of the project.
in: path
name: projectIdOrKey
required: true
schema:
type: string
- description: The issuetype ID.
in: path
name: issueTypeId
required: true
schema:
type: string
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int32
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 50
format: int32
maximum: 200
type: integer
responses:
'200':
content:
application/json:
example: >-
{"fields":[{"fieldId":"assignee","hasDefaultValue":false,"key":"assignee","name":"Assignee","operations":["set"],"required":true}],"maxResults":1,"startAt":0,"total":1}
schema:
$ref: '#/components/schemas/PageOfCreateMetaIssueTypeWithField'
description: Returned if the request is successful.
'400':
content:
application/json:
example: >-
{"errorMessages":["Parameter 'maxResults' must not exceed the
limit
'200'"],"errors":{},"httpStatusCode":{"empty":false,"present":true}}
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Create Field Metadata For A Project And Issue Type Id
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:avatar:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/picker:
get:
deprecated: false
description: >-
Returns lists of issues matching a query string. Use this resource to
provide auto-completion suggestions when the user is looking for an
issue using a word or string.
This operation returns two
lists:
* `History Search` which includes issues from the user's
history of created, edited, or viewed issues that contain the string in
the `query` parameter.
* `Current Search` which includes issues
that match the JQL expression in `currentJQL` and contain the string in
the `query` parameter.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:** None.
operationId: atlassianGetissuepickerresource
parameters:
- description: >-
A string to match against text fields in the issue such as title,
description, or comments.
in: query
name: query
schema:
example: query
type: string
x-showInExample: 'true'
- description: >-
A JQL query defining a list of issues to search for the query term.
Note that `username` and `userkey` cannot be used as search terms
for this parameter, due to privacy reasons. Use `accountId` instead.
in: query
name: currentJQL
schema:
type: string
- description: >-
The key of an issue to exclude from search results. For example, the
issue the user is viewing when they perform this query.
in: query
name: currentIssueKey
schema:
type: string
- description: The ID of a project that suggested issues must belong to.
in: query
name: currentProjectId
schema:
type: string
- description: Indicate whether to include subtasks in the suggestions list.
in: query
name: showSubTasks
schema:
type: boolean
- description: >-
When `currentIssueKey` is a subtask, whether to include the parent
issue in the suggestions if it matches the query.
in: query
name: showSubTaskParent
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IssuePickerSuggestions'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue Picker Suggestions
tags:
- Issue Search
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-details:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/properties:
post:
deprecated: false
description: >-
Sets or updates a list of entity property values on issues. A list of up
to 10 entity properties can be specified along with up to 10,000 issues
on which to set or update that list of entity properties.
The
value of the request body must be a
[valid](http://tools.ietf.org/html/rfc4627), non-empty JSON. The maximum
length of single issue property value is 32768 characters. This
operation can be accessed anonymously.
This operation is:
* transactional, either all properties are updated in all eligible
issues or, when errors occur, no properties are updated.
* [asynchronous](#async). Follow the `location` link in the response to
determine the status of the task and use [Get
task](#api-rest-api-3-task-taskId-get) to obtain subsequent
updates.
**[Permissions](#permissions) required:**
* *Browse projects* and *Edit issues* [project
permissions](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianBulksetissuespropertieslist
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IssueEntityProperties'
description: Issue properties to be set or updated with values.
required: true
responses:
'303':
description: Returned if the operation is successful.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: >-
Return if the request is invalid or the user does not have the
necessary permission.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the authentication credentials are incorrect.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
summary: Atlassian Bulk Set Issues Properties By List
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/properties/multi:
post:
deprecated: false
description: >-
Sets or updates entity property values on issues. Up to 10 entity
properties can be specified for each issue and up to 100 issues included
in the request.
The value of the request body must be a
[valid](http://tools.ietf.org/html/rfc4627), non-empty JSON.
This
operation is:
* [asynchronous](#async). Follow the `location`
link in the response to determine the status of the task and use [Get
task](#api-rest-api-3-task-taskId-get) to obtain subsequent updates.
* non-transactional. Updating some entities may fail. Such information
will available in the task result.
**[Permissions](#permissions)
required:**
* *Browse projects* and *Edit issues* [project
permissions](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianBulksetissuepropertiesbyissue
parameters: []
requestBody:
content:
application/json:
example:
issues:
- issueID: 1000
properties:
myProperty:
owner: admin
weight: 100
- issueID: 1001
properties:
myOtherProperty:
cost: 150
transportation: car
schema:
$ref: '#/components/schemas/MultiIssueEntityProperties'
description: >-
Details of the issue properties to be set or updated. Note that if an
issue is not found, it is ignored.
required: true
responses:
'303':
description: Returned if the operation is successful.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Return if the request is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the authentication credentials are incorrect.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Return if the user does not have the necessary permission.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
summary: Atlassian Bulk Set Issue Properties By Issue
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/properties/{propertyKey}:
delete:
deprecated: false
description: >-
Deletes a property value from multiple issues. The issues to be updated
can be specified by filter criteria.
The criteria the filter used
to identify eligible issues are:
* `entityIds` Only issues from
this list are eligible.
* `currentValue` Only issues with the
property set to this value are eligible.
If both criteria is
specified, they are joined with the logical *AND*: only issues that
satisfy both criteria are considered eligible.
If no filter
criteria are specified, all the issues visible to the user and where the
user has the EDIT\_ISSUES permission for the issue are considered
eligible.
This operation is:
* transactional, either the
property is deleted from all eligible issues or, when errors occur, no
properties are deleted.
* [asynchronous](#async). Follow the
`location` link in the response to determine the status of the task and
use [Get task](#api-rest-api-3-task-taskId-get) to obtain subsequent
updates.
**[Permissions](#permissions) required:**
* *Browse projects* [ project
permission](https://confluence.atlassian.com/x/yodKLg) for each project
containing issues.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Edit issues*
[project permission](https://confluence.atlassian.com/x/yodKLg) for each
issue.
operationId: atlassianBulkdeleteissueproperty
parameters:
- description: The key of the property.
in: path
name: propertyKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
currentValue: deprecated value
entityIds:
- 10100
- 100010
schema:
$ref: '#/components/schemas/IssueFilterForBulkPropertyDelete'
required: true
responses:
'303':
description: Returned if the request is successful.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the request is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
summary: Atlassian Bulk Delete Issue Property
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue.property:jira
state: Beta
x-atlassian-connect-scope: DELETE
put:
deprecated: false
description: >-
Sets a property value on multiple issues.
The value set can be a
constant or determined by a [Jira
expression](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/).
Expressions must be computable with constant complexity when applied to
a set of issues. Expressions must also comply with the
[restrictions](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#restrictions)
that apply to all Jira expressions.
The issues to be updated can
be specified by a filter.
The filter identifies issues eligible
for update using these criteria:
* `entityIds` Only issues from
this list are eligible.
* `currentValue` Only issues with the
property set to this value are eligible.
* `hasProperty`:
* If *true*, only issues with the property are
eligible.
* If *false*, only issues without the property are
eligible.
If more than one criteria is specified, they are joined
with the logical *AND*: only issues that satisfy all criteria are
eligible.
If an invalid combination of criteria is provided, an
error is returned. For example, specifying a `currentValue` and
`hasProperty` as *false* would not match any issues (because without the
property the property cannot have a value).
The filter is
optional. Without the filter all the issues visible to the user and
where the user has the EDIT\_ISSUES permission for the issue are
considered eligible.
This operation is:
* transactional,
either all eligible issues are updated or, when errors occur, none are
updated.
* [asynchronous](#async). Follow the `location` link in
the response to determine the status of the task and use [Get
task](#api-rest-api-3-task-taskId-get) to obtain subsequent
updates.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for each project
containing issues.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Edit issues*
[project permission](https://confluence.atlassian.com/x/yodKLg) for each
issue.
operationId: atlassianBulksetissueproperty
parameters:
- description: The key of the property. The maximum length is 255 characters.
in: path
name: propertyKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
filter:
currentValue:
owner: admin
weight: 50
entityIds:
- 10100
- 100010
hasProperty: true
value:
owner: admin
weight: 100
schema:
$ref: '#/components/schemas/BulkIssuePropertyUpdateRequest'
required: true
responses:
'303':
description: Returned if the request is successful.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the request is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
summary: Atlassian Bulk Set Issue Property
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:jira-expressions:jira
- write:issue.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/unarchive:
put:
deprecated: false
description: >-
Enables admins to unarchive up to 1000 issues in a single request using
issue ID/key, returning details of the issue(s) unarchived in the
process and the errors encountered, if any.
**Note
that:**
* you can't unarchive subtasks directly, only through
their parent issues
* you can only unarchive issues from software,
service management, and business
projects
**[Permissions](#permissions) required:** Jira admin or
site admin: [global
permission](https://confluence.atlassian.com/x/x4dKLg)
**License
required:** Premium or Enterprise
**Signed-in users only:** This
API can't be accessed anonymously.
operationId: atlassianUnarchiveissues
parameters: []
requestBody:
content:
application/json:
example:
issueIdsOrKeys:
- PR-1
- '1001'
- PROJECT-2
schema:
$ref: '#/components/schemas/IssueArchivalSyncRequest'
description: Contains a list of issue keys or IDs to be unarchived.
required: true
responses:
'200':
content:
application/json:
example: >-
{"errors":{"issueIsSubtask":{"count":3,"issueIdsOrKeys":["ST-1","ST-2","ST-3"],"message":"Issue
is
subtask."},"issuesInArchivedProjects":{"count":2,"issueIdsOrKeys":["AR-1","AR-2"],"message":"Issue
exists in archived
project."},"issuesNotFound":{"count":3,"issueIdsOrKeys":["PR-1","PR-2","PR-3"],"message":"Issue
not found."}},"numberOfIssuesUpdated":10}
schema:
$ref: '#/components/schemas/IssueArchivalSyncResponse'
description: >-
Returned if there is at least one valid issue to unarchive in the
request. It will return the count of unarchived issues, which also
includes the count of the subtasks unarchived, and it will show the
detailed errors for those issues which are not unarchived.
'400':
content:
application/json:
example: >-
{"errorMessages":["No valid issue to archive or unarchive. Bad
request."],"errors":{}}
description: >-
Returned if none of the issues in the request are eligible to be
unarchived. Possible reasons:
* the issues weren't found
* the issues are subtasks
* the issues belong to archived projects
'401':
content:
application/json:
example: '{"errorMessages":["User is not logged in."],"errors":{}}'
description: >-
Returned if no issues were unarchived because the provided
authentication credentials are either missing or invalid.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only admins can archive or unarchive issues.
Access denied."],"errors":{}}
description: >-
Returned if no issues were unarchived because the user lacks the
required Jira admin or site admin permissions.
'412':
content:
application/json:
example: >-
{"errorMessages":["The number of issues to archive or unarchive
exceeds the hard limit of 1000. Precondition
failed."],"errors":{}}
description: >-
Returned if one or more issues were successfully unarchived, but the
operation was incomplete because the number of issue IDs or keys
provided exceeds 1000.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Unarchive Issue S By Issue Keys Id
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
state: Beta
x-experimental: true
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/watching:
post:
deprecated: false
description: >-
Returns, for the user, details of the watched status of issues from a
list. If an issue ID is invalid, the returned watched status is
`false`.
This operation requires the **Allow users to watch
issues** option to be *ON*. This option is set in General configuration
for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetiswatchingissuebulk
parameters: []
requestBody:
content:
application/json:
example:
issueIds:
- '10001'
- '10002'
- '10005'
schema:
$ref: '#/components/schemas/IssueList'
description: A list of issue IDs.
required: true
responses:
'200':
content:
application/json:
example: '{"issuesIsWatching":{"10001":true,"10002":false,"10005":true}}'
schema:
$ref: '#/components/schemas/BulkIssueIsWatching'
description: Returned if the request is successful
'401':
description: Returned if the authentication credentials are incorrect or missing.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Is Watching Issue Bulk
tags:
- Issue Watchers
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.watcher:jira
- read:user:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}:
delete:
deprecated: false
description: >-
Deletes an issue.
An issue cannot be deleted if it has one or
more subtasks. To delete an issue with subtasks, set `deleteSubtasks`.
This causes the issue's subtasks to be deleted with the
issue.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Delete issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianDeleteissue
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: Whether the issue's subtasks are deleted when the issue is deleted.
in: query
name: deleteSubtasks
schema:
default: 'false'
enum:
- 'true'
- 'false'
type: string
responses:
'204':
description: Returned if the request is successful.
'400':
description: >-
Returned if the issue has subtasks and `deleteSubtasks` is not set
to *true*.
'401':
description: Returned if the authentication credentials are incorrect.
'403':
description: Returned if the user does not have permission to delete the issue.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns the details for an issue.
The issue is identified by its
ID or key, however, if the identifier doesn't match an issue, a
case-insensitive search and check for moved issues is performed. If a
matching issue is found its details are returned, a 302 or other
redirect is **not** returned. The issue key returned in the response is
the key of the issue found.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetissue
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
A list of fields to return for the issue. This parameter accepts a
comma-separated list. Use it to retrieve a subset of fields. Allowed
values:
* `*all` Returns all fields.
* `*navigable` Returns navigable fields.
* Any issue field, prefixed with a minus to exclude.
Examples:
* `summary,comment` Returns only the summary and comments fields.
* `-description` Returns all (default) fields except description.
* `*navigable,-comment` Returns all navigable fields except comment.
This parameter may be specified multiple times. For example,
`fields=field1,field2& fields=field3`.
Note: All fields are returned by default. This differs from [Search
for issues using JQL (GET)](#api-rest-api-3-search-get) and [Search
for issues using JQL (POST)](#api-rest-api-3-search-post) where the
default is all navigable fields.
in: query
name: fields
schema:
items:
default: '*all'
type: string
type: array
- description: >-
Whether fields in `fields` are referenced by keys rather than IDs.
This parameter is useful where fields have been added by a connect
app and a field's key may differ from its ID.
in: query
name: fieldsByKeys
schema:
default: false
type: boolean
- description: >-
Use [expand](#expansion) to include additional information about the
issues in the response. This parameter accepts a comma-separated
list. Expand options include:
* `renderedFields` Returns field values rendered in HTML format.
* `names` Returns the display name of each field.
* `schema` Returns the schema describing a field type.
* `transitions` Returns all possible transitions for the issue.
* `editmeta` Returns information about how each field can be edited.
* `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.
* `versionedRepresentations` Returns a JSON array for each version of a field's value, with the highest number representing the most recent version. Note: When included in the request, the `fields` parameter is ignored.
in: query
name: expand
schema:
type: string
- description: >-
A list of issue properties to return for the issue. This parameter
accepts a comma-separated list. Allowed values:
* `*all` Returns all issue properties.
* Any issue property key, prefixed with a minus to exclude.
Examples:
* `*all` Returns all properties.
* `*all,-prop1` Returns all properties except `prop1`.
* `prop1,prop2` Returns `prop1` and `prop2` properties.
This parameter may be specified multiple times. For example,
`properties=prop1,prop2& properties=prop3`.
in: query
name: properties
schema:
items:
default: 'null'
type: string
type: array
- description: >-
Whether the project in which the issue is created is added to the
user's **Recently viewed** project list, as shown under **Projects**
in Jira. This also populates the [JQL issues
search](#api-rest-api-3-search-get) `lastViewed` field.
in: query
name: updateHistory
schema:
default: false
type: boolean
responses:
'200':
content:
application/json:
example: >-
{"fields":{"watcher":{"isWatching":false,"self":"https://your-domain.atlassian.net/rest/api/3/issue/EX-1/watchers","watchCount":1,"watchers":[{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"}]},"attachment":[{"author":{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"content":"https://your-domain.atlassian.net/jira/rest/api/3/attachment/content/10000","created":"2022-10-06T07:32:47.000+0000","filename":"picture.jpg","id":10000,"mimeType":"image/jpeg","self":"https://your-domain.atlassian.net/rest/api/3/attachments/10000","size":23123,"thumbnail":"https://your-domain.atlassian.net/jira/rest/api/3/attachment/thumbnail/10000"}],"sub-tasks":[{"id":"10000","outwardIssue":{"fields":{"status":{"iconUrl":"https://your-domain.atlassian.net/images/icons/statuses/open.png","name":"Open"}},"id":"10003","key":"ED-2","self":"https://your-domain.atlassian.net/rest/api/3/issue/ED-2"},"type":{"id":"10000","inward":"Parent","name":"","outward":"Sub-task"}}],"description":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Main
order flow
broken"}]}]},"project":{"avatarUrls":{"16x16":"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000","24x24":"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000","32x32":"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000","48x48":"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000"},"id":"10000","insight":{"lastIssueUpdateTime":"2021-04-22T05:37:05.000+0000","totalIssueCount":100},"key":"EX","name":"Example","projectCategory":{"description":"First
Project
Category","id":"10000","name":"FIRST","self":"https://your-domain.atlassian.net/rest/api/3/projectCategory/10000"},"self":"https://your-domain.atlassian.net/rest/api/3/project/EX","simplified":false,"style":"classic"},"comment":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
eget venenatis elit. Duis eu justo eget augue iaculis fermentum.
Sed semper quam laoreet nisi egestas at posuere augue
semper."}]}]},"created":"2021-01-17T12:34:00.000+0000","id":"10000","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000","updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"Administrators","type":"role","value":"Administrators"}}],"issuelinks":[{"id":"10001","outwardIssue":{"fields":{"status":{"iconUrl":"https://your-domain.atlassian.net/images/icons/statuses/open.png","name":"Open"}},"id":"10004L","key":"PR-2","self":"https://your-domain.atlassian.net/rest/api/3/issue/PR-2"},"type":{"id":"10000","inward":"depends
on","name":"Dependent","outward":"is depended
by"}},{"id":"10002","inwardIssue":{"fields":{"status":{"iconUrl":"https://your-domain.atlassian.net/images/icons/statuses/open.png","name":"Open"}},"id":"10004","key":"PR-3","self":"https://your-domain.atlassian.net/rest/api/3/issue/PR-3"},"type":{"id":"10000","inward":"depends
on","name":"Dependent","outward":"is depended
by"}}],"worklog":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"comment":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"I
did some work
here."}]}]},"id":"100028","issueId":"10002","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000","started":"2021-01-17T12:34:00.000+0000","timeSpent":"3h
20m","timeSpentSeconds":12000,"updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"276f955c-63d7-42c8-9520-92d01dca0625","type":"group","value":"jira-developers"}}],"updated":1,"timetracking":{"originalEstimate":"10m","originalEstimateSeconds":600,"remainingEstimate":"3m","remainingEstimateSeconds":200,"timeSpent":"6m","timeSpentSeconds":400}},"id":"10002","key":"ED-1","self":"https://your-domain.atlassian.net/rest/api/3/issue/10002"}
schema:
$ref: '#/components/schemas/IssueBean'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:issue-security-level:jira
- read:issue.vote:jira
- read:issue.changelog:jira
- read:avatar:jira
- read:issue:jira
- read:status:jira
- read:user:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Edits an issue. A transition may be applied and issue properties updated
as part of the edit.
The edits to the issue's fields are defined
using `update` and `fields`. The fields that can be edited are
determined using [ Get edit issue
metadata](#api-rest-api-3-issue-issueIdOrKey-editmeta-get).
The
parent field may be set by key or ID. For standard issue types, the
parent may be removed by setting `update.parent.set.none` to *true*.
Note that the `description`, `environment`, and any `textarea` type
custom fields (multi-line text fields) take Atlassian Document Format
content. Single line custom fields (`textfield`) accept a string and
don't handle Atlassian Document Format content.
Connect apps
having an app user with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg), and Forge apps
acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg), can override the
screen security configuration using `overrideScreenSecurity` and
`overrideEditableFlag`.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Edit issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianEditissue
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
Whether a notification email about the issue update is sent to all
watchers. To disable the notification, administer Jira or administer
project permissions are required. If the user doesn't have the
necessary permission the request is ignored.
in: query
name: notifyUsers
schema:
default: true
type: boolean
- description: >-
Whether screen security is overridden to enable hidden fields to be
edited. Available to Connect app users with *Administer Jira*
[global permission](https://confluence.atlassian.com/x/x4dKLg) and
Forge apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
in: query
name: overrideScreenSecurity
schema:
default: false
type: boolean
- description: >-
Whether screen security is overridden to enable uneditable fields to
be edited. Available to Connect app users with *Administer Jira*
[global permission](https://confluence.atlassian.com/x/x4dKLg) and
Forge apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
- description: >-
Whether the response should contain the issue with fields edited in
this request. The returned issue will have the same format as in the
[Get issue API](#api-rest-api-3-issue-issueidorkey-get).
in: query
name: returnIssue
schema:
default: false
type: boolean
- description: >-
The Get issue API expand parameter to use in the response if the
`returnIssue` parameter is `true`.
in: query
name: expand
schema:
default: ''
type: string
requestBody:
content:
application/json:
example:
fields:
customfield_10000:
content:
- content:
- text: Investigation underway
type: text
type: paragraph
type: doc
version: 1
customfield_10010: 1
summary: Completed orders still displaying in pending
historyMetadata:
activityDescription: Complete order processing
actor:
avatarUrl: http://mysystem/avatar/tony.jpg
displayName: Tony
id: tony
type: mysystem-user
url: http://mysystem/users/tony
cause:
id: myevent
type: mysystem-event
description: From the order testing process
extraData:
Iteration: 10a
Step: '4'
generator:
id: mysystem-1
type: mysystem-application
type: myplugin:type
properties:
- key: key1
value: Order number 10784
- key: key2
value: Order number 10923
update:
components:
- set: ''
labels:
- add: triaged
- remove: blocker
summary:
- set: Bug in business logic
timetracking:
- edit:
originalEstimate: 1w 1d
remainingEstimate: 4d
schema:
$ref: '#/components/schemas/IssueUpdateDetails'
required: true
responses:
'200':
content:
application/json:
schema: {}
description: >-
Returned if the request is successful and the `returnIssue`
parameter is `true`
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
description: |-
Returned if:
* the request body is missing.
* the user does not have the necessary permission to edit one or more fields.
* the request includes one or more fields that are not found or are not associated with the issue's edit screen.
* the request includes an invalid transition.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: >-
Returned if the user uses `overrideScreenSecurity` or
`overrideEditableFlag` but doesn't have the necessary permission.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
'409':
description: >-
Returned if the issue could not be updated due to a conflicting
update. (refer to the
[changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)
*for more details.*
'422':
description: >-
Returned if a configuration problem prevents the issue being
updated. (refer to the
[changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)
*for more details.*
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Edit Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/assignee:
put:
deprecated: false
description: >-
Assigns an issue to a user. Use this operation when the calling user
does not have the *Edit Issues* permission but has the *Assign issue*
permission for the project that the issue is in.
If `name` or
`accountId` is set to:
* `"-1"`, the issue is assigned to the
default assignee for the project.
* `null`, the issue is set to
unassigned.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse Projects* and *Assign Issues* [ project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianAssignissue
parameters:
- description: The ID or key of the issue to be assigned.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
accountId: 5b10ac8d82e05b22cc7d4ef5
schema:
$ref: '#/components/schemas/User'
description: The request object with the user that the issue is assigned to.
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
description: |-
Returned if:
* the user is not found.
* `name`, `key`, or `accountId` is missing.
* more than one of `name`, `key`, and `accountId` are provided.
'403':
description: Returned if the user does not have the necessary permission.
'404':
description: Returned if the issue is not found.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Assign Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/attachments:
post:
deprecated: false
description: >-
Adds one or more attachments to an issue. Attachments are posted as
multipart/form-data ([RFC
1867](https://www.ietf.org/rfc/rfc1867.txt)).
Note that:
* The request must have a `X-Atlassian-Token: no-check` header, if not
it is blocked. See [Special headers](#special-request-headers) for more
information.
* The name of the multipart/form-data parameter that
contains the attachments must be `file`.
The following examples
upload a file called *myfile.txt* to the issue *TEST-123*:
####
curl ####
curl --location --request POST
'https://your-domain.atlassian.net/rest/api/3/issue/TEST-123/attachments'
-u 'email@example.com:'
-H 'X-Atlassian-Token: no-check'
--form 'file=@"myfile.txt"'
#### Node.js ####
// This
code sample uses the 'node-fetch' and 'form-data' libraries:
//
https://www.npmjs.com/package/node-fetch
//
https://www.npmjs.com/package/form-data
const fetch =
require('node-fetch');
const FormData =
require('form-data');
const fs = require('fs');
const filePath = 'myfile.txt';
const form = new
FormData();
const stats = fs.statSync(filePath);
const
fileSizeInBytes = stats.size;
const fileStream =
fs.createReadStream(filePath);
form.append('file',
fileStream, {knownLength: fileSizeInBytes});
fetch('https://your-domain.atlassian.net/rest/api/3/issue/TEST-123/attachments',
{
method: 'POST',
body: form,
headers: {
'Authorization': `Basic
${Buffer.from(
'email@example.com:'
).toString('base64')}`,
'Accept':
'application/json',
'X-Atlassian-Token':
'no-check'
}
})
.then(response =>
{
console.log(
`Response:
${response.status} ${response.statusText}`
);
return response.text();
})
.then(text => console.log(text))
.catch(err =>
console.error(err));
#### Java ####
// This code
sample uses the 'Unirest' library:
//
http://unirest.io/java.html
HttpResponse response =
Unirest.post("https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments")
.basicAuth("email@example.com", "")
.header("Accept",
"application/json")
.header("X-Atlassian-Token",
"no-check")
.field("file", new
File("myfile.txt"))
.asJson();
System.out.println(response.getBody());
#### Python
####
# This code sample uses the 'requests' library:
# http://docs.python-requests.org
import requests
from
requests.auth import HTTPBasicAuth
import json
url =
"https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments"
auth = HTTPBasicAuth("email@example.com", "")
headers = {
"Accept": "application/json",
"X-Atlassian-Token": "no-check"
}
response =
requests.request(
"POST",
url,
headers
= headers,
auth = auth,
files = {
"file": ("myfile.txt", open("myfile.txt","rb"),
"application-type")
}
)
print(json.dumps(json.loads(response.text), sort_keys=True, indent=4,
separators=(",", ": ")))
#### PHP ####
// This code
sample uses the 'Unirest' library:
//
http://unirest.io/php.html
Unirest\Request::auth('email@example.com', '');
$headers
= array(
'Accept' => 'application/json',
'X-Atlassian-Token' => 'no-check'
);
$parameters
= array(
'file' => File::add('myfile.txt')
);
$response = Unirest\Request::post(
'https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments',
$headers,
$parameters
);
var_dump($response)
#### Forge ####
// This sample
uses Atlassian Forge and the `form-data` library.
//
https://developer.atlassian.com/platform/forge/
//
https://www.npmjs.com/package/form-data
import api from
"@forge/api";
import FormData from "form-data";
const form = new FormData();
form.append('file', fileStream,
{knownLength: fileSizeInBytes});
const response = await
api.asApp().requestJira('/rest/api/2/issue/{issueIdOrKey}/attachments',
{
method: 'POST',
body: form,
headers: {
'Accept': 'application/json',
'X-Atlassian-Token': 'no-check'
}
});
console.log(`Response: ${response.status}
${response.statusText}`);
console.log(await
response.json());
Tip: Use a client library. Many client
libraries have classes for handling multipart POST operations. For
example, in Java, the Apache HTTP Components library provides a
[MultiPartEntity](http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html)
class for multipart POST operations.
This operation can be
accessed anonymously.
**[Permissions](#permissions) required:**
* *Browse Projects* and *Create attachments* [ project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianAddattachment
parameters:
- description: The ID or key of the issue that attachments are added to.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
items:
$ref: '#/components/schemas/MultipartFile'
type: array
required: true
responses:
'200':
content:
application/json:
example: >-
[{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"content":"https://your-domain.atlassian.net/rest/api/3/attachment/content/10000","created":1651316514000,"filename":"picture.jpg","id":"10001","mimeType":"image/jpeg","self":"https://your-domain.atlassian.net/rest/api/3/attachments/10000","size":23123,"thumbnail":"https://your-domain.atlassian.net/rest/api/3/attachment/thumbnail/10000"},{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"content":"https://your-domain.atlassian.net/rest/api/3/attachment/content/10001","created":1658898511000,"filename":"dbeuglog.txt","mimeType":"text/plain","self":"https://your-domain.atlassian.net/rest/api/3/attachments/10001","size":2460}]
schema:
items:
$ref: '#/components/schemas/Attachment'
type: array
description: Returned if the request is successful.
'403':
description: Returned if the user does not have the necessary permission.
'404':
description: |-
Returned if any of the following is true:
* the issue is not found.
* the user does not have permission to view the issue.
'413':
description: >-
The attachments exceed the maximum attachment size for issues, or
more than 60 files are requested to be uploaded. See [Configuring
file attachments](https://confluence.atlassian.com/x/wIXKM) for
details.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Add Attachment
tags:
- Issue Attachments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:user:jira
- write:attachment:jira
- read:attachment:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/changelog:
get:
deprecated: false
description: >-
Returns a [paginated](#pagination) list of all changelogs for an issue
sorted by date, starting from the oldest.
This operation can be
accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetchangelogs
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int32
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 100
format: int32
type: integer
responses:
'200':
content:
application/json:
example: >-
{"isLast":false,"maxResults":2,"nextPage":"https://your-domain.atlassian.net/rest/api/3/issue/TT-1/changelog?&startAt=4&maxResults=2","self":"https://your-domain.atlassian.net/rest/api/3/issue/TT-1/changelog?startAt=2&maxResults=2","startAt":2,"total":5,"values":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"created":"1970-01-18T06:27:50.429+0000","id":"10001","items":[{"field":"fields","fieldtype":"jira","fieldId":"fieldId","from":null,"fromString":"","to":null,"toString":"label-1"}]},{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"created":"1970-01-18T06:27:51.429+0000","id":"10002","items":[{"field":"fields","fieldtype":"jira","fieldId":"fieldId","from":null,"fromString":"label-1","to":null,"toString":"label-1
label-2"}]}]}
schema:
$ref: '#/components/schemas/PageBeanChangelog'
description: Returned if the request is successful.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Changelogs
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:avatar:jira
- read:issue.changelog:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/{issueIdOrKey}/changelog/list:
post:
deprecated: false
description: >-
Returns changelogs for an issue specified by a list of changelog
IDs.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetchangelogsbyids
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
changelogIds:
- 10001
- 10002
schema:
$ref: '#/components/schemas/IssueChangelogIds'
required: true
responses:
'200':
content:
application/json:
example: >-
{"histories":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"created":"1970-01-18T06:27:50.429+0000","id":"10001","items":[{"field":"fields","fieldtype":"jira","fieldId":"fieldId","from":null,"fromString":"","to":null,"toString":"label-1"}]},{"author":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"created":"1970-01-18T06:27:51.429+0000","id":"10002","items":[{"field":"fields","fieldtype":"jira","fieldId":"fieldId","from":null,"fromString":"label-1","to":null,"toString":"label-1
label-2"}]}],"maxResults":2,"startAt":0,"total":2}
schema:
$ref: '#/components/schemas/PageOfChangelogs'
description: Returned if the request is successful.
'400':
description: Returned if the request is not valid.
'404':
description: >-
Returned if the issue is not found or the user does not have the
necessary permission.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Changelogs By Ids
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:avatar:jira
- read:issue.changelog:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/comment:
get:
deprecated: false
description: >-
Returns all comments for an issue.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:** Comments
are included in the response where the user has:
* *Browse
projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
containing the comment.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the comment
has visibility restrictions, belongs to the group or has the role
visibility is role visibility is restricted to.
operationId: atlassianGetcomments
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int64
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 5000
format: int32
type: integer
- description: >-
[Order](#ordering) the results by a field. Accepts *created* to sort
comments by their created date.
in: query
name: orderBy
schema:
enum:
- created
- '-created'
- +created
type: string
- description: >-
Use [expand](#expansion) to include additional information about
comments in the response. This parameter accepts `renderedBody`,
which returns the comment body rendered in HTML.
in: query
name: expand
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"comments":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
eget venenatis elit. Duis eu justo eget augue iaculis fermentum.
Sed semper quam laoreet nisi egestas at posuere augue
semper."}]}]},"created":"2021-01-17T12:34:00.000+0000","id":"10000","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000","updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"Administrators","type":"role","value":"Administrators"}}],"maxResults":1,"startAt":0,"total":1}
schema:
$ref: '#/components/schemas/PageOfComments'
description: Returned if the request is successful.
'400':
description: Returned if `orderBy` is set to a value other than *created*.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Comments
tags:
- Issue Comments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:comment.property:jira
- read:group:jira
- read:project:jira
- read:project-role:jira
- read:user:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Adds a comment to an issue.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Add comments* [ project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue containing the comment is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianAddcomment
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
comments in the response. This parameter accepts `renderedBody`,
which returns the comment body rendered in HTML.
in: query
name: expand
schema:
type: string
requestBody:
content:
application/json:
example:
body:
content:
- content:
- text: >-
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Pellentesque eget venenatis elit. Duis eu justo
eget augue iaculis fermentum. Sed semper quam laoreet
nisi egestas at posuere augue semper.
type: text
type: paragraph
type: doc
version: 1
visibility:
identifier: Administrators
type: role
value: Administrators
schema:
$ref: '#/components/schemas/Comment'
required: true
responses:
'201':
content:
application/json:
example: >-
{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
eget venenatis elit. Duis eu justo eget augue iaculis fermentum.
Sed semper quam laoreet nisi egestas at posuere augue
semper."}]}]},"created":"2021-01-17T12:34:00.000+0000","id":"10000","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000","updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"Administrators","type":"role","value":"Administrators"}}
schema:
$ref: '#/components/schemas/Comment'
description: Returned if the request is successful.
'400':
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Add Comment
tags:
- Issue Comments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:comment.property:jira
- read:group:jira
- read:project:jira
- read:project-role:jira
- read:user:jira
- write:comment:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/comment/{id}:
delete:
deprecated: false
description: >-
Deletes a comment.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue containing the comment is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Delete all
comments*[ project
permission](https://confluence.atlassian.com/x/yodKLg) to delete any
comment or *Delete own comments* to delete comment created by the
user,
* If the comment has visibility restrictions, the user
belongs to the group or has the role visibility is restricted to.
operationId: atlassianDeletecomment
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the comment.
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Returned if the request is successful.
'400':
description: Returned if the user does not have permission to delete the comment.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue or comment is not found or the user does not
have permission to view the issue or comment.
'405':
description: Returned if an anonymous call is made to the operation.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Comment
tags:
- Issue Comments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:comment:jira
- delete:comment.property:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns a comment.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
containing the comment.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the comment
has visibility restrictions, the user belongs to the group or has the
role visibility is restricted to.
operationId: atlassianGetcomment
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the comment.
in: path
name: id
required: true
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
comments in the response. This parameter accepts `renderedBody`,
which returns the comment body rendered in HTML.
in: query
name: expand
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
eget venenatis elit. Duis eu justo eget augue iaculis fermentum.
Sed semper quam laoreet nisi egestas at posuere augue
semper."}]}]},"created":"2021-01-17T12:34:00.000+0000","id":"10000","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000","updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"Administrators","type":"role","value":"Administrators"}}
schema:
$ref: '#/components/schemas/Comment'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue or comment is not found or the user does not
have permission to view the issue or comment.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Comment
tags:
- Issue Comments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:comment.property:jira
- read:group:jira
- read:project:jira
- read:project-role:jira
- read:user:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Updates a comment.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue containing the comment is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Edit all
comments*[ project
permission](https://confluence.atlassian.com/x/yodKLg) to update any
comment or *Edit own comments* to update comment created by the
user.
* If the comment has visibility restrictions, the user
belongs to the group or has the role visibility is restricted to.
operationId: atlassianUpdatecomment
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the comment.
in: path
name: id
required: true
schema:
type: string
- description: Whether users are notified when a comment is updated.
in: query
name: notifyUsers
schema:
default: true
type: boolean
- description: >-
Whether screen security is overridden to enable uneditable fields to
be edited. Available to Connect app users with the *Administer Jira*
[global permission](https://confluence.atlassian.com/x/x4dKLg) and
Forge apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
- description: >-
Use [expand](#expansion) to include additional information about
comments in the response. This parameter accepts `renderedBody`,
which returns the comment body rendered in HTML.
in: query
name: expand
schema:
type: string
requestBody:
content:
application/json:
example:
body:
content:
- content:
- text: >-
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Pellentesque eget venenatis elit. Duis eu justo
eget augue iaculis fermentum. Sed semper quam laoreet
nisi egestas at posuere augue semper.
type: text
type: paragraph
type: doc
version: 1
visibility:
identifier: Administrators
type: role
value: Administrators
schema:
$ref: '#/components/schemas/Comment'
required: true
responses:
'200':
content:
application/json:
example: >-
{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Lorem
ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
eget venenatis elit. Duis eu justo eget augue iaculis fermentum.
Sed semper quam laoreet nisi egestas at posuere augue
semper."}]}]},"created":"2021-01-17T12:34:00.000+0000","id":"10000","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/comment/10000","updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"Administrators","type":"role","value":"Administrators"}}
schema:
$ref: '#/components/schemas/Comment'
description: Returned if the request is successful.
'400':
description: >-
Returned if the user does not have permission to edit the comment or
the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue or comment is not found or the user does not
have permission to view the issue or comment.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Update Comment
tags:
- Issue Comments
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:comment.property:jira
- read:group:jira
- read:project:jira
- read:project-role:jira
- read:user:jira
- write:comment:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/editmeta:
get:
deprecated: false
description: >-
Returns the edit screen fields for an issue that are visible to and
editable by the user. Use the information to populate the requests in
[Edit issue](#api-rest-api-3-issue-issueIdOrKey-put).
This
endpoint will check for these conditions:
1. Field is available
on a field screen - through screen, screen scheme, issue type screen
scheme, and issue type scheme configuration.
`overrideScreenSecurity=true` skips this condition.
2. Field is
visible in the [field
configuration](https://support.atlassian.com/jira-cloud-administration/docs/change-a-field-configuration/).
`overrideScreenSecurity=true` skips this condition.
3. Field is
shown on the issue: each field has different conditions here. For
example: Attachment field only shows if attachments are enabled.
Assignee only shows if user has permissions to assign the issue.
4. If a field is custom then it must have valid custom field context,
applicable for its project and issue type. All system fields are assumed
to have context in all projects and all issue types.
5. Issue has a
project, issue type, and status defined.
6. Issue is assigned to a
valid workflow, and the current status has assigned a workflow step.
`overrideEditableFlag=true` skips this condition.
7. The current
workflow step is editable. This is true by default, but [can be disabled
by
setting](https://support.atlassian.com/jira-cloud-administration/docs/use-workflow-properties/)
the `jira.issue.editable` property to `false`.
`overrideEditableFlag=true` skips this condition.
8. User has [Edit
issues
permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/).
9. Workflow permissions allow editing a field. This is true by default but
[can be
modified](https://support.atlassian.com/jira-cloud-administration/docs/use-workflow-properties/)
using `jira.permission.*` workflow properties.
Fields hidden
using [Issue layout settings
page](https://support.atlassian.com/jira-software-cloud/docs/configure-field-layout-in-the-issue-view/)
remain editable.
Connect apps having an app user with *Administer
Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),
and Forge apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg), can return
additional details using:
* `overrideScreenSecurity` When this
flag is `true`, then this endpoint skips checking if fields are
available through screens, and field configuration (conditions 1. and 2.
from the list above).
* `overrideEditableFlag` When this flag is
`true`, then this endpoint skips checking if workflow is present and if
the current step is editable (conditions 6. and 7. from the list
above).
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
Note: For any
fields to be editable the user must have the *Edit issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the issue.
operationId: atlassianGeteditissuemeta
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
Whether hidden fields are returned. Available to Connect app users
with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg) and Forge
apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
in: query
name: overrideScreenSecurity
schema:
default: false
type: boolean
- description: >-
Whether non-editable fields are returned. Available to Connect app
users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg) and Forge
apps acting on behalf of users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
responses:
'200':
content:
application/json:
example: >-
{"fields":{"summary":{"allowedValues":["red","blue"],"defaultValue":"red","hasDefaultValue":false,"key":"field_key","name":"My
Multi
Select","operations":["set","add"],"required":false,"schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect","customId":10001,"items":"option","type":"array"}}}}
schema:
$ref: '#/components/schemas/IssueUpdateMetadata'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: >-
Returned if the user uses an override parameter but doesn't have
permission to do so.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Edit Issue Metadata
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-meta:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/{issueIdOrKey}/notify:
post:
deprecated: false
description: >-
Creates an email notification for an issue and adds it to the mail
queue.
**[Permissions](#permissions) required:**
* *Browse Projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianNotify
parameters:
- description: ID or key of the issue that the notification is sent for.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
htmlBody: >-
The latest test results for this ticket are now
available.
restrict:
groupIds: []
groups:
- name: notification-group
permissions:
- key: BROWSE
subject: Latest test results
textBody: The latest test results for this ticket are now available.
to:
assignee: false
groupIds: []
groups:
- name: notification-group
reporter: false
users:
- accountId: 5b10a2844c20165700ede21g
active: false
voters: true
watchers: true
schema:
$ref: '#/components/schemas/Notification'
description: The request object for the notification and recipients.
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the email is queued for sending.
'400':
description: |-
Returned if:
* the recipient is the same as the calling user.
* the recipient is invalid. For example, the recipient is set to the assignee, but the issue is unassigned.
* the request is invalid. For example, required fields are missing or have invalid values.
'403':
description: |-
Returned if:
* outgoing emails are disabled.
* no SMTP server is configured.
'404':
description: Returned if the issue is not found.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Send Notification For Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- send:notification:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/properties:
get:
deprecated: false
description: >-
Returns the URLs and keys of an issue's properties.
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:** Property
details are only returned where the user has:
* *Browse
projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetissuepropertykeys
parameters:
- description: The key or ID of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"keys":[{"key":"issue.support","self":"https://your-domain.atlassian.net/rest/api/3/issue/EX-2/properties/issue.support"}]}
schema:
$ref: '#/components/schemas/PropertyKeys'
description: Returned if the request is successful.
'404':
description: >-
Returned if the issue is not found or the user does not have
permissions to view the issue.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue Property Keys
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.property:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}:
delete:
deprecated: false
description: >-
Deletes an issue's property.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Edit issues* [project
permissions](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianDeleteissueproperty
parameters:
- description: The key or ID of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The key of the property.
in: path
name: propertyKey
required: true
schema:
type: string
responses:
'204':
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue or property is not found, or the user does not
have permission to edit the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Issue Property
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue.property:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns the key and value of an issue's property.
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetissueproperty
parameters:
- description: The key or ID of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The key of the property.
in: path
name: propertyKey
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"key":"issue.support","value":{"system.conversation.id":"b1bf38be-5e94-4b40-a3b8-9278735ee1e6","system.support.time":"1m"}}
schema:
$ref: '#/components/schemas/EntityProperty'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue or property is not found or the user does not
have permission to see the issue.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue Property
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.property:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Sets the value of an issue's property. Use this resource to store custom
data against an issue.
The value of the request body must be a
[valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The
maximum length is 32768 characters.
This operation can be
accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* and *Edit issues* [project
permissions](https://confluence.atlassian.com/x/yodKLg) for the project
containing the issue.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianSetissueproperty
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The key of the issue property. The maximum length is 255 characters.
in: path
name: propertyKey
required: true
schema:
type: string
requestBody:
content:
application/json:
schema: {}
description: >-
The value of the property. The value has to be a valid, non-empty
[JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length
of the property value is 32768 bytes.
required: true
responses:
'200':
content:
application/json:
schema: {}
description: Returned if the issue property is updated.
'201':
content:
application/json:
schema: {}
description: Returned if the issue property is created.
'400':
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to edit the issue.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Set Issue Property
tags:
- Issue Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/remotelink:
delete:
deprecated: false
description: >-
Deletes the remote issue link from the issue using the link's global ID.
Where the global ID includes reserved URL characters these must be
escaped in the request. For example, pass
`system=http://www.mycompany.com/support&id=1` as
`system%3Dhttp%3A%2F%2Fwww.mycompany.com%2Fsupport%26id%3D1`.
This
operation requires [issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* and *Link issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is implemented,
issue-level security permission to view the issue.
operationId: atlassianDeleteremoteissuelinkbyglobalid
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
- description: The global ID of a remote issue link.
in: query
name: globalId
required: true
schema:
example: system=http://www.mycompany.com/support&id=1
type: string
x-showInExample: 'true'
responses:
'204':
description: Returned if the request is successful.
'400':
description: Returned if a global ID isn't provided.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to link issues.
'404':
description: >-
Returned if the issue or remote issue link is not found or the user
does not have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Remote Issue Link By Global Id
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue.remote-link:jira
- write:issue:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns the remote issue links for an issue. When a remote issue link
global ID is provided the record with that global ID is returned,
otherwise all remote issue links are returned. Where a global ID
includes reserved URL characters these must be escaped in the request.
For example, pass `system=http://www.mycompany.com/support&id=1` as
`system%3Dhttp%3A%2F%2Fwww.mycompany.com%2Fsupport%26id%3D1`.
This
operation requires [issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetremoteissuelinks
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
- description: The global ID of the remote issue link.
in: query
name: globalId
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
[{"application":{"name":"My Acme
Tracker","type":"com.acme.tracker"},"globalId":"system=http://www.mycompany.com/support&id=1","id":10000,"object":{"icon":{"title":"Support
Ticket","url16x16":"http://www.mycompany.com/support/ticket.png"},"status":{"icon":{"link":"http://www.mycompany.com/support?id=1&details=closed","title":"Case
Closed","url16x16":"http://www.mycompany.com/support/resolved.png"},"resolved":true},"summary":"Customer
support
issue","title":"TSTSUP-111","url":"http://www.mycompany.com/support?id=1"},"relationship":"causes","self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000"},{"application":{"name":"My
Acme
Tester","type":"com.acme.tester"},"globalId":"system=http://www.anothercompany.com/tester&id=1234","id":10001,"object":{"icon":{"title":"Test
Case","url16x16":"http://www.anothercompany.com/tester/images/testcase.gif"},"status":{"icon":{"link":"http://www.anothercompany.com/tester/person?accountId=5b10a2844c20165700ede21g","title":"Tested
by Mia
Krystof","url16x16":"http://www.anothercompany.com/tester/images/person/mia.gif"},"resolved":false},"summary":"Test
that the submit button saves the item","title":"Test Case
#1234","url":"http://www.anothercompany.com/tester/testcase/1234"},"relationship":"is
tested
by","self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10001"}]
schema:
$ref: '#/components/schemas/RemoteIssueLink'
description: Returned if the request is successful.
'400':
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if issue linking is disabled.
'404':
description: >-
Returned if the issue or remote issue link is not found or the user
does not have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Remote Issue Links
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.remote-link:jira
- read:status:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Creates or updates a remote issue link for an issue.
If a
`globalId` is provided and a remote issue link with that global ID is
found it is updated. Any fields without values in the request are set to
null. Otherwise, the remote issue link is created.
This operation
requires [issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* and *Link issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianCreateorupdateremoteissuelink
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
application:
name: My Acme Tracker
type: com.acme.tracker
globalId: system=http://www.mycompany.com/support&id=1
object:
icon:
title: Support Ticket
url16x16: http://www.mycompany.com/support/ticket.png
status:
icon:
link: http://www.mycompany.com/support?id=1&details=closed
title: Case Closed
url16x16: http://www.mycompany.com/support/resolved.png
resolved: true
summary: Customer support issue
title: TSTSUP-111
url: http://www.mycompany.com/support?id=1
relationship: causes
schema:
$ref: '#/components/schemas/RemoteIssueLinkRequest'
required: true
responses:
'200':
content:
application/json:
example: >-
{"id":10000,"self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000"}
schema:
$ref: '#/components/schemas/RemoteIssueLinkIdentifies'
description: Returned if the remote issue link is updated.
'201':
content:
application/json:
example: >-
{"id":10000,"self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000"}
schema:
$ref: '#/components/schemas/RemoteIssueLinkIdentifies'
description: Returned if the remote issue link is created.
'400':
content:
application/json:
example: '{"errorMessages":[],"errors":{"title":"''title'' is required."}}'
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to link issues.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Create Or Update Remote Issue Link
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
- write:issue.remote-link:jira
- read:issue.remote-link:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}:
delete:
deprecated: false
description: >-
Deletes a remote issue link from an issue.
This operation
requires [issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects*, *Edit issues*, and *Link
issues* [project permission](https://confluence.atlassian.com/x/yodKLg)
for the project that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianDeleteremoteissuelinkbyid
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
- description: The ID of a remote issue link.
in: path
name: linkId
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
responses:
'204':
description: Returned if the request is successful.
'400':
description: >-
Returned if the link ID is invalid or the remote issue link does not
belong to the issue.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to link issues.
'404':
description: >-
Returned if the issue or remote issue link is not found or the user
does not have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Remote Issue Link By Id
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue.remote-link:jira
- write:issue:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns a remote issue link for an issue.
This operation requires
[issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianGetremoteissuelinkbyid
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the remote issue link.
in: path
name: linkId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"application":{"name":"My Acme
Tracker","type":"com.acme.tracker"},"globalId":"system=http://www.mycompany.com/support&id=1","id":10000,"object":{"icon":{"title":"Support
Ticket","url16x16":"http://www.mycompany.com/support/ticket.png"},"status":{"icon":{"link":"http://www.mycompany.com/support?id=1&details=closed","title":"Case
Closed","url16x16":"http://www.mycompany.com/support/resolved.png"},"resolved":true},"summary":"Customer
support
issue","title":"TSTSUP-111","url":"http://www.mycompany.com/support?id=1"},"relationship":"causes","self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000"}
schema:
$ref: '#/components/schemas/RemoteIssueLink'
description: Returned if the request is successful.
'400':
description: >-
Returned if the link ID is invalid or the remote issue link does not
belong to the issue.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if issue linking is disabled.
'404':
description: >-
Returned if the issue or remote issue link is not found or the user
does not have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Remote Issue Link By Id
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.remote-link:jira
- read:status:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Updates a remote issue link for an issue.
Note: Fields without
values in the request are set to null.
This operation requires
[issue linking to be
active](https://confluence.atlassian.com/x/yoXKM).
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* and *Link issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianUpdateremoteissuelink
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
- description: The ID of the remote issue link.
in: path
name: linkId
required: true
schema:
example: '10000'
type: string
x-showInExample: 'true'
requestBody:
content:
application/json:
example:
application:
name: My Acme Tracker
type: com.acme.tracker
globalId: system=http://www.mycompany.com/support&id=1
object:
icon:
title: Support Ticket
url16x16: http://www.mycompany.com/support/ticket.png
status:
icon:
link: http://www.mycompany.com/support?id=1&details=closed
title: Case Closed
url16x16: http://www.mycompany.com/support/resolved.png
resolved: true
summary: Customer support issue
title: TSTSUP-111
url: http://www.mycompany.com/support?id=1
relationship: causes
schema:
$ref: '#/components/schemas/RemoteIssueLinkRequest'
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
content:
application/json:
example: '{"errorMessages":[],"errors":{"title":"''title'' is required."}}'
description: |-
Returned if:
* the link ID is invalid.
* the remote issue link does not belong to the issue.
* the request body is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to link issues.
'404':
description: >-
Returned if the issue or remote issue link is not found or the user
does not have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Update Remote Issue Link By Id
tags:
- Issue Remote Links
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
- write:issue.remote-link:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/transitions:
get:
deprecated: false
description: >-
Returns either all transitions or a transition that can be performed by
the user on an issue, based on the issue's status.
Note, if a
request is made for a transition that does not exist or cannot be
performed on the issue, given its status, the response will return any
empty transitions list.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required: A list or
transition is returned only when the user has:**
* *Browse
projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
However, if
the user does not have the *Transition issues* [ project
permission](https://confluence.atlassian.com/x/yodKLg) the response will
not list any transitions.
operationId: atlassianGettransitions
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
transitions in the response. This parameter accepts
`transitions.fields`, which returns information about the fields in
the transition screen for each transition. Fields hidden from the
screen are not returned. Use this information to populate the
`fields` and `update` fields in [Transition
issue](#api-rest-api-3-issue-issueIdOrKey-transitions-post).
in: query
name: expand
schema:
type: string
- description: The ID of the transition.
in: query
name: transitionId
schema:
type: string
- description: >-
Whether transitions with the condition *Hide From User Condition*
are included in the response.
in: query
name: skipRemoteOnlyCondition
schema:
default: false
type: boolean
- description: >-
Whether details of transitions that fail a condition are included in
the response
in: query
name: includeUnavailableTransitions
schema:
default: false
type: boolean
- description: >-
Whether the transitions are sorted by ops-bar sequence value first
then category order (Todo, In Progress, Done) or only by ops-bar
sequence value.
in: query
name: sortByOpsBarAndStatus
schema:
default: false
type: boolean
responses:
'200':
content:
application/json:
example: >-
{"transitions":[{"fields":{"summary":{"allowedValues":["red","blue"],"defaultValue":"red","hasDefaultValue":false,"key":"field_key","name":"My
Multi
Select","operations":["set","add"],"required":false,"schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect","customId":10001,"items":"option","type":"array"}}},"hasScreen":false,"id":"2","isAvailable":true,"isConditional":false,"isGlobal":false,"isInitial":false,"name":"Close
Issue","to":{"description":"The issue is currently being worked
on.","iconUrl":"https://your-domain.atlassian.net/images/icons/progress.gif","id":"10000","name":"In
Progress","self":"https://your-domain.atlassian.net/rest/api/3/status/10000","statusCategory":{"colorName":"yellow","id":1,"key":"in-flight","name":"In
Progress","self":"https://your-domain.atlassian.net/rest/api/3/statuscategory/1"}}},{"fields":{"summary":{"allowedValues":["red","blue"],"defaultValue":"red","hasDefaultValue":false,"key":"field_key","name":"My
Multi
Select","operations":["set","add"],"required":false,"schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect","customId":10001,"items":"option","type":"array"}},"colour":{"allowedValues":["red","blue"],"defaultValue":"red","hasDefaultValue":false,"key":"field_key","name":"My
Multi
Select","operations":["set","add"],"required":false,"schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect","customId":10001,"items":"option","type":"array"}}},"hasScreen":true,"id":"711","name":"QA
Review","to":{"description":"The issue is
closed.","iconUrl":"https://your-domain.atlassian.net/images/icons/closed.gif","id":"5","name":"Closed","self":"https://your-domain.atlassian.net/rest/api/3/status/5","statusCategory":{"colorName":"green","id":9,"key":"completed","self":"https://your-domain.atlassian.net/rest/api/3/statuscategory/9"}}}]}
schema:
$ref: '#/components/schemas/Transitions'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Transitions
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.transition:jira
- read:status:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Performs an issue transition and, if the transition has a screen,
updates the fields from the transition screen.
sortByCategory To
update the fields on the transition screen, specify the fields in the
`fields` or `update` parameters in the request body. Get details about
the fields using [ Get
transitions](#api-rest-api-3-issue-issueIdOrKey-transitions-get) with
the `transitions.fields` expand.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Transition issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianDotransition
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
fields:
assignee:
name: bob
resolution:
name: Fixed
historyMetadata:
activityDescription: Complete order processing
actor:
avatarUrl: http://mysystem/avatar/tony.jpg
displayName: Tony
id: tony
type: mysystem-user
url: http://mysystem/users/tony
cause:
id: myevent
type: mysystem-event
description: From the order testing process
extraData:
Iteration: 10a
Step: '4'
generator:
id: mysystem-1
type: mysystem-application
type: myplugin:type
transition:
id: '5'
update:
comment:
- add:
body:
content:
- content:
- text: Bug has been fixed
type: text
type: paragraph
type: doc
version: 1
schema:
$ref: '#/components/schemas/IssueUpdateDetails'
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
description: |-
Returned if:
* no transition is specified.
* the user does not have permission to transition the issue.
* a field that isn't included on the transition screen is defined in `fields` or `update`.
* a field is specified in both `fields` and `update`.
* the request is invalid for any other reason.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
'409':
description: >-
Returned if the issue could not be updated due to a conflicting
update. (refer to the
[changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)
*for more details.*
'422':
description: >-
Returned if a configuration problem prevents the creation of the
issue. (refer to the
[changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)
*for more details.*
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Transition Issue
tags:
- Issues
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue:jira
- write:issue.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/votes:
delete:
deprecated: false
description: >-
Deletes a user's vote from an issue. This is the equivalent of the user
clicking *Unvote* on an issue in Jira.
This operation requires
the **Allow users to vote on issues** option to be *ON*. This option is
set in General configuration for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianRemovevote
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
responses:
'204':
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* voting is disabled.
* the user has not voted on the issue.
* the issue is not found.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Vote
tags:
- Issue Votes
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.vote:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns details about the votes on an issue.
This operation
requires the **Allow users to vote on issues** option to be *ON*. This
option is set in General configuration for Jira. See [Configuring Jira
application options](https://confluence.atlassian.com/x/uYXKM) for
details.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is ini
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
Note that
users with the necessary permissions for this operation but without the
*View voters and watchers* project permissions are not returned details
in the `voters` field.
operationId: atlassianGetvotes
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"hasVoted":true,"self":"https://your-domain.atlassian.net/rest/api/issue/MKY-1/votes","voters":[{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"}],"votes":24}
schema:
$ref: '#/components/schemas/Votes'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* voting is disabled.
* the user does not have permission to view the issue.
* the issue is not found.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Votes
tags:
- Issue Votes
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.vote:jira
- read:user:jira
- read:application-role:jira
- read:avatar:jira
- read:group:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Adds the user's vote to an issue. This is the equivalent of the user
clicking *Vote* on an issue in Jira.
This operation requires the
**Allow users to vote on issues** option to be *ON*. This option is set
in General configuration for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianAddvote
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* voting is disabled.
* the issue is not found.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Add Vote
tags:
- Issue Votes
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.vote:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/watchers:
delete:
deprecated: false
description: >-
Deletes a user as a watcher of an issue.
This operation requires
the **Allow users to watch issues** option to be *ON*. This option is
set in General configuration for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* To remove
users other than themselves from the watchlist, *Manage watcher list*
[project permission](https://confluence.atlassian.com/x/yodKLg) for the
project that the issue is in.
operationId: atlassianRemovewatcher
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
This parameter is no longer available. See the [deprecation
notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)
for details.
in: query
name: username
schema:
type: string
- description: >-
The account ID of the user, which uniquely identifies the user
across all Atlassian products. For example,
*5b10ac8d82e05b22cc7d4ef5*. Required.
in: query
name: accountId
schema:
example: 5b10ac8d82e05b22cc7d4ef5
maxLength: 128
type: string
x-showInExample: 'true'
responses:
'204':
description: Returned if the request is successful.
'400':
description: Returned if `accountId` is not supplied.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: >-
Returned if the user does not have the permission to manage the
watcher list.
'404':
description: >-
Returned if the issue or the user is not found or the user does not
have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Watcher
tags:
- Issue Watchers
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.watcher:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns the watchers for an issue.
This operation requires the
**Allow users to watch issues** option to be *ON*. This option is set in
General configuration for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is ini
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* To see details
of users on the watchlist other than themselves, *View voters and
watchers* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
operationId: atlassianGetissuewatchers
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"isWatching":false,"self":"https://your-domain.atlassian.net/rest/api/3/issue/EX-1/watchers","watchCount":1,"watchers":[{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"}]}
schema:
$ref: '#/components/schemas/Watchers'
description: Returned if the request is successful
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue Watchers
tags:
- Issue Watchers
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue.watcher:jira
- read:user:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Adds a user as a watcher of an issue by passing the account ID of the
user. For example, `"5b10ac8d82e05b22cc7d4ef5"`. If no user is specified
the calling user is added.
This operation requires the **Allow
users to watch issues** option to be *ON*. This option is set in General
configuration for Jira. See [Configuring Jira application
options](https://confluence.atlassian.com/x/uYXKM) for
details.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* To add users
other than themselves to the watchlist, *Manage watcher list* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
operationId: atlassianAddwatcher
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: string
description: >-
The account ID of the user. Note that username cannot be used due to
privacy changes.
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: >-
Returned if the user does not have the permission to manage the
watcher list.
'404':
description: >-
Returned if the issue or the user is not found or the user does not
have permission to view the issue.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Add Watcher
tags:
- Issue Watchers
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue.watcher:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/worklog:
get:
deprecated: false
description: >-
Returns worklogs for an issue, starting from the oldest worklog or from
the worklog started on or after a date and time.
Time tracking
must be enabled in Jira, otherwise this operation returns an error. For
more information, see [Configuring time
tracking](https://confluence.atlassian.com/x/qoXKM).
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:** Workloads
are only returned where the user has:
* *Browse projects*
[project permission](https://confluence.atlassian.com/x/yodKLg) for the
project that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the worklog
has visibility restrictions, belongs to the group or has the role
visibility is restricted to.
operationId: atlassianGetissueworklog
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int64
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 5000
format: int32
type: integer
- description: >-
The worklog start date and time, as a UNIX timestamp in
milliseconds, after which worklogs are returned.
in: query
name: startedAfter
schema:
format: int64
type: integer
- description: >-
The worklog start date and time, as a UNIX timestamp in
milliseconds, before which worklogs are returned.
in: query
name: startedBefore
schema:
format: int64
type: integer
- description: >-
Use [expand](#expansion) to include additional information about
worklogs in the response. This parameter accepts`properties`, which
returns worklog properties.
in: query
name: expand
schema:
default: ''
type: string
responses:
'200':
content:
application/json:
example: >-
{"maxResults":1,"startAt":0,"total":1,"worklogs":[{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"comment":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"I
did some work
here."}]}]},"id":"100028","issueId":"10002","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000","started":"2021-01-17T12:34:00.000+0000","timeSpent":"3h
20m","timeSpentSeconds":12000,"updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"276f955c-63d7-42c8-9520-92d01dca0625","type":"group","value":"jira-developers"}}]}
schema:
$ref: '#/components/schemas/PageOfWorklogs'
description: Returned if the request is successful
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* the issue is not found or the user does not have permission to view the issue.
* `startAt` or `maxResults` has non-numeric values.
* time tracking is disabled.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Issue Worklogs
tags:
- Issue Worklogs
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:group:jira
- read:issue-worklog:jira
- read:issue-worklog.property:jira
- read:project-role:jira
- read:user:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: READ
post:
deprecated: false
description: >-
Adds a worklog to an issue.
Time tracking must be enabled in
Jira, otherwise this operation returns an error. For more information,
see [Configuring time
tracking](https://confluence.atlassian.com/x/qoXKM).
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* and *Work on issues* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
operationId: atlassianAddworklog
parameters:
- description: The ID or key the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: Whether users watching the issue are notified by email.
in: query
name: notifyUsers
schema:
default: true
type: boolean
- description: |-
Defines how to update the issue's time estimate, the options are:
* `new` Sets the estimate to a specific value, defined in `newEstimate`.
* `leave` Leaves the estimate unchanged.
* `manual` Reduces the estimate by amount specified in `reduceBy`.
* `auto` Reduces the estimate by the value of `timeSpent` in the worklog.
in: query
name: adjustEstimate
schema:
default: auto
enum:
- new
- leave
- manual
- auto
type: string
- description: >-
The value to set as the issue's remaining time estimate, as days
(\#d), hours (\#h), or minutes (\#m or \#). For example, *2d*.
Required when `adjustEstimate` is `new`.
in: query
name: newEstimate
schema:
type: string
- description: >-
The amount to reduce the issue's remaining estimate by, as days
(\#d), hours (\#h), or minutes (\#m). For example, *2d*. Required
when `adjustEstimate` is `manual`.
in: query
name: reduceBy
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
work logs in the response. This parameter accepts `properties`,
which returns worklog properties.
in: query
name: expand
schema:
default: ''
type: string
- description: >-
Whether the worklog entry should be added to the issue even if the
issue is not editable, because jira.issue.editable set to false or
missing. For example, the issue is closed. Connect and Forge app
users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg) can use this
flag.
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
requestBody:
content:
application/json:
example:
comment:
content:
- content:
- text: I did some work here.
type: text
type: paragraph
type: doc
version: 1
started: 2021-01-17T12:34:00.000+0000
timeSpentSeconds: 12000
visibility:
identifier: 276f955c-63d7-42c8-9520-92d01dca0625
type: group
schema:
$ref: '#/components/schemas/Worklog'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Worklog'
description: Returned if the request is successful.
'400':
description: |-
Returned if:
* `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.
* `adjustEstimate` is set to `manual` but `reduceBy` is not provided or is invalid.
* the user does not have permission to add the worklog.
* the request JSON is malformed.
'401':
description: Returned if the authentication credentials are incorrect.
'404':
description: >-
Returned if the issue is not found or the user does not have
permission to view it.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Add Worklog
tags:
- Issue Worklogs
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue-worklog:jira
- write:issue-worklog.property:jira
- read:avatar:jira
- read:group:jira
- read:issue-worklog:jira
- read:project-role:jira
- read:user:jira
- read:issue-worklog.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/worklog/{id}:
delete:
deprecated: false
description: >-
Deletes a worklog from an issue.
Time tracking must be enabled in
Jira, otherwise this operation returns an error. For more information,
see [Configuring time
tracking](https://confluence.atlassian.com/x/qoXKM).
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Delete all
worklogs*[ project
permission](https://confluence.atlassian.com/x/yodKLg) to delete any
worklog or *Delete own worklogs* to delete worklogs created by the
user,
* If the worklog has visibility restrictions, belongs to the
group or has the role visibility is restricted to.
operationId: atlassianDeleteworklog
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: id
required: true
schema:
type: string
- description: Whether users watching the issue are notified by email.
in: query
name: notifyUsers
schema:
default: true
type: boolean
- description: |-
Defines how to update the issue's time estimate, the options are:
* `new` Sets the estimate to a specific value, defined in `newEstimate`.
* `leave` Leaves the estimate unchanged.
* `manual` Increases the estimate by amount specified in `increaseBy`.
* `auto` Reduces the estimate by the value of `timeSpent` in the worklog.
in: query
name: adjustEstimate
schema:
default: auto
enum:
- new
- leave
- manual
- auto
type: string
- description: >-
The value to set as the issue's remaining time estimate, as days
(\#d), hours (\#h), or minutes (\#m or \#). For example, *2d*.
Required when `adjustEstimate` is `new`.
in: query
name: newEstimate
schema:
type: string
- description: >-
The amount to increase the issue's remaining estimate by, as days
(\#d), hours (\#h), or minutes (\#m or \#). For example, *2d*.
Required when `adjustEstimate` is `manual`.
in: query
name: increaseBy
schema:
type: string
- description: >-
Whether the work log entry should be added to the issue even if the
issue is not editable, because jira.issue.editable set to false or
missing. For example, the issue is closed. Connect and Forge app
users with admin permission can use this flag.
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
responses:
'204':
description: Returned if the request is successful.
'400':
description: |-
Returned if:
* `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.
* `adjustEstimate` is set to `manual` but `reduceBy` is not provided or is invalid.
* the user does not have permission to delete the worklog.
'401':
description: Returned if the authentication credentials are incorrect.
'404':
description: |-
Returned if:
* the issue is not found or user does not have permission to view the issue.
* the worklog is not found or the user does not have permission to view it.
* time tracking is disabled.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Worklog
tags:
- Issue Worklogs
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue-worklog:jira
- delete:issue-worklog.property:jira
- write:issue.time-tracking:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns a worklog.
Time tracking must be enabled in Jira,
otherwise this operation returns an error. For more information, see
[Configuring time
tracking](https://confluence.atlassian.com/x/qoXKM).
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the worklog
has visibility restrictions, belongs to the group or has the role
visibility is restricted to.
operationId: atlassianGetworklog
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: id
required: true
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
work logs in the response. This parameter accepts
`properties`, which returns worklog properties.
in: query
name: expand
schema:
default: ''
type: string
responses:
'200':
content:
application/json:
example: >-
{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"comment":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"I
did some work
here."}]}]},"id":"100028","issueId":"10002","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000","started":"2021-01-17T12:34:00.000+0000","timeSpent":"3h
20m","timeSpentSeconds":12000,"updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"276f955c-63d7-42c8-9520-92d01dca0625","type":"group","value":"jira-developers"}}
schema:
$ref: '#/components/schemas/Worklog'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect.
'404':
description: |-
Returned if:
* the issue is not found or the user does not have permission to view it.
* the worklog is not found or the user does not have permission to view it.
* time tracking is disabled.
.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Worklog
tags:
- Issue Worklogs
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:group:jira
- read:issue-worklog:jira
- read:issue-worklog.property:jira
- read:project-role:jira
- read:user:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Updates a worklog.
Time tracking must be enabled in Jira,
otherwise this operation returns an error. For more information, see
[Configuring time
tracking](https://confluence.atlassian.com/x/qoXKM).
This
operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Edit all
worklogs*[ project
permission](https://confluence.atlassian.com/x/yodKLg) to update any
worklog or *Edit own worklogs* to update worklogs created by the
user.
* If the worklog has visibility restrictions, belongs to the
group or has the role visibility is restricted to.
operationId: atlassianUpdateworklog
parameters:
- description: The ID or key the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: id
required: true
schema:
type: string
- description: Whether users watching the issue are notified by email.
in: query
name: notifyUsers
schema:
default: true
type: boolean
- description: |-
Defines how to update the issue's time estimate, the options are:
* `new` Sets the estimate to a specific value, defined in `newEstimate`.
* `leave` Leaves the estimate unchanged.
* `auto` Updates the estimate by the difference between the original and updated value of `timeSpent` or `timeSpentSeconds`.
in: query
name: adjustEstimate
schema:
default: auto
enum:
- new
- leave
- manual
- auto
type: string
- description: >-
The value to set as the issue's remaining time estimate, as days
(\#d), hours (\#h), or minutes (\#m or \#). For example, *2d*.
Required when `adjustEstimate` is `new`.
in: query
name: newEstimate
schema:
type: string
- description: >-
Use [expand](#expansion) to include additional information about
worklogs in the response. This parameter accepts `properties`, which
returns worklog properties.
in: query
name: expand
schema:
default: ''
type: string
- description: >-
Whether the worklog should be added to the issue even if the issue
is not editable. For example, because the issue is closed. Connect
and Forge app users with *Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg) can use this
flag.
in: query
name: overrideEditableFlag
schema:
default: false
type: boolean
requestBody:
content:
application/json:
example:
comment:
content:
- content:
- text: I did some work here.
type: text
type: paragraph
type: doc
version: 1
started: 2021-01-17T12:34:00.000+0000
timeSpentSeconds: 12000
visibility:
identifier: 276f955c-63d7-42c8-9520-92d01dca0625
type: group
schema:
$ref: '#/components/schemas/Worklog'
required: true
responses:
'200':
content:
application/json:
example: >-
{"author":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"comment":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"I
did some work
here."}]}]},"id":"100028","issueId":"10002","self":"https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000","started":"2021-01-17T12:34:00.000+0000","timeSpent":"3h
20m","timeSpentSeconds":12000,"updateAuthor":{"accountId":"5b10a2844c20165700ede21g","active":false,"displayName":"Mia
Krystof","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},"updated":"2021-01-18T23:45:00.000+0000","visibility":{"identifier":"276f955c-63d7-42c8-9520-92d01dca0625","type":"group","value":"jira-developers"}}
schema:
$ref: '#/components/schemas/Worklog'
description: Returned if the request is successful
'400':
description: |-
Returned if:
* `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.
* the user does not have permission to update the worklog.
* the request JSON is malformed.
'401':
description: Returned if the authentication credentials are incorrect.
'404':
description: |-
Returned if:
* the issue is not found or user does not have permission to view the issue.
* the worklog is not found or the user does not have permission to view it.
* time tracking is disabled.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Update Worklog
tags:
- Issue Worklogs
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:comment:jira
- read:group:jira
- read:issue-worklog:jira
- read:issue-worklog.property:jira
- read:project-role:jira
- read:user:jira
- write:comment:jira
- write:issue-worklog:jira
- write:issue-worklog.property:jira
- read:avatar:jira
state: Beta
x-atlassian-connect-scope: WRITE
/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties:
get:
deprecated: false
description: >-
Returns the keys of all properties for a worklog.
This operation
can be accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the worklog
has visibility restrictions, belongs to the group or has the role
visibility is restricted to.
operationId: atlassianGetworklogpropertykeys
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: worklogId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"keys":[{"key":"issue.support","self":"https://your-domain.atlassian.net/rest/api/3/issue/EX-2/properties/issue.support"}]}
schema:
$ref: '#/components/schemas/PropertyKeys'
description: Returned if the request is successful.
'400':
description: Returned if the worklog ID is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* the issue or worklog is not found.
* the user does not have permission to view the issue or worklog.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Worklog Property Keys
tags:
- Issue Worklog Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-worklog.property:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}:
delete:
deprecated: false
description: >-
Deletes a worklog property.
This operation can be accessed
anonymously.
**[Permissions](#permissions) required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the worklog
has visibility restrictions, belongs to the group or has the role
visibility is restricted to.
operationId: atlassianDeleteworklogproperty
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: worklogId
required: true
schema:
type: string
- description: The key of the property.
in: path
name: propertyKey
required: true
schema:
type: string
responses:
'204':
description: Returned if the worklog property is removed.
'400':
description: Returned if the worklog key or id is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to edit the worklog.
'404':
description: |-
Returned if:
* the issue, worklog, or property is not found.
* the user does not have permission to view the issue or worklog.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Delete Worklog Property
tags:
- Issue Worklog Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- delete:issue-worklog.property:jira
state: Beta
x-atlassian-connect-scope: DELETE
get:
deprecated: false
description: >-
Returns the value of a worklog property.
This operation can be
accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* If the worklog
has visibility restrictions, belongs to the group or has the role
visibility is restricted to.
operationId: atlassianGetworklogproperty
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: worklogId
required: true
schema:
type: string
- description: The key of the property.
in: path
name: propertyKey
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"key":"issue.support","value":{"system.conversation.id":"b1bf38be-5e94-4b40-a3b8-9278735ee1e6","system.support.time":"1m"}}
schema:
$ref: '#/components/schemas/EntityProperty'
description: Returned if the request is successful.
'400':
description: Returned if the worklog ID is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'404':
description: |-
Returned if:
* the issue, worklog, or property is not found.
* the user does not have permission to view the issue or worklog.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
- {}
summary: Atlassian Get Worklog Property
tags:
- Issue Worklog Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:issue-worklog.property:jira
state: Beta
x-atlassian-connect-scope: READ
put:
deprecated: false
description: >-
Sets the value of a worklog property. Use this operation to store custom
data against the worklog.
The value of the request body must be a
[valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The
maximum length is 32768 characters.
This operation can be
accessed anonymously.
**[Permissions](#permissions)
required:**
* *Browse projects* [project
permission](https://confluence.atlassian.com/x/yodKLg) for the project
that the issue is in.
* If [issue-level
security](https://confluence.atlassian.com/x/J4lKLg) is configured,
issue-level security permission to view the issue.
* *Edit all
worklogs*[ project
permission](https://confluence.atlassian.com/x/yodKLg) to update any
worklog or *Edit own worklogs* to update worklogs created by the
user.
* If the worklog has visibility restrictions, belongs to the
group or has the role visibility is restricted to.
operationId: atlassianSetworklogproperty
parameters:
- description: The ID or key of the issue.
in: path
name: issueIdOrKey
required: true
schema:
type: string
- description: The ID of the worklog.
in: path
name: worklogId
required: true
schema:
type: string
- description: The key of the issue property. The maximum length is 255 characters.
in: path
name: propertyKey
required: true
schema:
type: string
requestBody:
content:
application/json:
schema: {}
description: >-
The value of the property. The value has to be a valid, non-empty
[JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length
of the property value is 32768 bytes.
required: true
responses:
'200':
content:
application/json:
schema: {}
description: Returned if the worklog property is updated.
'201':
content:
application/json:
schema: {}
description: Returned if the worklog property is created.
'400':
description: Returned if the worklog ID is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
description: Returned if the user does not have permission to edit the worklog.
'404':
description: |-
Returned if:
* the issue or worklog is not found.
* the user does not have permission to view the issue or worklog.
security:
- basicAuth: []
- OAuth2:
- write:jira-work
- {}
summary: Atlassian Set Worklog Property
tags:
- Issue Worklog Properties
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- write:jira-work
state: Current
- scheme: OAuth2
scopes:
- write:issue-worklog.property:jira
state: Beta
x-atlassian-connect-scope: WRITE
servers:
- url: https://your-domain.atlassian.net
tags:
- name: Issue Attachments
- name: Issue Comments
- name: Issue Properties
- name: Issue Remote Links
- name: Issue Search
- name: Issue Votes
- name: Issue Watchers
- name: Issue Worklog Properties
- name: Issue Worklogs
- name: Issues
x-atlassian-narrative:
documents:
- anchor: about
body: >-
The Jira REST API enables you to interact with Jira programmatically.
Use this API to
[build
apps](https://developer.atlassian.com/cloud/jira/platform/integrating-with-jira-cloud/),
script interactions with
Jira, or develop any other type of integration. This page documents the
REST resources available in Jira Cloud, including
the HTTP response codes and example requests and responses.
title: About
- anchor: version
body: >
This documentation is for **version 3** of the Jira Cloud platform REST
API, which is the latest version
but is in **beta**. [Version
2](https://developer.atlassian.com/cloud/jira/platform/rest/v2/) and
version 3 of the API offer the same collection of operations. However,
version 3 provides support for
the [Atlassian Document
Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/)
(ADF) in:
- `body` in comments, including where comments are used in issue, issue
link, and transition resources.
- `comment` in worklogs.
- `description` and `environment` fields in issues.
- `textarea` type custom fields (multi-line text fields) in issues.
Single line custom fields
(`textfield`) accept a string and don't handle Atlassian Document Format content.
However, these new features are under development and may change.
title: Version
- anchor: authentication
body: >
### Forge apps
For Forge apps, [REST API
scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/)
are used when authenticating with Jira Cloud platform. See [Add scopes
to call an Atlassian REST
API](https://developer.atlassian.com/platform/forge/add-scopes-to-call-an-atlassian-rest-api/)
for more details.
The URIs for Forge app REST API calls have this structure:
`/rest/api/3/`
For example, `/rest/api/3/issue/DEMO-1`
### Connect apps
For Connect apps, authentication (JWT-based) is built into the Connect
libraries. Authorization is implemented using either
scopes (shown as _App scope required_ for operations on this page) or
user impersonation. See
[Security for Connect
apps](https://developer.atlassian.com/cloud/jira/platform/security-for-connect-apps/)
for details.
The URIs for Connect app REST API calls have this structure:
`https:///rest/api/3/`
For example, `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1`
### Other integrations
For integrations that are not Forge or Connect apps, use OAuth 2.0
authorization code grants (3LO) for security
(3LO scopes are shown as for operations _OAuth scopes required_). See
[OAuth 2.0 (3LO)
apps](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/)
for details.
The URIs for OAuth 2.0 (3LO) app REST API calls have this structure:
`https://api.atlassian.com/ex/jira//rest/api/3/`
For example,
`https://api.atlassian.com/ex/jira/35273b54-3f06-40d2-880f-dd28cf8daafa/rest/api/3/issue/DEMO-1`
### Ad-hoc API calls
For personal scripts, bots, and ad-hoc execution of the REST APIs use
basic authentication. See [Basic auth for REST
APIs](https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/)
for details.
The URIs for basic authentication REST API calls have this structure:
`https:///rest/api/3/`
For example, `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1`
title: Authentication and authorization
- anchor: permissions
body: >
### Operation permissions
Most operations in this API require permissions. The calling user must
have the required permissions for an operation to
use it. Note that for Connect apps, the app user must have the required
permissions for the operation and the app must
have scopes that permit the operation.
A permission can be granted to a group, project role, or issue role that
the user is a member of, or granted directly to a user.
See [Permissions overview](https://confluence.atlassian.com/x/FQiiLQ)
for details. The most common permissions are:
- **Administer the Cloud site**: Users in the _site-admins_ group have
this
permission. See [Manage
groups](https://confluence.atlassian.com/x/24xjL) for details.
- **Administer Jira**: Granted by the _Jira Administrators_ global
permission. There is a default group for this permission.
See [Manage groups](https://confluence.atlassian.com/x/24xjL) and
[Managing global permissions](https://confluence.atlassian.com/x/x4dKLg)
for details.
- **Administer a project in Jira**: Granted by the _Administer projects_
project permission for a project. This can be
granted to a user, a group, a project role, and more.
See [Managing project
permissions](https://confluence.atlassian.com/x/yodKLg) for details.
- **Access a project in Jira**: Granted by the _Browse projects_ project
permission for a project. This can be
granted to a user, a group, a project role, and more.
See [Managing project
permissions](https://confluence.atlassian.com/x/yodKLg) for details.
- **Access Jira**: Granted by the _Jira Users_ global permission. Users
in the default product access group (for example,
_jira-software-users-acmesite_) have this permission.
See [Manage groups](https://confluence.atlassian.com/x/24xjL) and
[Managing global permissions](https://confluence.atlassian.com/x/x4dKLg)
for details.
### Anonymous access
Some operations provide support for anonymous access. However, anonymous
access is only available if
the Jira permission needed to access the object or records returned by
the operation is granted to
the _Public_ group. See [Allowing anonymous access to your
project](https://confluence.atlassian.com/x/GDxxLg)
for details.
If an operation is called anonymously and anonymous access is not
available, the operation will return
an error. Note that not all operations that correspond to objects that
can be given public access
provide for anonymous access.
title: Permissions
- anchor: expansion
body: >+
### Expansion
The Jira REST API uses resource expansion, which means that some parts
of a resource are not returned unless specified
in the request. This simplifies responses and minimizes network traffic.
To expand part of a resource in a request, use the expand query
parameter and specify the object(s) to be expanded.
If you need to expand nested objects, use the `.` dot notation. If you
need to expand multiple objects, use a
comma-separated list.
For example, the following request expands the `names` and
`renderedFields` properties for the _JRACLOUD-34423_ issue:
`GET issue/JRACLOUD-34423?expand=names,renderedFields`
To discover which object can be expanded, refer to the `expand` property
in the object.
In the JSON example below, the resource declares `widgets` as
expandable.
```json
{
"expand": "widgets",
"self": "https://your-domain.atlassian.net/rest/api/3/resource/KEY-1",
"widgets": {
"widgets": [],
"size": 5
}
}
```
### Pagination
The Jira REST API uses pagination to improve performance. Pagination is
enforced for operations that could return a large
collection of items. When you make a request to a paginated resource,
the response wraps the returned array of values in
a JSON object with paging metadata. For example:
```json
{
"startAt" : 0,
"maxResults" : 10,
"total": 200,
"isLast": false,
"values": [
{ /* result 0 */ },
{ /* result 1 */ },
{ /* result 2 */ }
]
}
```
* `startAt` is the index of the first item returned in the page.
* `maxResults` is the maximum number of items that a page can return.
Each operation can have a different limit for
the number of items returned, and these limits may change without notice. To find the maximum number of items
that an operation could return, set `maxResults` to a large number—for example, over 1000—and if the returned value of `maxResults` is less than the requested value, the returned value is the maximum.
* `total` is the total number of items contained in all pages. This
number **_may change_** as the client
requests the subsequent pages, therefore the client should always assume
that the requested page can be empty. Note
that this property is not returned for all operations.
* `isLast` indicates whether the page returned is the last one. Note
that this property is not returned for all operations.
### Ordering
Some operations support ordering the elements of a response by a field.
Check the documentation for the operation to
confirm whether ordering of a response is supported and which fields can
be used. Responses are listed in ascending order
by default. You can change the order using the `orderby` query parameter
with a `-` or `+` symbol. For example:
* `?orderBy=name` to order by `name` field ascending.
* `?orderBy=+name` to order by `name` field ascending.
* `?orderBy=-name` to order by `name` field descending.
title: Expansion, pagination, and ordering
- anchor: timestamps
body: >
By default, top-level timestamps (e.g. updated and created) are returned
in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format, in the system
default user time zone.
To return date time data in the logged in user's timezone, please refer
to `renderedFields` property under the `expand` query parameter in
relevant APIs.
title: Timestamps
- anchor: special-request-headers
body: >-
The following request and response headers define important metadata for
the Jira Cloud REST API resources.
- `X-Atlassian-Token` (request): Operations that accept
multipart/form-data must include the `X-Atlassian-Token: no-check`
header in requests. Otherwise the request is blocked by cross-site
request forgery (CSRF/XSRF) protection.
- `X-Force-Accept-Language` (request): controls how the standard HTTP
`Accept-Language` header is processed.
By default `Accept-Language` is ignored and the response is in the
language configured in the user's profile or,
when no language is configured for the user, the default Jira instance
language. For the response to recognize
`Accept-Language` send `X-Force-Accept-Language = true` as well. If
`Accept-Language` requests a language that Jira
can return the response is in that language, otherwise Jira returns the
response in the default language. If
`Accept-Language` is not specified the response is in the default
language.
- `X-AAccountId` (response): This response header contains the
Atlassian account ID of the authenticated user.
title: Special headers
- anchor: anonymous-operations
body: |2-
Jira provides for all permissions, except the [global permission](https://confluence.atlassian.com/x/x4dKLg) Administer Jira, to be assigned to *Anyone*. Once a permission is assigned to *Anyone*, anyone knowing a project's URL is able to use the features in Jira enabled by the permission. However, the Jira REST API does not enable anonymous access for operations by default. This means that an anonymous user who may be able to perform an action through Jira, may not be able to perform the same action where it's enabled by the REST API.
The operations that provide anonymous access are annotated "This operation can be accessed anonymously."
title: Anonymous operations
- anchor: async-operations
body: >-
Some Jira REST API operations may trigger long-running or
computationally expensive tasks. In these cases, the operation
will schedule an asynchronous task and return a `303 (See Other)`
response, indicating the location of the queued task
in the `Location` header. You can query this task to get progress
updates.
When the task finishes, the response object will contain the `result`
field. The content of the field is specific to the
operation that created the task. Refer to the operation’s documentation
for more information.
Note that asynchronous tasks are not guaranteed to be run in order. In
other words, if you need your tasks to execute
in a certain order, you should start a task only after the prerequisite
task(s) have finished.
title: Asynchronous operations
- anchor: experimental
body: >
Features and methods marked as experimental may change without notice.
Feedback on experimental functionality is welcome.
Report your suggestions and bugs in the [ACJIRA
project](https://ecosystem.atlassian.net/projects/ACJIRA) (preferred) or
use the
**Give docs feedback** link at the top of this page.
title: Experimental features
- anchor: status-codes
body: >-
The Jira Cloud platform REST API uses the [standard HTTP status
codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).
Operations that return an error status code may also return a response
body containing details of the error or errors.
The schema for the response body is shown below:
```json
{
"id": "https://docs.atlassian.com/jira/REST/schema/error-collection#",
"title": "Error Collection",
"type": "object",
"properties": {
"errorMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"errors": {
"type": "object",
"patternProperties": {
".+": {
"type": "string"
}
},
"additionalProperties": false
},
"status": {
"type": "integer"
}
},
"additionalProperties": false
}
```
title: Status codes