Server
Jira Data Center / Reference / REST API
Operations
GET/api/2/projectPOST/api/2/projectGET/api/2/project/typeGET/api/2/project/type/{projectTypeKey}GET/api/2/project/type/{projectTypeKey}/accessibleGET/api/2/project/{projectIdOrKey}PUT/api/2/project/{projectIdOrKey}DEL/api/2/project/{projectIdOrKey}PUT/api/2/project/{projectIdOrKey}/archivePUT/api/2/project/{projectIdOrKey}/avatarPOST/api/2/project/{projectIdOrKey}/avatarPOST/api/2/project/{projectIdOrKey}/avatar/temporaryDEL/api/2/project/{projectIdOrKey}/avatar/{id}GET/api/2/project/{projectIdOrKey}/avatarsGET/api/2/project/{projectIdOrKey}/componentsGET/api/2/project/{projectIdOrKey}/propertiesGET/api/2/project/{projectIdOrKey}/properties/{propertyKey}PUT/api/2/project/{projectIdOrKey}/properties/{propertyKey}DEL/api/2/project/{projectIdOrKey}/properties/{propertyKey}PUT/api/2/project/{projectIdOrKey}/restoreGET/api/2/project/{projectIdOrKey}/roleGET/api/2/project/{projectIdOrKey}/role/{id}PUT/api/2/project/{projectIdOrKey}/role/{id}POST/api/2/project/{projectIdOrKey}/role/{id}DEL/api/2/project/{projectIdOrKey}/role/{id}GET/api/2/project/{projectIdOrKey}/statusesPUT/api/2/project/{projectIdOrKey}/type/{newProjectTypeKey}GET/api/2/project/{projectIdOrKey}/versionGET/api/2/project/{projectIdOrKey}/versionsGET/api/2/project/{projectKeyOrId}/issuesecuritylevelschemeGET/api/2/project/{projectKeyOrId}/notificationschemeGET/api/2/project/{projectKeyOrId}/permissionschemePUT/api/2/project/{projectKeyOrId}/permissionschemeGET/api/2/project/{projectKeyOrId}/priorityschemePUT/api/2/project/{projectKeyOrId}/priorityschemeDEL/api/2/project/{projectKeyOrId}/priorityscheme/{schemeId}GET/api/2/project/{projectKeyOrId}/securitylevelGET/api/2/project/{projectKeyOrId}/workflowscheme
GET

Get all visible projects

Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the list of projects that are visible when using anonymous access.

Request

Query parameters

includeArchived

boolean

expand

string

recent

integer

browseArchive

boolean

Responses

Project data

application/json

ProjectBean
GET/api/2/project
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
POST

Create a new project

Creates a new project

Request

Request bodyapplication/json

Project data

assigneeType

string

avatarId

integer

categoryId

integer

description

string

issueSecurityScheme

integer

key

string

lead

string

name

string

notificationScheme

integer

permissionScheme

integer

Responses

Created project data

application/json

ProjectIdentity
POST/api/2/project
1 2 3 4 5 curl --request POST \ --url 'http://{baseurl}/rest/api/2/project' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
GET

Get all project types

Returns all the project types defined on the Jira instance, not taking into account whether the license to use those project types is valid or not. In case of anonymous checks if they can access at least one project.

Request

This request has no parameters.

Responses

Returns a list with all the project types defined on the Jira instance

application/json

ProjectTypeBean
GET/api/2/project/type
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/type' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get project type by key

Returns the project type with the given key. In case of anonymous checks if they can access at least one project.

Request

Path parameters

projectTypeKey

string

Required

Responses

Returns a representation of the project type with the given id

application/json

ProjectTypeBean
GET/api/2/project/type/{projectTypeKey}
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/type/{projectTypeKey}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get project type by key

Returns the project type with the given key, if it is accessible to the logged in user. This takes into account whether the user is licensed on the Application that defines the project type.

Request

Path parameters

projectTypeKey

string

Required

Responses

Returns a representation of the project type with the given id

application/json

ProjectTypeBean
GET/api/2/project/type/{projectTypeKey}/accessible
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/type/{projectTypeKey}/accessible' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get a project by ID or key

Returns a full representation of a project in JSON format. All project keys associated with the project will only be returned if expand=projectKeys.

Request

Path parameters

projectIdOrKey

string

Required

Query parameters

expand

string

Responses

Project data

application/json

ProjectBean
GET/api/2/project/{projectIdOrKey}
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Update a project

Updates a project. Only non null values sent in JSON will be updated in the project. Values available for the assigneeType field are: "PROJECT_LEAD" and "UNASSIGNED".

Request

Path parameters

projectIdOrKey

string

Required

Query parameters

expand

string

Request bodyapplication/json

Project update data

assigneeType

string

avatarId

integer

categoryId

integer

description

string

issueSecurityScheme

integer

key

string

lead

string

name

string

notificationScheme

integer

permissionScheme

integer

Responses

Updated project data

application/json

ProjectBean
PUT/api/2/project/{projectIdOrKey}
1 2 3 4 5 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
DEL

Delete a project

Deletes a project

Request

Path parameters

projectIdOrKey

string

Required

Responses

Returned if the project is successfully deleted

DEL/api/2/project/{projectIdOrKey}
1 2 3 curl --request DELETE \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}' \ --user 'email@example.com:<api_token>'
PUT

Archive a project

Archives a project

Request

Path parameters

projectIdOrKey

string

Required

Responses

Returned if the project is successfully archived

PUT/api/2/project/{projectIdOrKey}/archive
1 2 3 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/archive' \ --user 'email@example.com:<api_token>'
PUT

Update project avatar

Updates an avatar for a project. This is step 3/3 of changing an avatar for a project.

Request

Path parameters

projectIdOrKey

string

Required

Request bodyapplication/json

Avatar data

id

string

owner

string

selected

boolean

Responses

Returned if the avatar was updated successfully

PUT/api/2/project/{projectIdOrKey}/avatar
1 2 3 4 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/avatar' \ --user 'email@example.com:<api_token>' \ --header 'Content-Type: application/json'
POST

Create avatar from temporary

Converts the temporary avatar into the final one. This is step 2/3 of changing an avatar for a project:

  • Upload (store temporary avatar)
  • Crop (create avatar from temporary)
  • Update (update project avatar)

Request

Path parameters

projectIdOrKey

string

Required

Request bodyapplication/json

Cropping instructions

cropperOffsetX

integer

cropperOffsetY

integer

cropperWidth

integer

needsCropping

boolean

url

string

Responses

Avatar data

application/json

AvatarBean
POST/api/2/project/{projectIdOrKey}/avatar
1 2 3 4 5 curl --request POST \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/avatar' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
POST

Store temporary avatar using multipart

Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back from which the client parses the JSON.

Request

Path parameters

projectIdOrKey

string

Required

Request bodymultipart/form-data

contentType

string

formField

boolean

inputStream

object

name

string

size

integer

value

string

Responses

Temporary avatar cropping instructions embeded in HTML page. Error messages will also be embeded in the page.

text/html

AvatarCroppingBean
POST/api/2/project/{projectIdOrKey}/avatar/temporary
1 2 3 4 curl --request POST \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/avatar/temporary' \ --user 'email@example.com:<api_token>' \ --header 'Accept: text/html'
DEL

Delete an avatar

Deletes avatar

Request

Path parameters

projectIdOrKey

string

Required
id

integer

Required

Responses

Returned if the avatar is successfully deleted

DEL/api/2/project/{projectIdOrKey}/avatar/{id}
1 2 3 curl --request DELETE \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/avatar/{id}' \ --user 'email@example.com:<api_token>'
GET

Get all avatars for a project

Returns all avatars which are visible for the currently logged in user. The avatars are grouped into system and custom.

Request

Path parameters

projectIdOrKey

string

Required

Responses

Avatars

application/json

AvatarBean
GET/api/2/project/{projectIdOrKey}/avatars
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/avatars' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get project components

Contains a full representation of the specified project's components.

Request

Path parameters

projectIdOrKey

string

Required

Responses

Project components

application/json

ComponentBean
GET/api/2/project/{projectIdOrKey}/components
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/components' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get keys of all properties for projectExperimental

Returns the keys of all properties for the project identified by the key or by the id.

Request

Path parameters

projectIdOrKey

string

Required

Responses

Returned if the project was found.

application/json

EntityPropertiesKeysBean
GET/api/2/project/{projectIdOrKey}/properties
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/properties' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get value of property from projectExperimental

Returns the value of the property with a given key from the project identified by the key or by the id.

Request

Path parameters

propertyKey

string

Required
projectIdOrKey

string

Required

Responses

Returned if the project property was found.

application/json

EntityPropertyBean
GET/api/2/project/{projectIdOrKey}/properties/{propertyKey}
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Set value of specified project's propertyExperimental

Sets the value of the specified project's property. You can use this resource to store a custom data against the project identified by the key or by the id. The user who stores the data is required to have permissions to administer the project.

Request

Path parameters

propertyKey

string

Required
projectIdOrKey

string

Required

Request bodyapplication/json

The request containing value of the project's property. The value has to be a valid, non-empty JSON conforming to http://tools.ietf.org/html/rfc4627. The maximum length of the property value is 32768 bytes.

id

string

key

string

value

string

Responses

Returned if the project property is successfully updated.

PUT/api/2/project/{projectIdOrKey}/properties/{propertyKey}
1 2 3 4 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}' \ --user 'email@example.com:<api_token>' \ --header 'Content-Type: application/json'
DEL

Delete property from projectExperimental

Removes the property from the project identified by the key or by the id.

Request

Path parameters

propertyKey

string

Required
projectIdOrKey

string

Required

Responses

Returned if the project property was removed successfully.

DEL/api/2/project/{projectIdOrKey}/properties/{propertyKey}
1 2 3 curl --request DELETE \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}' \ --user 'email@example.com:<api_token>'
PUT

Restore an archived project

Restores an archived project. In case of success restored project should be re-indexed.

Request

Path parameters

projectIdOrKey

string

Required

Responses

Returned if the project is successfully restored

PUT/api/2/project/{projectIdOrKey}/restore
1 2 3 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/restore' \ --user 'email@example.com:<api_token>'
GET

Get all roles in project

Returns all roles in the given project Id or key, with links to full details on each role.

Request

Path parameters

projectIdOrKey

string

Required

Responses

List of roles and URIs to full details

GET/api/2/project/{projectIdOrKey}/role
1 2 3 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/role' \ --user 'email@example.com:<api_token>'
GET

Get details for a project role

Returns the details for a given project role in a project.

Request

Path parameters

projectIdOrKey

string

Required
id

integer

Required

Responses

Role details and its actors

application/json

ProjectRoleBean
GET/api/2/project/{projectIdOrKey}/role/{id}
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/role/{id}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Update project role with actors

Updates a project role to include the specified actors (users or groups). Can be also used to clear roles to not include any users or groups. For user actors, their usernames should be used.

Request

Path parameters

projectIdOrKey

string

Required
id

integer

Required

Request bodyapplication/json

The actors to set for the role

categorisedActors

object

id

integer

Responses

Role details and its actors after modification

application/json

ProjectRoleBean
PUT/api/2/project/{projectIdOrKey}/role/{id}
1 2 3 4 5 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/role/{id}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
POST

Add actor to project role

Adds an actor (user or group) to a project role. For user actors, their usernames should be used.

Request

Path parameters

projectIdOrKey

string

Required
id

integer

Required

Request bodyapplication/json

The actors to add to the role

empty

boolean

Additional Properties

array<string>

Responses

Role details and its actors after modification

application/json

ProjectRoleBean
POST/api/2/project/{projectIdOrKey}/role/{id}
1 2 3 4 5 curl --request POST \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/role/{id}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
DEL

Delete actors from project role

Deletes actors (users or groups) from a project role.

Request

Path parameters

projectIdOrKey

string

Required
id

integer

Required

Query parameters

user

string

group

string

Responses

No content on success

DEL/api/2/project/{projectIdOrKey}/role/{id}
1 2 3 curl --request DELETE \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/role/{id}' \ --user 'email@example.com:<api_token>'
GET

Get all issue types with statuses for a project

Get all issue types with valid status values for a project

Request

Path parameters

projectIdOrKey

string

Required

Responses

Issue types with status values

application/json

IssueTypeWithStatusJsonBean
GET/api/2/project/{projectIdOrKey}/statuses
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/statuses' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Update project type

Updates the type of a project

Request

Path parameters

projectIdOrKey

string

Required
newProjectTypeKey

string

Required

Responses

Updated project data

application/json

ProjectBean
PUT/api/2/project/{projectIdOrKey}/type/{newProjectTypeKey}
1 2 3 4 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/type/{newProjectTypeKey}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get paginated project versions

Returns all versions for the specified project. Results are paginated. Results can be ordered by the following fields: sequence, name, startDate, releaseDate.

Request

Path parameters

projectIdOrKey

string

Required

Query parameters

expand

string

maxResults

integer

orderBy

string

startAt

integer

Responses

Project versions

application/json

PageBean
GET/api/2/project/{projectIdOrKey}/version
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/version' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get project versions

Contains a full representation of a the specified project's versions.

Request

Path parameters

projectIdOrKey

string

Required

Query parameters

expand

string

Responses

Project versions

application/json

VersionBean
GET/api/2/project/{projectIdOrKey}/versions
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectIdOrKey}/versions' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get issue security scheme for project

Returns the issue security scheme for project.

Request

Path parameters

projectKeyOrId

string

Required

Responses

Issue security scheme

application/json

SecuritySchemeJsonBean
GET/api/2/project/{projectKeyOrId}/issuesecuritylevelscheme
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/issuesecuritylevelscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get notification scheme associated with the project

Gets a notification scheme associated with the project. Follow the documentation of /notificationscheme/{id} resource for all details about returned value.

Request

Path parameters

projectKeyOrId

string

Required

Query parameters

expand

string

Responses

Returns a full representation of the notification scheme with given id

application/json

NotificationSchemeBean
GET/api/2/project/{projectKeyOrId}/notificationscheme
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/notificationscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get assigned permission scheme

Gets a permission scheme assigned with a project

Request

Path parameters

projectKeyOrId

string

Required

Query parameters

expand

string

Responses

The associated permission scheme.

application/json

PermissionSchemeBean
GET/api/2/project/{projectKeyOrId}/permissionscheme
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/permissionscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Assign permission scheme to project

Assigns a permission scheme with a project

Request

Path parameters

projectKeyOrId

string

Required

Query parameters

expand

string

Request bodyapplication/json

Object that contains an id of the scheme

id

integer

Responses

Shortened details of the newly associated permission scheme.

application/json

PermissionSchemeBean
PUT/api/2/project/{projectKeyOrId}/permissionscheme
1 2 3 4 5 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/permissionscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
GET

Get assigned priority schemeExperimental

Gets a full representation of a priority scheme in JSON format used by specified project. User must be global administrator or project administrator. All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.

Request

Path parameters

projectKeyOrId

string

Required

Responses

Returned if the priority scheme exists and the user has permission to view it.

application/json

PrioritySchemeBean
GET/api/2/project/{projectKeyOrId}/priorityscheme
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/priorityscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
PUT

Assign project with priority schemeExperimental

Assigns project with priority scheme. Priority scheme assign with migration is possible from the UI. Operation will fail if migration is needed as a result of operation eg. there are issues with priorities invalid in the destination scheme. All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.

Request

Path parameters

projectKeyOrId

string

Required

Request bodyapplication/json

Object that contains an id of the scheme

id

integer

Responses

Affected priority scheme.

application/json

PrioritySchemeBean
PUT/api/2/project/{projectKeyOrId}/priorityscheme
1 2 3 4 5 curl --request PUT \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/priorityscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
DEL

Unassign project from priority schemeExperimental

Unassigns project from priority scheme. Operation will fail for defualt priority scheme, project is not found or project is not associated with provided priority scheme. All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.

Request

Path parameters

schemeId

integer

Required
projectKeyOrId

string

Required

Responses

Affected priority scheme.

application/json

PrioritySchemeBean
DEL/api/2/project/{projectKeyOrId}/priorityscheme/{schemeId}
1 2 3 4 curl --request DELETE \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/priorityscheme/{schemeId}' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get all security levels for project

Returns all security levels for the project that the current logged in user has access to. If the user does not have the Set Issue Security permission, the list will be empty.

Request

Path parameters

projectKeyOrId

string

Required

Responses

Returns a list of all security levels in a project for which the current user has access.

application/json

SecurityListLevelJsonBean
GET/api/2/project/{projectKeyOrId}/securitylevel
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/securitylevel' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'
GET

Get workflow scheme for project

Returns the workflow scheme that is associated with requested project.

Request

Path parameters

projectKeyOrId

string

Required

Responses

Returned if requested project exist and has associated workflow scheme, and the user has permission to see it.

application/json

WorkflowSchemeBean
GET/api/2/project/{projectKeyOrId}/workflowscheme
1 2 3 4 curl --request GET \ --url 'http://{baseurl}/rest/api/2/project/{projectKeyOrId}/workflowscheme' \ --user 'email@example.com:<api_token>' \ --header 'Accept: application/json'

Rate this page: