Skip to main content

Actions

The ballerinax/jira package exposes the following clients:

ClientPurpose
ClientJira Cloud REST API v3: issues, projects, search, comments, workflows, users, and more.

Client

Jira Cloud REST API v3: issues, projects, search, comments, workflows, users, and more.

Configuration

FieldTypeDefaultDescription
authhttp:CredentialsConfig|OAuth2RefreshTokenGrantConfig|http:BearerTokenConfigRequiredAuthentication configuration. Use http:CredentialsConfig for Basic Auth (email + API token), OAuth2RefreshTokenGrantConfig for OAuth 2.0, or http:BearerTokenConfig for bearer token.
httpVersionhttp:HttpVersionHTTP_2_0HTTP protocol version.
timeoutdecimal30The maximum time to wait (in seconds) for a response before closing the connection.
retryConfighttp:RetryConfig()Configurations associated with retrying.
secureSockethttp:ClientSecureSocket()SSL/TLS-related options.

Initializing the client

import ballerinax/jira;

configurable string username = ?;
configurable string password = ?;
configurable string domain = ?;

jira:ConnectionConfig config = {
auth: {
username: username,
password: password
}
};

string serviceUrl = string `https://${domain}.atlassian.net/rest`;

jira:Client jiraClient = check new (config, serviceUrl);

Operations

Issues

Create issue

Creates a new issue in a Jira project.

Parameters:

NameTypeRequiredDescription
payloadIssueUpdateDetailsYesThe issue details including project key, summary, description (ADF format), and issue type.
queriesCreateIssueQueriesNoOptional query parameters such as updateHistory.

Returns: CreatedIssue|error

Sample code:

jira:IssueUpdateDetails issuePayload = {
fields: {
"project": {"key": "PROJ"},
"summary": "Fix login page bug",
"description": {
'type: "doc",
version: 1,
content: [
{
'type: "paragraph",
content: [
{
'type: "text",
text: "Login page returns 500 error on invalid credentials"
}
]
}
]
},
"issuetype": {"name": "Bug"}
}
};
jira:CreatedIssue issue = check jiraClient->/api/'3/issue.post(issuePayload);

Sample response:

{"id": "10042", "key": "PROJ-15", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10042"}
Get issue

Retrieves the details of an issue by its ID or key.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue (e.g., "PROJ-15").
queriesGetIssueQueriesNoOptional query parameters such as fields, expand, properties.

Returns: IssueBean|error

Sample code:

jira:IssueBean issue = check jiraClient->/api/'3/issue/["PROJ-15"];

Sample response:

{"id": "10042", "key": "PROJ-15", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10042", "fields": {"summary": "Fix login page bug", "status": {"name": "To Do"}, "issuetype": {"name": "Bug"}, "priority": {"name": "High"}}}
Edit issue

Edits an existing issue. Only the fields included in the request are updated.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadIssueUpdateDetailsYesThe fields to update.
queriesEditIssueQueriesNoOptional query parameters such as notifyUsers, returnIssue.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"].put({
fields: {
"summary": "Fix login page bug (updated)",
"priority": {"name": "Highest"}
}
});

Sample response:

null
Delete issue

Deletes an issue. An issue can be deleted only if it has no sub-tasks, unless deleteSubtasks is set to true.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
queriesDeleteIssueQueriesNoOptional query parameters such as deleteSubtasks.

Returns: error?

Sample code:

check jiraClient->/api/'3/issue/["PROJ-15"].delete();
Assign issue

Assigns an issue to a user by their account ID.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadUserYesThe user to assign. Set accountId to the target user's account ID, or null to unassign.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"]/assignee.put({
accountId: "5b10ac8d82e05b22cc7d4ef5"
});

Sample response:

null
Get issue transitions

Returns the available workflow transitions for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
queriesGetTransitionsQueriesNoOptional query parameters such as transitionId, expand.

Returns: Transitions|error

Sample code:

jira:Transitions transitions = check jiraClient->/api/'3/issue/["PROJ-15"]/transitions;

Sample response:

{"transitions": [{"id": "11", "name": "In Progress", "to": {"name": "In Progress", "id": "3"}}, {"id": "21", "name": "Done", "to": {"name": "Done", "id": "10001"}}]}
Transition issue

Performs a workflow transition on an issue, moving it to a new status.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadIssueUpdateDetailsYesThe transition details including the transition.id.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"]/transitions.post({
transition: {
id: "11"
}
});

Sample response:

null
Bulk create issues

Creates multiple issues in a single request. Returns details of each created issue.

Parameters:

NameTypeRequiredDescription
payloadIssuesUpdateBeanYesThe list of issue details to create.

Returns: CreatedIssues|error

Sample code:

jira:CreatedIssues issues = check jiraClient->/api/'3/issue/bulk.post({
issueUpdates: [
{
fields: {
"project": {"key": "PROJ"},
"summary": "Task 1",
"issuetype": {"name": "Task"}
}
},
{
fields: {
"project": {"key": "PROJ"},
"summary": "Task 2",
"issuetype": {"name": "Task"}
}
}
]
});

Sample response:

{"issues": [{"id": "10043", "key": "PROJ-16", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10043"}, {"id": "10044", "key": "PROJ-17", "self": "https://your-domain.atlassian.net/rest/api/3/issue/10044"}], "errors": []}
Search for issues using JQL (GET)

Searches for issues using JQL (Jira Query Language) via query parameters.

Parameters:

NameTypeRequiredDescription
queriesSearchForIssuesUsingJqlQueriesNoQuery parameters including jql, startAt, maxResults, fields, expand.

Returns: SearchResults|error

Sample code:

jira:SearchResults results = check jiraClient->/api/'3/search(jql = "project = PROJ AND status = 'To Do' ORDER BY priority DESC", maxResults = 10);

Sample response:

{"startAt": 0, "maxResults": 10, "total": 2, "issues": [{"id": "10042", "key": "PROJ-15", "fields": {"summary": "Fix login page bug", "status": {"name": "To Do"}, "priority": {"name": "High"}}}, {"id": "10043", "key": "PROJ-16", "fields": {"summary": "Task 1", "status": {"name": "To Do"}, "priority": {"name": "Medium"}}}]}
Search for issues using JQL (POST)

Searches for issues using JQL via a request body. Preferred for complex or long JQL queries.

Parameters:

NameTypeRequiredDescription
payloadSearchRequestBeanYesThe search request including jql, startAt, maxResults, fields.

Returns: SearchResults|error

Sample code:

jira:SearchResults results = check jiraClient->/api/'3/search.post({
jql: "project = PROJ AND assignee = currentUser() ORDER BY created DESC",
maxResults: 25,
fields: ["summary", "status", "assignee", "priority"]
});

Sample response:

{"startAt": 0, "maxResults": 25, "total": 1, "issues": [{"id": "10042", "key": "PROJ-15", "fields": {"summary": "Fix login page bug", "status": {"name": "To Do"}, "assignee": {"displayName": "John Doe"}, "priority": {"name": "High"}}}]}

Comments

Get comments for an issue

Returns all comments on an issue, paginated.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
queriesGetCommentsQueriesNoOptional query parameters such as startAt, maxResults, orderBy, expand.

Returns: PageOfComments|error

Sample code:

jira:PageOfComments comments = check jiraClient->/api/'3/issue/["PROJ-15"]/comment;

Sample response:

{"startAt": 0, "maxResults": 50, "total": 1, "comments": [{"id": "10001", "author": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}, "body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Sample comment"}]}]}, "created": "2025-01-15T10:30:00.000+0000"}]}
Add comment to an issue

Adds a comment to an issue. The comment body uses Atlassian Document Format (ADF).

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadCommentYesThe comment details including body in ADF format.
queriesAddCommentQueriesNoOptional query parameters such as expand.

Returns: Comment|error

Sample code:

jira:Comment comment = check jiraClient->/api/'3/issue/["PROJ-15"]/comment.post({
body: {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "This issue has been reviewed and approved."
}
]
}
]
}
});

Sample response:

{"id": "10002", "author": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}, "body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "This issue has been reviewed and approved."}]}]}, "created": "2025-01-15T11:00:00.000+0000"}
Get comment

Returns a specific comment on an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
idstringYesThe ID of the comment.

Returns: Comment|error

Sample code:

jira:Comment comment = check jiraClient->/api/'3/issue/["PROJ-15"]/comment/["10001"];

Sample response:

{"id": "10001", "author": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}, "body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Sample comment"}]}]}, "created": "2025-01-15T10:30:00.000+0000"}
Update comment

Updates an existing comment on an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
idstringYesThe ID of the comment.
payloadCommentYesThe updated comment body.

Returns: Comment|error

Sample code:

jira:Comment updated = check jiraClient->/api/'3/issue/["PROJ-15"]/comment/["10001"].put({
body: {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{"type": "text", "text": "Updated comment text."}
]
}
]
}
});

Sample response:

{"id": "10001", "author": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}, "body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Updated comment text."}]}]}, "updated": "2025-01-15T12:00:00.000+0000"}
Delete comment

Deletes a comment from an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
idstringYesThe ID of the comment.

Returns: error?

Sample code:

check jiraClient->/api/'3/issue/["PROJ-15"]/comment/["10001"].delete();

Projects

Create project

Creates a new Jira project.

Parameters:

NameTypeRequiredDescription
payloadCreateProjectDetailsYesThe project details including key, name, project type key, and lead account ID.

Returns: ProjectIdentifiers|error

Sample code:

jira:ProjectIdentifiers project = check jiraClient->/api/'3/project.post({
'key: "NEWPROJ",
name: "New Project",
projectTypeKey: "business",
leadAccountId: "5b10ac8d82e05b22cc7d4ef5"
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/project/10001", "id": 10001, "key": "NEWPROJ"}
Get all projects

Returns all projects visible to the authenticated user.

Parameters:

NameTypeRequiredDescription
queriesGetAllProjectsQueriesNoOptional query parameters such as expand, recent, properties.

Returns: Project[]|error

Sample code:

jira:Project[] projects = check jiraClient->/api/'3/project;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/project/10001", "id": "10001", "key": "PROJ", "name": "My Project", "projectTypeKey": "software"}]
Get project

Returns the details of a project by its ID or key.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
queriesGetProjectQueriesNoOptional query parameters such as expand, properties.

Returns: Project|error

Sample code:

jira:Project project = check jiraClient->/api/'3/project/["PROJ"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/project/10001", "id": "10001", "key": "PROJ", "name": "My Project", "projectTypeKey": "software", "lead": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}}
Update project

Updates the details of a project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
payloadUpdateProjectDetailsYesThe project details to update.

Returns: Project|error

Sample code:

jira:Project updated = check jiraClient->/api/'3/project/["PROJ"].put({
name: "Updated Project Name",
description: "Updated project description"
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/project/10001", "id": "10001", "key": "PROJ", "name": "Updated Project Name"}
Delete project

Deletes a project. All issues and components associated with the project are also deleted.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
queriesDeleteProjectQueriesNoOptional query parameters such as enableUndo.

Returns: error?

Sample code:

check jiraClient->/api/'3/project/["PROJ"].delete();
Search projects

Returns a paginated list of projects matching the search criteria.

Parameters:

NameTypeRequiredDescription
queriesSearchProjectsQueriesNoQuery parameters including query, typeKey, categoryId, expand, startAt, maxResults.

Returns: PageBeanProject|error

Sample code:

jira:PageBeanProject results = check jiraClient->/api/'3/project/search(query = "Mobile");

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/project/search?query=Mobile", "maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10002", "key": "MOB", "name": "Mobile App", "projectTypeKey": "software"}]}

Users

Get current user

Returns details of the currently authenticated user.

Parameters:

NameTypeRequiredDescription
queriesGetCurrentUserQueriesNoOptional query parameters such as expand.

Returns: User|error

Sample code:

jira:User me = check jiraClient->/api/'3/myself;

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5", "accountId": "5b10ac8d82e05b22cc7d4ef5", "emailAddress": "[email protected]", "displayName": "John Doe", "active": true}
Get user

Returns details of a user by account ID, username, or key.

Parameters:

NameTypeRequiredDescription
queriesGetUserQueriesNoQuery parameters including accountId, username, key, expand.

Returns: User|error

Sample code:

jira:User user = check jiraClient->/api/'3/user(accountId = "5b10ac8d82e05b22cc7d4ef5");

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5", "accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe", "emailAddress": "[email protected]", "active": true}
Search users

Returns a list of users matching the search string.

Parameters:

NameTypeRequiredDescription
queriesFindUsersQueriesNoQuery parameters including query, startAt, maxResults.

Returns: User[]|error

Sample code:

jira:User[] users = check jiraClient->/api/'3/user/search(query = "john");

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5", "accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe", "active": true}]
Find assignable users

Returns users that can be assigned to an issue in a given project.

Parameters:

NameTypeRequiredDescription
queriesFindAssignableUsersQueriesNoQuery parameters including query, project, issueKey, maxResults.

Returns: User[]|error

Sample code:

jira:User[] assignable = check jiraClient->/api/'3/user/assignable/search(project = "PROJ");

Sample response:

[{"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe", "active": true}, {"accountId": "5b10ac8d82e05b22cc7d4ef6", "displayName": "Jane Smith", "active": true}]

Worklogs

Get issue worklogs

Returns all worklogs for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
queriesGetIssueWorklogQueriesNoOptional query parameters such as startAt, maxResults, expand.

Returns: PageOfWorklogs|error

Sample code:

jira:PageOfWorklogs worklogs = check jiraClient->/api/'3/issue/["PROJ-15"]/worklog;

Sample response:

{"startAt": 0, "maxResults": 1048576, "total": 1, "worklogs": [{"id": "100028", "author": {"displayName": "John Doe"}, "timeSpent": "3h 20m", "timeSpentSeconds": 12000, "started": "2025-01-15T09:00:00.000+0000"}]}
Add worklog

Adds a worklog entry to an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadWorklogYesThe worklog details including timeSpentSeconds or timeSpent and started.

Returns: Worklog|error

Sample code:

jira:Worklog worklog = check jiraClient->/api/'3/issue/["PROJ-15"]/worklog.post({
timeSpentSeconds: 7200,
started: "2025-01-15T09:00:00.000+0000"
});

Sample response:

{"id": "100029", "author": {"displayName": "John Doe"}, "timeSpent": "2h", "timeSpentSeconds": 7200, "started": "2025-01-15T09:00:00.000+0000"}

Watchers & votes

Get issue watchers

Returns the list of watchers for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.

Returns: Watchers|error

Sample code:

jira:Watchers watchers = check jiraClient->/api/'3/issue/["PROJ-15"]/watchers;

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/issue/PROJ-15/watchers", "watchCount": 2, "isWatching": true, "watchers": [{"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}]}
Add watcher

Adds a user as a watcher of an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadstringYesThe account ID of the user to add as a watcher (as a quoted string).

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"]/watchers.post("\"5b10ac8d82e05b22cc7d4ef5\"");

Sample response:

null
Get issue votes

Returns the votes for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.

Returns: Votes|error

Sample code:

jira:Votes votes = check jiraClient->/api/'3/issue/["PROJ-15"]/votes;

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/issue/PROJ-15/votes", "votes": 3, "hasVoted": false, "voters": [{"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}]}
Create issue link

Creates a link between two issues.

Parameters:

NameTypeRequiredDescription
payloadLinkIssueRequestJsonBeanYesThe link details including link type, inward issue, and outward issue.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issueLink.post({
'type: {name: "Blocks"},
inwardIssue: {'key: "PROJ-16"},
outwardIssue: {'key: "PROJ-15"}
});

Sample response:

null
Get issue link

Returns an issue link by its ID.

Parameters:

NameTypeRequiredDescription
linkIdstringYesThe ID of the issue link.

Returns: IssueLink|error

Sample code:

jira:IssueLink link = check jiraClient->/api/'3/issueLink/["10001"];

Sample response:

{"id": "10001", "type": {"id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks"}, "inwardIssue": {"id": "10043", "key": "PROJ-16"}, "outwardIssue": {"id": "10042", "key": "PROJ-15"}}
Delete issue link

Deletes an issue link.

Parameters:

NameTypeRequiredDescription
linkIdstringYesThe ID of the issue link.

Returns: error?

Sample code:

check jiraClient->/api/'3/issueLink/["10001"].delete();

Issue types

Get all issue types

Returns all issue types available in the Jira instance.

Returns: IssueTypeDetails[]|error

Sample code:

jira:IssueTypeDetails[] issueTypes = check jiraClient->/api/'3/issuetype;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/issuetype/10001", "id": "10001", "name": "Bug", "subtask": false, "description": "A problem or error."}, {"self": "https://your-domain.atlassian.net/rest/api/3/issuetype/10002", "id": "10002", "name": "Task", "subtask": false, "description": "A task that needs to be done."}]
Get issue types for project

Returns the issue types available for a specific project.

Parameters:

NameTypeRequiredDescription
queriesGetIssueTypesForProjectQueriesYesQuery parameters including projectId.

Returns: IssueTypeDetails[]|error

Sample code:

jira:IssueTypeDetails[] types = check jiraClient->/api/'3/issuetype/project(projectId = 10001);

Sample response:

[{"id": "10001", "name": "Bug", "subtask": false}, {"id": "10002", "name": "Task", "subtask": false}, {"id": "10003", "name": "Story", "subtask": false}]

Versions

Create version

Creates a project version.

Parameters:

NameTypeRequiredDescription
payloadVersionYesThe version details including name, project ID, and optional release/start dates.

Returns: Version|error

Sample code:

jira:Version version = check jiraClient->/api/'3/version.post({
name: "v1.0.0",
projectId: 10001,
releaseDate: "2025-03-01",
released: false
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/version/10000", "id": "10000", "name": "v1.0.0", "projectId": 10001, "released": false, "releaseDate": "2025-03-01"}
Get version

Returns a project version by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the version.

Returns: Version|error

Sample code:

jira:Version version = check jiraClient->/api/'3/version/["10000"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/version/10000", "id": "10000", "name": "v1.0.0", "projectId": 10001, "released": false, "releaseDate": "2025-03-01"}
Update version

Updates a project version.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the version.
payloadVersionYesThe updated version details.

Returns: Version|error

Sample code:

jira:Version updated = check jiraClient->/api/'3/version/["10000"].put({
released: true,
releaseDate: "2025-02-28"
});

Sample response:

{"id": "10000", "name": "v1.0.0", "projectId": 10001, "released": true, "releaseDate": "2025-02-28"}
Delete version

Deletes a project version.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the version.

Returns: error?

Sample code:

check jiraClient->/api/'3/version/["10000"].delete();
Get version related issue counts

Returns the number of issues in each status category for a version.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the version.

Returns: VersionIssueCounts|error

Sample code:

jira:VersionIssueCounts counts = check jiraClient->/api/'3/version/["10000"]/relatedIssueCounts;

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/version/10000/relatedIssueCounts", "issuesFixedCount": 5, "issuesAffectedCount": 12, "issueCountWithCustomFieldsShowingVersion": 3}

Components

Create component

Creates a new project component.

Parameters:

NameTypeRequiredDescription
payloadProjectComponentYesThe component details including name and project reference.

Returns: ProjectComponent|error

Sample code:

jira:ProjectComponent component = check jiraClient->/api/'3/component.post({
name: "Backend",
project: "PROJ",
leadAccountId: "5b10ac8d82e05b22cc7d4ef5"
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/component/10000", "id": "10000", "name": "Backend", "project": "PROJ", "lead": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}}
Get component

Returns a project component by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the component.

Returns: ProjectComponent|error

Sample code:

jira:ProjectComponent component = check jiraClient->/api/'3/component/["10000"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/component/10000", "id": "10000", "name": "Backend", "project": "PROJ"}
Update component

Updates a project component.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the component.
payloadProjectComponentYesThe updated component details.

Returns: ProjectComponent|error

Sample code:

jira:ProjectComponent updated = check jiraClient->/api/'3/component/["10000"].put({
name: "Backend Services",
description: "All backend microservices"
});

Sample response:

{"id": "10000", "name": "Backend Services", "description": "All backend microservices", "project": "PROJ"}
Delete component

Deletes a project component.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the component.

Returns: error?

Sample code:

check jiraClient->/api/'3/component/["10000"].delete();

Priorities & statuses

Get all priorities

Returns all issue priorities.

Returns: Priority[]|error

Sample code:

jira:Priority[] priorities = check jiraClient->/api/'3/priority;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/priority/1", "id": "1", "name": "Highest", "iconUrl": "https://your-domain.atlassian.net/images/icons/priorities/highest.svg"}, {"self": "https://your-domain.atlassian.net/rest/api/3/priority/2", "id": "2", "name": "High"}, {"self": "https://your-domain.atlassian.net/rest/api/3/priority/3", "id": "3", "name": "Medium"}]
Get all statuses

Returns all statuses associated with workflows.

Returns: StatusDetails[]|error

Sample code:

jira:StatusDetails[] statuses = check jiraClient->/api/'3/status;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/status/1", "id": "1", "name": "Open", "statusCategory": {"id": 2, "key": "new", "name": "To Do"}}, {"self": "https://your-domain.atlassian.net/rest/api/3/status/3", "id": "3", "name": "In Progress", "statusCategory": {"id": 4, "key": "indeterminate", "name": "In Progress"}}]
Get all labels

Returns a paginated list of all labels.

Parameters:

NameTypeRequiredDescription
queriesGetAllLabelsQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanString|error

Sample code:

jira:PageBeanString labels = check jiraClient->/api/'3/label;

Sample response:

{"maxResults": 1000, "startAt": 0, "total": 3, "isLast": true, "values": ["backend", "frontend", "urgent"]}

Groups

Get group

Returns a group with its name and members.

Parameters:

NameTypeRequiredDescription
queriesGetGroupQueriesYesQuery parameters including groupname or groupId, and optional expand.

Returns: Group|error

Sample code:

jira:Group group = check jiraClient->/api/'3/group(groupname = "jira-software-users");

Sample response:

{"name": "jira-software-users", "self": "https://your-domain.atlassian.net/rest/api/3/group?groupname=jira-software-users", "users": {"size": 25, "items": [], "max-results": 50, "start-index": 0, "end-index": 0}}
Create group

Creates a new group.

Parameters:

NameTypeRequiredDescription
payloadAddGroupBeanYesThe group name.

Returns: Group|error

Sample code:

jira:Group group = check jiraClient->/api/'3/group.post({name: "new-team-group"});

Sample response:

{"name": "new-team-group", "self": "https://your-domain.atlassian.net/rest/api/3/group?groupname=new-team-group"}
Get group members

Returns the members of a group.

Parameters:

NameTypeRequiredDescription
queriesGetUsersFromGroupQueriesYesQuery parameters including groupname or groupId, startAt, maxResults.

Returns: PageBeanUserDetails|error

Sample code:

jira:PageBeanUserDetails members = check jiraClient->/api/'3/group/member(groupname = "jira-software-users");

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/group/member?groupname=jira-software-users", "maxResults": 50, "startAt": 0, "total": 2, "isLast": true, "values": [{"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5", "accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe", "active": true}]}

Dashboards

Search dashboards

Returns a paginated list of dashboards matching the search criteria.

Parameters:

NameTypeRequiredDescription
queriesGetDashboardsPaginatedQueriesNoQuery parameters including dashboardName, startAt, maxResults, expand.

Returns: PageBeanDashboard|error

Sample code:

jira:PageBeanDashboard dashboards = check jiraClient->/api/'3/dashboard/search(dashboardName = "Sprint");

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10001", "name": "Sprint Dashboard", "self": "https://your-domain.atlassian.net/rest/api/3/dashboard/10001", "owner": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}}]}
Create dashboard

Creates a new dashboard.

Parameters:

NameTypeRequiredDescription
payloadDashboardDetailsYesThe dashboard details including name and share permissions.

Returns: Dashboard|error

Sample code:

jira:Dashboard dashboard = check jiraClient->/api/'3/dashboard.post({
name: "Team Dashboard",
sharePermissions: [
{"type": "authenticated"}
]
});

Sample response:

{"id": "10002", "name": "Team Dashboard", "self": "https://your-domain.atlassian.net/rest/api/3/dashboard/10002", "owner": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}}
Get dashboard

Returns a dashboard by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the dashboard.

Returns: Dashboard|error

Sample code:

jira:Dashboard dashboard = check jiraClient->/api/'3/dashboard/["10001"];

Sample response:

{"id": "10001", "name": "Sprint Dashboard", "self": "https://your-domain.atlassian.net/rest/api/3/dashboard/10001", "owner": {"accountId": "5b10ac8d82e05b22cc7d4ef5", "displayName": "John Doe"}}
Delete dashboard

Deletes a dashboard.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the dashboard.

Returns: error?

Sample code:

check jiraClient->/api/'3/dashboard/["10001"].delete();

Attachments

Add attachment to issue

Adds one or more attachments to an issue via multipart file upload.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadMultipartFile[]YesArray of files to attach.

Returns: Attachment[]|error

Sample code:

jira:Attachment[] attachments = check jiraClient->/api/'3/issue/["PROJ-15"]/attachments.post([
{fileName: "report.pdf", fileContent: fileBytes}
]);

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/attachment/10000", "id": "10000", "filename": "report.pdf", "size": 24576, "mimeType": "application/pdf"}]
Get attachment metadata

Returns metadata for an attachment.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the attachment.

Returns: AttachmentMetadata|error

Sample code:

jira:AttachmentMetadata meta = check jiraClient->/api/'3/attachment/["10000"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/attachment/10000", "id": "10000", "filename": "report.pdf", "size": 24576, "mimeType": "application/pdf", "created": "2025-01-15T10:30:00.000+0000"}
Delete attachment

Deletes an attachment from an issue.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the attachment.

Returns: error?

Sample code:

check jiraClient->/api/'3/attachment/["10000"].delete();

Filters

Create filter

Creates a new filter (saved JQL query).

Parameters:

NameTypeRequiredDescription
payloadFilterYesThe filter details including name and JQL.

Returns: Filter|error

Sample code:

jira:Filter filter = check jiraClient->/api/'3/filter.post({
name: "My Open Bugs",
jql: "project = PROJ AND issuetype = Bug AND status != Done",
favourite: true
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/filter/10001", "id": "10001", "name": "My Open Bugs", "jql": "project = PROJ AND issuetype = Bug AND status != Done", "favourite": true}
Search filters

Returns a paginated list of filters matching the search criteria.

Parameters:

NameTypeRequiredDescription
queriesGetFiltersPaginatedQueriesNoQuery parameters including filterName, expand, startAt, maxResults.

Returns: PageBeanFilterDetails|error

Sample code:

jira:PageBeanFilterDetails filters = check jiraClient->/api/'3/filter/search(filterName = "Bug");

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10001", "name": "My Open Bugs", "jql": "project = PROJ AND issuetype = Bug AND status != Done"}]}

Workflows

Search workflows

Returns a paginated list of workflows.

Parameters:

NameTypeRequiredDescription
queriesGetWorkflowsPaginatedQueriesNoQuery parameters including workflowName, expand, startAt, maxResults.

Returns: PageBeanWorkflow|error

Sample code:

jira:PageBeanWorkflow workflows = check jiraClient->/api/'3/workflow/search;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "isLast": true, "values": [{"id": {"name": "jira"}, "description": "The default Jira workflow.", "transitions": [{"id": "1", "name": "Create", "to": {"id": "1", "name": "Open"}}]}]}

Server info

Get server info

Returns information about the Jira instance.

Returns: ServerInformation|error

Sample code:

jira:ServerInformation info = check jiraClient->/api/'3/serverInfo;

Sample response:

{"baseUrl": "https://your-domain.atlassian.net", "version": "1001.0.0-SNAPSHOT", "versionNumbers": [1001, 0, 0], "deploymentType": "Cloud", "scmInfo": "unknown", "serverTitle": "Jira"}

Bulk operations

Bulk delete issues

Submits a bulk delete operation for multiple issues.

Parameters:

NameTypeRequiredDescription
payloadIssueBulkDeletePayloadYesThe list of issue IDs or keys to delete.

Returns: SubmittedBulkOperation|error

Sample code:

jira:SubmittedBulkOperation op = check jiraClient->/api/'3/bulk/issues/delete.post({
selectedIssueIdsOrKeys: ["PROJ-15", "PROJ-16", "PROJ-17"],
sendBulkNotification: false
});

Sample response:

{"taskId": "10001"}
Bulk transition issues

Submits a bulk transition operation to move multiple issues to a new status.

Parameters:

NameTypeRequiredDescription
payloadIssueBulkTransitionPayloadYesThe transition details for the issues.

Returns: SubmittedBulkOperation|error

Sample code:

jira:SubmittedBulkOperation op = check jiraClient->/api/'3/bulk/issues/transition.post({
issues: [
{issueIdOrKey: "PROJ-15", transitionId: "11"},
{issueIdOrKey: "PROJ-16", transitionId: "11"}
],
sendBulkNotification: true
});

Sample response:

{"taskId": "10002"}
Get bulk operation progress

Returns the progress of a bulk operation.

Parameters:

NameTypeRequiredDescription
taskIdstringYesThe ID of the bulk operation task.

Returns: BulkOperationProgress|error

Sample code:

jira:BulkOperationProgress progress = check jiraClient->/api/'3/bulk/queue/["10001"];

Sample response:

{"taskId": "10001", "status": "COMPLETE", "progressPercent": 100, "submittedBy": {"accountId": "5b10ac8d82e05b22cc7d4ef5"}, "created": 1705312200000, "started": 1705312201000, "finished": 1705312205000}
Get remote issue links

Returns the remote issue links for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.

Returns: RemoteIssueLink|error

Sample code:

jira:RemoteIssueLink links = check jiraClient->/api/'3/issue/["PROJ-15"]/remotelink;

Sample response:

{"id": 10000, "self": "https://your-domain.atlassian.net/rest/api/3/issue/PROJ-15/remotelink/10000", "object": {"url": "https://github.com/org/repo/pull/42", "title": "PR #42: Fix login bug"}}
Create remote issue link

Creates a remote issue link that associates an issue with an external resource.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadRemoteIssueLinkRequestYesThe remote link details including the external object URL and title.

Returns: RemoteIssueLinkIdentifies|error

Sample code:

jira:RemoteIssueLinkIdentifies link = check jiraClient->/api/'3/issue/["PROJ-15"]/remotelink.post({
'object: {
url: "https://github.com/org/repo/pull/42",
title: "PR #42: Fix login bug"
}
});

Sample response:

{"id": 10001, "self": "https://your-domain.atlassian.net/rest/api/3/issue/PROJ-15/remotelink/10001"}

Permissions

Get all permissions

Returns all permissions available in Jira, including custom permissions.

Returns: Permissions|error

Sample code:

jira:Permissions permissions = check jiraClient->/api/'3/permissions;

Sample response:

{"permissions": {"BROWSE_PROJECTS": {"key": "BROWSE_PROJECTS", "name": "Browse Projects", "type": "PROJECT", "description": "Ability to browse projects."}, "CREATE_ISSUES": {"key": "CREATE_ISSUES", "name": "Create Issues", "type": "PROJECT", "description": "Ability to create issues."}}}
Check permissions

Returns whether the user has the specified permissions for the given resources.

Parameters:

NameTypeRequiredDescription
payloadBulkPermissionsRequestBeanYesThe permission check request including permissions and resource context.

Returns: BulkPermissionGrants|error

Sample code:

jira:BulkPermissionGrants grants = check jiraClient->/api/'3/permissions/check.post({
projectPermissions: [
{
permissions: ["BROWSE_PROJECTS", "CREATE_ISSUES"],
projects: [10001]
}
]
});

Sample response:

{"projectPermissions": [{"permission": "BROWSE_PROJECTS", "projects": [10001]}, {"permission": "CREATE_ISSUES", "projects": [10001]}]}
Get my permissions

Returns the permissions the current user has for the given project, issue, or globally.

Parameters:

NameTypeRequiredDescription
queriesGetMyPermissionsQueriesNoQuery parameters including permissions, projectKey, issueKey.

Returns: Permissions|error

Sample code:

jira:Permissions myPerms = check jiraClient->/api/'3/mypermissions(permissions = "BROWSE_PROJECTS,CREATE_ISSUES", projectKey = "PROJ");

Sample response:

{"permissions": {"BROWSE_PROJECTS": {"key": "BROWSE_PROJECTS", "name": "Browse Projects", "havePermission": true}, "CREATE_ISSUES": {"key": "CREATE_ISSUES", "name": "Create Issues", "havePermission": true}}}

Permission schemes

Get all permission schemes

Returns all permission schemes.

Parameters:

NameTypeRequiredDescription
queriesGetAllPermissionSchemesQueriesNoOptional query parameters such as expand.

Returns: PermissionSchemes|error

Sample code:

jira:PermissionSchemes schemes = check jiraClient->/api/'3/permissionscheme;

Sample response:

{"permissionSchemes": [{"id": 10000, "self": "https://your-domain.atlassian.net/rest/api/3/permissionscheme/10000", "name": "Default Permission Scheme", "description": "Default scheme"}]}
Create permission scheme

Creates a new permission scheme.

Parameters:

NameTypeRequiredDescription
payloadPermissionSchemeYesThe permission scheme details including name and permissions.

Returns: PermissionScheme|error

Sample code:

jira:PermissionScheme scheme = check jiraClient->/api/'3/permissionscheme.post({
name: "Custom Permission Scheme",
description: "Permissions for the engineering team"
});

Sample response:

{"id": 10001, "self": "https://your-domain.atlassian.net/rest/api/3/permissionscheme/10001", "name": "Custom Permission Scheme", "description": "Permissions for the engineering team"}
Get permission scheme

Returns a permission scheme by its ID.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.

Returns: PermissionScheme|error

Sample code:

jira:PermissionScheme scheme = check jiraClient->/api/'3/permissionscheme/[10000];

Sample response:

{"id": 10000, "name": "Default Permission Scheme", "description": "Default scheme", "permissions": [{"id": 10001, "holder": {"type": "group", "parameter": "jira-software-users"}, "permission": "BROWSE_PROJECTS"}]}
Update permission scheme

Updates a permission scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.
payloadPermissionSchemeYesThe updated permission scheme details.

Returns: PermissionScheme|error

Sample code:

jira:PermissionScheme updated = check jiraClient->/api/'3/permissionscheme/[10000].put({
name: "Updated Permission Scheme",
description: "Updated description"
});

Sample response:

{"id": 10000, "name": "Updated Permission Scheme", "description": "Updated description"}
Delete permission scheme

Deletes a permission scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.

Returns: error?

Sample code:

check jiraClient->/api/'3/permissionscheme/[10001].delete();
Get permission scheme grants

Returns all permission grants for a permission scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.

Returns: PermissionGrants|error

Sample code:

jira:PermissionGrants grants = check jiraClient->/api/'3/permissionscheme/[10000]/permission;

Sample response:

{"permissions": [{"id": 10001, "holder": {"type": "group", "parameter": "jira-software-users"}, "permission": "BROWSE_PROJECTS"}], "expand": "permissions"}
Create permission grant

Creates a new permission grant in a permission scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.
payloadPermissionGrantYesThe permission grant details.

Returns: PermissionGrant|error

Sample code:

jira:PermissionGrant grant = check jiraClient->/api/'3/permissionscheme/[10000]/permission.post({
holder: {
'type: "group",
'parameter: "jira-software-users"
},
permission: "CREATE_ISSUES"
});

Sample response:

{"id": 10002, "holder": {"type": "group", "parameter": "jira-software-users"}, "permission": "CREATE_ISSUES"}
Delete permission grant

Deletes a permission grant from a permission scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the permission scheme.
permissionIdintYesThe ID of the permission grant.

Returns: error?

Sample code:

check jiraClient->/api/'3/permissionscheme/[10000]/permission/[10002].delete();

Notification schemes

Get notification schemes

Returns a paginated list of notification schemes.

Parameters:

NameTypeRequiredDescription
queriesGetNotificationSchemesQueriesNoOptional query parameters such as startAt, maxResults, id, expand.

Returns: PageBeanNotificationScheme|error

Sample code:

jira:PageBeanNotificationScheme schemes = check jiraClient->/api/'3/notificationscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "self": "https://your-domain.atlassian.net/rest/api/3/notificationscheme/10000", "name": "Default Notification Scheme"}]}
Create notification scheme

Creates a new notification scheme.

Parameters:

NameTypeRequiredDescription
payloadCreateNotificationSchemeDetailsYesThe notification scheme details.

Returns: NotificationSchemeId|error

Sample code:

jira:NotificationSchemeId scheme = check jiraClient->/api/'3/notificationscheme.post({
name: "Custom Notification Scheme",
description: "Notifications for the team"
});

Sample response:

{"id": "10001"}
Get notification scheme

Returns a notification scheme by its ID.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the notification scheme.

Returns: NotificationScheme|error

Sample code:

jira:NotificationScheme scheme = check jiraClient->/api/'3/notificationscheme/[10000];

Sample response:

{"id": 10000, "self": "https://your-domain.atlassian.net/rest/api/3/notificationscheme/10000", "name": "Default Notification Scheme", "description": "Default notification settings"}
Update notification scheme

Updates a notification scheme.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the notification scheme.
payloadUpdateNotificationSchemeDetailsYesThe updated notification scheme details.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/notificationscheme/["10000"].put({
name: "Updated Notification Scheme",
description: "Updated description"
});

Sample response:

null
Delete notification scheme

Deletes a notification scheme.

Parameters:

NameTypeRequiredDescription
notificationSchemeIdstringYesThe ID of the notification scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/notificationscheme/["10001"].delete();

Sample response:

null

Announcement banner

Get announcement banner configuration

Returns the current announcement banner configuration.

Returns: AnnouncementBannerConfiguration|error

Sample code:

jira:AnnouncementBannerConfiguration banner = check jiraClient->/api/'3/announcementBanner;

Sample response:

{"message": "System maintenance scheduled for tonight.", "isDismissible": true, "isEnabled": true, "hashId": "abc123", "visibility": "public"}
Update announcement banner configuration

Updates the announcement banner configuration.

Parameters:

NameTypeRequiredDescription
payloadAnnouncementBannerConfigurationUpdateYesThe updated banner configuration.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/announcementBanner.put({
message: "Jira will be unavailable on Saturday 9-11 AM UTC.",
isDismissible: true,
isEnabled: true,
visibility: "public"
});

Sample response:

null

Application properties & roles

Get application property

Returns an application property or list of application properties.

Parameters:

NameTypeRequiredDescription
queriesGetApplicationPropertyQueriesNoOptional query parameters such as key, permissionLevel, keyFilter.

Returns: ApplicationProperty[]|error

Sample code:

jira:ApplicationProperty[] props = check jiraClient->/api/'3/application\-properties;

Sample response:

[{"id": "jira.title", "key": "jira.title", "value": "My Jira Instance", "name": "Title", "desc": "The title of this Jira instance."}]
Get advanced settings

Returns the application properties that are accessible on the Advanced Settings page.

Returns: ApplicationProperty[]|error

Sample code:

jira:ApplicationProperty[] settings = check jiraClient->/api/'3/application\-properties/advanced\-settings;

Sample response:

[{"id": "jira.attachment.size", "key": "jira.attachment.size", "value": "52428800", "name": "Maximum attachment size", "desc": "Maximum size (in bytes) for attachments."}]
Get all application roles

Returns all application roles.

Returns: ApplicationRole[]|error

Sample code:

jira:ApplicationRole[] roles = check jiraClient->/api/'3/applicationrole;

Sample response:

[{"key": "jira-software", "name": "Jira Software", "groups": ["jira-software-users"], "defaultGroups": ["jira-software-users"]}]
Get application role

Returns an application role by its key.

Parameters:

NameTypeRequiredDescription
keystringYesThe key of the application role.

Returns: ApplicationRole|error

Sample code:

jira:ApplicationRole role = check jiraClient->/api/'3/applicationrole/["jira-software"];

Sample response:

{"key": "jira-software", "name": "Jira Software", "groups": ["jira-software-users"], "defaultGroups": ["jira-software-users"]}

Audit records

Get audit records

Returns a list of audit records matching the filter criteria.

Parameters:

NameTypeRequiredDescription
queriesGetAuditRecordsQueriesNoQuery parameters including offset, limit, filter, from, to.

Returns: AuditRecords|error

Sample code:

jira:AuditRecords records = check jiraClient->/api/'3/auditing/'record;

Sample response:

{"offset": 0, "limit": 1000, "total": 1, "records": [{"id": 1, "summary": "User logged in", "created": "2025-01-15T10:30:00.000+0000", "category": "user management"}]}

Configuration

Get global settings

Returns the global Jira configuration settings.

Returns: Configuration|error

Sample code:

jira:Configuration config = check jiraClient->/api/'3/configuration;

Sample response:

{"votingEnabled": true, "watchingEnabled": true, "unassignedIssuesAllowed": true, "subTasksEnabled": true, "issueLinkingEnabled": true, "timeTrackingEnabled": true, "attachmentsEnabled": true, "timeTrackingConfiguration": {"workingHoursPerDay": 8.0, "workingDaysPerWeek": 5.0}}
Get time tracking provider

Returns the currently selected time tracking provider.

Returns: TimeTrackingProvider|json|error

Sample code:

jira:TimeTrackingProvider|json provider = check jiraClient->/api/'3/configuration/timetracking;

Sample response:

{"key": "JIRA", "name": "JIRA provided time tracking"}
Get time tracking settings

Returns the time tracking settings (hours per day, days per week, format).

Returns: TimeTrackingConfiguration|error

Sample code:

jira:TimeTrackingConfiguration ttConfig = check jiraClient->/api/'3/configuration/timetracking/options;

Sample response:

{"workingHoursPerDay": 8.0, "workingDaysPerWeek": 5.0, "timeFormat": "pretty", "defaultUnit": "minute"}

Fields

Get all fields

Returns all system and custom fields.

Returns: FieldDetails[]|error

Sample code:

jira:FieldDetails[] fields = check jiraClient->/api/'3/'field;

Sample response:

[{"id": "summary", "name": "Summary", "custom": false, "orderable": true, "navigable": true, "searchable": true, "schema": {"type": "string", "system": "summary"}}, {"id": "customfield_10001", "name": "Story Points", "custom": true}]
Create custom field

Creates a custom field.

Parameters:

NameTypeRequiredDescription
payloadCustomFieldDefinitionJsonBeanYesThe custom field definition including name, type, and search key.

Returns: FieldDetails|error

Sample code:

jira:FieldDetails field = check jiraClient->/api/'3/'field.post({
name: "Story Points",
'type: "com.atlassian.jira.plugin.system.customfieldtypes:float",
searcherKey: "com.atlassian.jira.plugin.system.customfieldtypes:exactnumber"
});

Sample response:

{"id": "customfield_10100", "name": "Story Points", "custom": true, "schema": {"type": "number", "custom": "com.atlassian.jira.plugin.system.customfieldtypes:float", "customId": 10100}}
Search fields

Returns a paginated list of fields matching the search criteria.

Parameters:

NameTypeRequiredDescription
queriesGetFieldsPaginatedQueriesNoQuery parameters including startAt, maxResults, type, id, query, expand.

Returns: PageBeanField|error

Sample code:

jira:PageBeanField fields = check jiraClient->/api/'3/'field/search(query = "Story");

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "customfield_10100", "name": "Story Points", "schema": {"type": "number"}, "description": "Estimated story points"}]}
Update custom field

Updates a custom field's name and description.

Parameters:

NameTypeRequiredDescription
fieldIdstringYesThe ID of the custom field.
payloadUpdateCustomFieldDetailsYesThe updated field details.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/'field/["customfield_10100"].put({
name: "Story Points (SP)",
description: "Estimated effort in story points"
});

Sample response:

null
Delete custom field

Deletes a custom field. The custom field is moved to the trash.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the custom field.

Returns: http:Response|error

Sample code:

http:Response resp = check jiraClient->/api/'3/'field/["customfield_10100"].delete();
Get field contexts

Returns the contexts for a custom field.

Parameters:

NameTypeRequiredDescription
fieldIdstringYesThe ID of the custom field.
queriesGetContextsForFieldQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanCustomFieldContext|error

Sample code:

jira:PageBeanCustomFieldContext contexts = check jiraClient->/api/'3/'field/["customfield_10100"]/context;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10001", "name": "Default Context", "isGlobalContext": true, "isAnyIssueType": true}]}
Get context options

Returns the options for a custom field context (e.g., select list options).

Parameters:

NameTypeRequiredDescription
fieldIdstringYesThe ID of the custom field.
contextIdintYesThe ID of the context.

Returns: PageBeanCustomFieldContextOption|error

Sample code:

jira:PageBeanCustomFieldContextOption options = check jiraClient->/api/'3/'field/["customfield_10200"]/context/[10001]/option;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 2, "values": [{"id": "10001", "value": "Option A", "disabled": false}, {"id": "10002", "value": "Option B", "disabled": false}]}

Field configurations

Get all field configurations

Returns a paginated list of field configurations.

Parameters:

NameTypeRequiredDescription
queriesGetAllFieldConfigurationsQueriesNoOptional query parameters such as startAt, maxResults, id, isDefault.

Returns: PageBeanFieldConfigurationDetails|error

Sample code:

jira:PageBeanFieldConfigurationDetails configs = check jiraClient->/api/'3/fieldconfiguration;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "name": "Default Field Configuration", "isDefault": true}]}
Create field configuration

Creates a new field configuration.

Parameters:

NameTypeRequiredDescription
payloadFieldConfigurationDetailsYesThe field configuration details.

Returns: FieldConfiguration|error

Sample code:

jira:FieldConfiguration config = check jiraClient->/api/'3/fieldconfiguration.post({
name: "Bug Field Configuration",
description: "Fields for bug tracking"
});

Sample response:

{"id": 10001, "name": "Bug Field Configuration", "description": "Fields for bug tracking"}
Get field configuration items

Returns the fields for a field configuration.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the field configuration.

Returns: PageBeanFieldConfigurationItem|error

Sample code:

jira:PageBeanFieldConfigurationItem items = check jiraClient->/api/'3/fieldconfiguration/[10000]/fields;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 2, "values": [{"id": "summary", "isHidden": false, "isRequired": true}, {"id": "description", "isHidden": false, "isRequired": false}]}
Delete field configuration

Deletes a field configuration.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the field configuration.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/fieldconfiguration/[10001].delete();

Sample response:

null

Field configuration schemes

Get all field configuration schemes

Returns a paginated list of field configuration schemes.

Parameters:

NameTypeRequiredDescription
queriesGetAllFieldConfigurationSchemesQueriesNoOptional query parameters such as startAt, maxResults, id.

Returns: PageBeanFieldConfigurationScheme|error

Sample code:

jira:PageBeanFieldConfigurationScheme schemes = check jiraClient->/api/'3/fieldconfigurationscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10000", "name": "Default Field Configuration Scheme"}]}
Create field configuration scheme

Creates a field configuration scheme.

Parameters:

NameTypeRequiredDescription
payloadUpdateFieldConfigurationSchemeDetailsYesThe scheme details.

Returns: FieldConfigurationScheme|error

Sample code:

jira:FieldConfigurationScheme scheme = check jiraClient->/api/'3/fieldconfigurationscheme.post({
name: "Custom Field Config Scheme",
description: "Scheme for specific projects"
});

Sample response:

{"id": "10001", "name": "Custom Field Config Scheme", "description": "Scheme for specific projects"}
Delete field configuration scheme

Deletes a field configuration scheme.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the field configuration scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/fieldconfigurationscheme/[10001].delete();

Sample response:

null

Issue type schemes

Get all issue type schemes

Returns a paginated list of issue type schemes.

Parameters:

NameTypeRequiredDescription
queriesGetAllIssueTypeSchemesQueriesNoOptional query parameters such as startAt, maxResults, id, orderBy.

Returns: PageBeanIssueTypeScheme|error

Sample code:

jira:PageBeanIssueTypeScheme schemes = check jiraClient->/api/'3/issuetypescheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10000", "name": "Default Issue Type Scheme", "defaultIssueTypeId": "10001"}]}
Create issue type scheme

Creates an issue type scheme.

Parameters:

NameTypeRequiredDescription
payloadIssueTypeSchemeDetailsYesThe issue type scheme details including name and issue type IDs.

Returns: IssueTypeSchemeID|error

Sample code:

jira:IssueTypeSchemeID scheme = check jiraClient->/api/'3/issuetypescheme.post({
name: "Software Issue Type Scheme",
issueTypeIds: ["10001", "10002", "10003"]
});

Sample response:

{"issueTypeSchemeId": "10001"}
Update issue type scheme

Updates an issue type scheme.

Parameters:

NameTypeRequiredDescription
issueTypeSchemeIdintYesThe ID of the issue type scheme.
payloadIssueTypeSchemeUpdateDetailsYesThe updated scheme details.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issuetypescheme/[10001].put({
name: "Updated Software Issue Type Scheme",
description: "Updated description"
});

Sample response:

null
Delete issue type scheme

Deletes an issue type scheme.

Parameters:

NameTypeRequiredDescription
issueTypeSchemeIdintYesThe ID of the issue type scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issuetypescheme/[10001].delete();

Sample response:

null

Issue type screen schemes

Get all issue type screen schemes

Returns a paginated list of issue type screen schemes.

Parameters:

NameTypeRequiredDescription
queriesGetIssueTypeScreenSchemesQueriesNoOptional query parameters such as startAt, maxResults, id.

Returns: PageBeanIssueTypeScreenScheme|error

Sample code:

jira:PageBeanIssueTypeScreenScheme schemes = check jiraClient->/api/'3/issuetypescreenscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10000", "name": "Default Issue Type Screen Scheme"}]}
Create issue type screen scheme

Creates an issue type screen scheme.

Parameters:

NameTypeRequiredDescription
payloadIssueTypeScreenSchemeDetailsYesThe issue type screen scheme details.

Returns: IssueTypeScreenSchemeId|error

Sample code:

jira:IssueTypeScreenSchemeId scheme = check jiraClient->/api/'3/issuetypescreenscheme.post({
name: "Custom ITSS",
issueTypeMappings: [
{issueTypeId: "default", screenSchemeId: "10000"}
]
});

Sample response:

{"id": "10001"}
Delete issue type screen scheme

Deletes an issue type screen scheme.

Parameters:

NameTypeRequiredDescription
issueTypeScreenSchemeIdstringYesThe ID of the issue type screen scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issuetypescreenscheme/["10001"].delete();

Sample response:

null

Issue security schemes

Get issue security schemes

Returns all issue security schemes.

Returns: SecuritySchemes|error

Sample code:

jira:SecuritySchemes schemes = check jiraClient->/api/'3/issuesecurityschemes;

Sample response:

{"issueSecuritySchemes": [{"self": "https://your-domain.atlassian.net/rest/api/3/issuesecurityschemes/10000", "id": 10000, "name": "Default Security Scheme"}]}
Create issue security scheme

Creates an issue security scheme.

Parameters:

NameTypeRequiredDescription
payloadCreateIssueSecuritySchemeDetailsYesThe security scheme details.

Returns: SecuritySchemeId|error

Sample code:

jira:SecuritySchemeId scheme = check jiraClient->/api/'3/issuesecurityschemes.post({
name: "Restricted Security Scheme",
description: "For confidential issues"
});

Sample response:

{"id": "10001"}
Get issue security scheme

Returns an issue security scheme by its ID.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the issue security scheme.

Returns: SecurityScheme|error

Sample code:

jira:SecurityScheme scheme = check jiraClient->/api/'3/issuesecurityschemes/[10000];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/issuesecurityschemes/10000", "id": 10000, "name": "Default Security Scheme", "defaultSecurityLevelId": 10001}
Delete issue security scheme

Deletes an issue security scheme.

Parameters:

NameTypeRequiredDescription
schemeIdstringYesThe ID of the issue security scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issuesecurityschemes/["10001"].delete();

Sample response:

null

Screens

Get screens

Returns a paginated list of all screens.

Parameters:

NameTypeRequiredDescription
queriesGetScreensQueriesNoOptional query parameters such as startAt, maxResults, id.

Returns: PageBeanScreen|error

Sample code:

jira:PageBeanScreen screens = check jiraClient->/api/'3/screens;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "name": "Default Screen"}]}
Create screen

Creates a screen.

Parameters:

NameTypeRequiredDescription
payloadScreenDetailsYesThe screen details.

Returns: Screen|error

Sample code:

jira:Screen screen = check jiraClient->/api/'3/screens.post({
name: "Bug Screen",
description: "Screen for bug issues"
});

Sample response:

{"id": 10001, "name": "Bug Screen", "description": "Screen for bug issues"}
Update screen

Updates a screen.

Parameters:

NameTypeRequiredDescription
screenIdintYesThe ID of the screen.
payloadUpdateScreenDetailsYesThe updated screen details.

Returns: Screen|error

Sample code:

jira:Screen updated = check jiraClient->/api/'3/screens/[10001].put({
name: "Bug Screen Updated",
description: "Updated screen for bugs"
});

Sample response:

{"id": 10001, "name": "Bug Screen Updated", "description": "Updated screen for bugs"}
Delete screen

Deletes a screen.

Parameters:

NameTypeRequiredDescription
screenIdintYesThe ID of the screen.

Returns: error?

Sample code:

check jiraClient->/api/'3/screens/[10001].delete();
Get screen tabs

Returns the tabs for a screen.

Parameters:

NameTypeRequiredDescription
screenIdintYesThe ID of the screen.

Returns: ScreenableTab[]|error

Sample code:

jira:ScreenableTab[] tabs = check jiraClient->/api/'3/screens/[10000]/tabs;

Sample response:

[{"id": 10001, "name": "Field Tab"}]
Get screen tab fields

Returns the fields on a screen tab.

Parameters:

NameTypeRequiredDescription
screenIdintYesThe ID of the screen.
tabIdintYesThe ID of the tab.

Returns: ScreenableField[]|error

Sample code:

jira:ScreenableField[] fields = check jiraClient->/api/'3/screens/[10000]/tabs/[10001]/fields;

Sample response:

[{"id": "summary", "name": "Summary"}, {"id": "description", "name": "Description"}, {"id": "priority", "name": "Priority"}]

Screen schemes

Get screen schemes

Returns a paginated list of screen schemes.

Parameters:

NameTypeRequiredDescription
queriesGetScreenSchemesQueriesNoOptional query parameters such as startAt, maxResults, id.

Returns: PageBeanScreenScheme|error

Sample code:

jira:PageBeanScreenScheme schemes = check jiraClient->/api/'3/screenscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "name": "Default Screen Scheme"}]}
Create screen scheme

Creates a screen scheme.

Parameters:

NameTypeRequiredDescription
payloadScreenSchemeDetailsYesThe screen scheme details.

Returns: ScreenSchemeId|error

Sample code:

jira:ScreenSchemeId scheme = check jiraClient->/api/'3/screenscheme.post({
name: "Custom Screen Scheme",
screens: {
default: 10000
}
});

Sample response:

{"id": 10001}
Delete screen scheme

Deletes a screen scheme.

Parameters:

NameTypeRequiredDescription
screenSchemeIdstringYesThe ID of the screen scheme.

Returns: error?

Sample code:

check jiraClient->/api/'3/screenscheme/["10001"].delete();

Workflow schemes

Get all workflow schemes

Returns a paginated list of all workflow schemes.

Parameters:

NameTypeRequiredDescription
queriesGetAllWorkflowSchemesQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanWorkflowScheme|error

Sample code:

jira:PageBeanWorkflowScheme schemes = check jiraClient->/api/'3/workflowscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "name": "Default Workflow Scheme", "defaultWorkflow": "jira"}]}
Create workflow scheme

Creates a workflow scheme.

Parameters:

NameTypeRequiredDescription
payloadWorkflowSchemeYesThe workflow scheme details.

Returns: WorkflowScheme|error

Sample code:

jira:WorkflowScheme scheme = check jiraClient->/api/'3/workflowscheme.post({
name: "Custom Workflow Scheme",
description: "Workflow for software projects",
defaultWorkflow: "jira"
});

Sample response:

{"id": 10001, "name": "Custom Workflow Scheme", "description": "Workflow for software projects", "defaultWorkflow": "jira"}
Get workflow scheme

Returns a workflow scheme by its ID.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the workflow scheme.

Returns: WorkflowScheme|error

Sample code:

jira:WorkflowScheme scheme = check jiraClient->/api/'3/workflowscheme/[10000];

Sample response:

{"id": 10000, "name": "Default Workflow Scheme", "defaultWorkflow": "jira", "issueTypeMappings": {"10001": "jira", "10002": "jira"}}
Update workflow scheme

Updates a workflow scheme.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the workflow scheme.
payloadWorkflowSchemeYesThe updated workflow scheme details.

Returns: WorkflowScheme|error

Sample code:

jira:WorkflowScheme updated = check jiraClient->/api/'3/workflowscheme/[10001].put({
name: "Updated Workflow Scheme",
description: "Updated description"
});

Sample response:

{"id": 10001, "name": "Updated Workflow Scheme", "description": "Updated description", "defaultWorkflow": "jira"}
Delete workflow scheme

Deletes a workflow scheme.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the workflow scheme.

Returns: error?

Sample code:

check jiraClient->/api/'3/workflowscheme/[10001].delete();

Roles

Get all project roles

Returns a list of all project roles.

Returns: ProjectRole[]|error

Sample code:

jira:ProjectRole[] roles = check jiraClient->/api/'3/role;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/role/10002", "name": "Administrators", "id": 10002}, {"self": "https://your-domain.atlassian.net/rest/api/3/role/10001", "name": "Developers", "id": 10001}]
Create project role

Creates a new project role.

Parameters:

NameTypeRequiredDescription
payloadCreateUpdateRoleRequestBeanYesThe role details including name and description.

Returns: ProjectRole|error

Sample code:

jira:ProjectRole role = check jiraClient->/api/'3/role.post({
name: "QA Team",
description: "Quality assurance team members"
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/role/10003", "name": "QA Team", "id": 10003, "description": "Quality assurance team members"}
Get project role

Returns a project role by its ID.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the project role.

Returns: ProjectRole|error

Sample code:

jira:ProjectRole role = check jiraClient->/api/'3/role/[10002];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/role/10002", "name": "Administrators", "id": 10002, "description": "A project role for administrators"}
Delete project role

Deletes a project role.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the project role.

Returns: error?

Sample code:

check jiraClient->/api/'3/role/[10003].delete();

Project categories

Get all project categories

Returns all project categories.

Returns: ProjectCategory[]|error

Sample code:

jira:ProjectCategory[] categories = check jiraClient->/api/'3/projectCategory;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000", "id": "10000", "name": "Engineering", "description": "Engineering projects"}]
Create project category

Creates a project category.

Parameters:

NameTypeRequiredDescription
payloadProjectCategoryYesThe project category details.

Returns: ProjectCategory|error

Sample code:

jira:ProjectCategory category = check jiraClient->/api/'3/projectCategory.post({
name: "Marketing",
description: "Marketing projects"
});

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10001", "id": "10001", "name": "Marketing", "description": "Marketing projects"}
Get project category

Returns a project category by its ID.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the project category.

Returns: ProjectCategory|error

Sample code:

jira:ProjectCategory category = check jiraClient->/api/'3/projectCategory/[10000];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/projectCategory/10000", "id": "10000", "name": "Engineering", "description": "Engineering projects"}
Delete project category

Deletes a project category.

Parameters:

NameTypeRequiredDescription
idintYesThe ID of the project category.

Returns: error?

Sample code:

check jiraClient->/api/'3/projectCategory/[10001].delete();

Project validation

Validate project key

Validates a project key and returns any errors.

Parameters:

NameTypeRequiredDescription
queriesValidateProjectKeyQueriesNoQuery parameters including key.

Returns: ErrorCollection|error

Sample code:

jira:ErrorCollection result = check jiraClient->/api/'3/projectvalidate/'key(key = "NEWPROJ");

Sample response:

{"errorMessages": [], "errors": {}}
Get valid project key

Returns a valid project key based on the suggested key.

Parameters:

NameTypeRequiredDescription
queriesGetValidProjectKeyQueriesNoQuery parameters including key.

Returns: string|error

Sample code:

string validKey = check jiraClient->/api/'3/projectvalidate/validProjectKey(key = "My Project");

Sample response:

"MYPROJECT"

Resolutions

Get all resolutions

Returns a list of all issue resolution values.

Returns: Resolution[]|error

Sample code:

jira:Resolution[] resolutions = check jiraClient->/api/'3/resolution;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/resolution/1", "id": "1", "name": "Fixed", "description": "A fix for this issue is checked into the tree and tested."}, {"id": "2", "name": "Won't Fix"}, {"id": "3", "name": "Duplicate"}]
Get resolution

Returns a resolution by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the resolution.

Returns: Resolution|error

Sample code:

jira:Resolution resolution = check jiraClient->/api/'3/resolution/["1"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/resolution/1", "id": "1", "name": "Fixed", "description": "A fix for this issue is checked into the tree and tested."}
Search resolutions

Returns a paginated list of resolutions.

Parameters:

NameTypeRequiredDescription
queriesSearchResolutionsQueriesNoOptional query parameters such as startAt, maxResults, id.

Returns: PageBeanResolutionJsonBean|error

Sample code:

jira:PageBeanResolutionJsonBean results = check jiraClient->/api/'3/resolution/search;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 3, "values": [{"id": "1", "name": "Fixed"}, {"id": "2", "name": "Won't Fix"}, {"id": "3", "name": "Duplicate"}]}

Priority schemes

Get priority schemes

Returns a paginated list of priority schemes.

Parameters:

NameTypeRequiredDescription
queriesGetPrioritySchemesQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanPrioritySchemeWithPaginatedPrioritiesAndProjects|error

Sample code:

jira:PageBeanPrioritySchemeWithPaginatedPrioritiesAndProjects schemes = check jiraClient->/api/'3/priorityscheme;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10000, "name": "Default Priority Scheme"}]}
Create priority scheme

Creates a priority scheme.

Parameters:

NameTypeRequiredDescription
payloadCreatePrioritySchemeDetailsYesThe priority scheme details.

Returns: PrioritySchemeId|error

Sample code:

jira:PrioritySchemeId scheme = check jiraClient->/api/'3/priorityscheme.post({
name: "Custom Priority Scheme",
defaultPriorityId: 3
});

Sample response:

{"prioritySchemeId": 10001}
Delete priority scheme

Deletes a priority scheme.

Parameters:

NameTypeRequiredDescription
schemeIdintYesThe ID of the priority scheme.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/priorityscheme/[10001].delete();

Sample response:

null

Plans (advanced roadmaps)

Get plans

Returns a paginated list of plans (requires Jira Premium or Advanced Roadmaps).

Parameters:

NameTypeRequiredDescription
queriesGetPlansQueriesNoOptional query parameters such as cursor.

Returns: PageWithCursorGetPlanResponseForPage|error

Sample code:

jira:PageWithCursorGetPlanResponseForPage plans = check jiraClient->/api/'3/plans/plan;

Sample response:

{"values": [{"id": 1, "name": "Q1 Roadmap", "status": "ACTIVE"}], "cursor": "abc123"}
Create plan

Creates a new plan.

Parameters:

NameTypeRequiredDescription
payloadCreatePlanRequestYesThe plan details.

Returns: int|error

Sample code:

int planId = check jiraClient->/api/'3/plans/plan.post({
name: "Q2 Roadmap",
leadAccountId: "5b10ac8d82e05b22cc7d4ef5",
issueSources: [{
'type: "Project",
value: 10001
}],
scheduling: {
dependencies: "Sequential",
estimation: "StoryPoints"
}
});

Sample response:

2
Get plan

Returns a plan by its ID.

Parameters:

NameTypeRequiredDescription
planIdintYesThe ID of the plan.

Returns: GetPlanResponse|error

Sample code:

jira:GetPlanResponse plan = check jiraClient->/api/'3/plans/plan/[1];

Sample response:

{"id": 1, "name": "Q1 Roadmap", "status": "ACTIVE", "leadAccountId": "5b10ac8d82e05b22cc7d4ef5"}
Archive plan

Archives a plan.

Parameters:

NameTypeRequiredDescription
planIdintYesThe ID of the plan.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/plans/plan/[1]/archive.put();

Sample response:

null
Trash plan

Moves a plan to the trash.

Parameters:

NameTypeRequiredDescription
planIdintYesThe ID of the plan.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/plans/plan/[1]/trash.put();

Sample response:

null

JQL

Get JQL autocomplete data

Returns the JQL autocomplete reference data: fields, functions, and operators.

Returns: JQLReferenceData|error

Sample code:

jira:JQLReferenceData data = check jiraClient->/api/'3/jql/autocompletedata;

Sample response:

{"visibleFieldNames": [{"value": "summary", "displayName": "Summary", "orderable": "true"}], "visibleFunctionNames": [{"value": "currentUser()", "displayName": "currentUser()"}]}
Parse JQL queries

Parses and validates JQL queries, returning the parsed structure or errors.

Parameters:

NameTypeRequiredDescription
payloadJqlQueriesToParseYesThe JQL queries to parse.

Returns: ParsedJqlQueries|error

Sample code:

jira:ParsedJqlQueries parsed = check jiraClient->/api/'3/jql/parse.post({
queries: ["project = PROJ AND status = 'In Progress'"]
});

Sample response:

{"queries": [{"query": "project = PROJ AND status = 'In Progress'", "structure": {"where": {"clause": "AND"}}}]}
Sanitize JQL queries

Sanitizes JQL queries by replacing user-identifying information with account IDs.

Parameters:

NameTypeRequiredDescription
payloadJqlQueriesToSanitizeYesThe JQL queries to sanitize.

Returns: SanitizedJqlQueries|error

Sample code:

jira:SanitizedJqlQueries sanitized = check jiraClient->/api/'3/jql/sanitize.post({
queries: [
{query: "assignee = john.doe"}
]
});

Sample response:

{"queries": [{"initialQuery": "assignee = john.doe", "sanitizedQuery": "assignee = '5b10ac8d82e05b22cc7d4ef5'"}]}

Webhooks

Get webhooks

Returns the webhooks registered by the calling app.

Parameters:

NameTypeRequiredDescription
queriesGetDynamicWebhooksForAppQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanWebhook|error

Sample code:

jira:PageBeanWebhook webhooks = check jiraClient->/api/'3/webhook;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": 10001, "jqlFilter": "project = PROJ", "fieldIdsFilter": ["summary", "status"], "events": ["jira:issue_created", "jira:issue_updated"]}]}
Register webhooks

Registers webhooks for the calling app.

Parameters:

NameTypeRequiredDescription
payloadWebhookRegistrationDetailsYesThe webhook registration details including URL, events, and JQL filter.

Returns: ContainerForRegisteredWebhooks|error

Sample code:

jira:ContainerForRegisteredWebhooks result = check jiraClient->/api/'3/webhook.post({
url: "https://your-app.example.com/webhook",
webhooks: [
{
jqlFilter: "project = PROJ",
events: ["jira:issue_created", "jira:issue_updated"]
}
]
});

Sample response:

{"webhookRegistrationResult": [{"createdWebhookId": 10001}]}
Delete webhooks

Deletes webhooks by ID.

Parameters:

NameTypeRequiredDescription
payloadContainerForWebhookIDsYesThe IDs of webhooks to delete.

Returns: error?

Sample code:

check jiraClient->/api/'3/webhook.delete({webhookIds: [10001]});
Get failed webhooks

Returns webhooks that have recently failed to be delivered.

Parameters:

NameTypeRequiredDescription
queriesGetFailedWebhooksQueriesNoOptional query parameters such as maxResults, after.

Returns: FailedWebhooks|error

Sample code:

jira:FailedWebhooks failed = check jiraClient->/api/'3/webhook/failed;

Sample response:

{"maxResults": 100, "values": [{"id": "abc123", "body": "{\"webhookEvent\":\"jira:issue_created\"}", "url": "https://your-app.example.com/webhook", "failureTime": 1705312200000}]}
Refresh webhook expiration

Extends the life of the specified webhooks.

Parameters:

NameTypeRequiredDescription
payloadContainerForWebhookIDsYesThe IDs of webhooks to refresh.

Returns: WebhooksExpirationDate|error

Sample code:

jira:WebhooksExpirationDate expiry = check jiraClient->/api/'3/webhook/refresh.put({webhookIds: [10001]});

Sample response:

{"expirationDate": 1707904200000}
Get issue link types

Returns all issue link types.

Returns: IssueLinkTypes|error

Sample code:

jira:IssueLinkTypes linkTypes = check jiraClient->/api/'3/issueLinkType;

Sample response:

{"issueLinkTypes": [{"id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks"}, {"id": "10001", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates"}]}
Create issue link type

Creates an issue link type.

Parameters:

NameTypeRequiredDescription
payloadIssueLinkTypeYesThe issue link type details.

Returns: IssueLinkType|error

Sample code:

jira:IssueLinkType linkType = check jiraClient->/api/'3/issueLinkType.post({
name: "Causes",
inward: "is caused by",
outward: "causes"
});

Sample response:

{"id": "10002", "name": "Causes", "inward": "is caused by", "outward": "causes"}
Get issue link type

Returns an issue link type by its ID.

Parameters:

NameTypeRequiredDescription
issueLinkTypeIdstringYesThe ID of the issue link type.

Returns: IssueLinkType|error

Sample code:

jira:IssueLinkType linkType = check jiraClient->/api/'3/issueLinkType/["10000"];

Sample response:

{"id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks"}
Delete issue link type

Deletes an issue link type.

Parameters:

NameTypeRequiredDescription
issueLinkTypeIdstringYesThe ID of the issue link type.

Returns: error?

Sample code:

check jiraClient->/api/'3/issueLinkType/["10002"].delete();

Statuses (managed)

Get statuses by ID

Returns the statuses matching the given IDs.

Parameters:

NameTypeRequiredDescription
queriesGetStatusesByIdQueriesNoQuery parameters including id, expand.

Returns: JiraStatus[]|error

Sample code:

jira:JiraStatus[] statuses = check jiraClient->/api/'3/statuses(id = "1,3");

Sample response:

[{"id": "1", "name": "Open", "statusCategory": "TODO"}, {"id": "3", "name": "In Progress", "statusCategory": "IN_PROGRESS"}]
Create statuses

Creates statuses for a workflow.

Parameters:

NameTypeRequiredDescription
payloadStatusCreateRequestYesThe status creation details including names and categories.

Returns: JiraStatus[]|error

Sample code:

jira:JiraStatus[] newStatuses = check jiraClient->/api/'3/statuses.post({
statuses: [
{name: "Code Review", statusCategory: "IN_PROGRESS"},
{name: "QA Testing", statusCategory: "IN_PROGRESS"}
],
scope: {
'type: "PROJECT",
project: {id: "10001"}
}
});

Sample response:

[{"id": "10100", "name": "Code Review", "statusCategory": "IN_PROGRESS"}, {"id": "10101", "name": "QA Testing", "statusCategory": "IN_PROGRESS"}]
Update statuses

Updates existing statuses.

Parameters:

NameTypeRequiredDescription
payloadStatusUpdateRequestYesThe status update details.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/statuses.put({
statuses: [
{id: "10100", name: "Peer Review", statusCategory: "IN_PROGRESS"}
]
});

Sample response:

null
Search statuses

Returns a paginated list of statuses matching the search criteria.

Parameters:

NameTypeRequiredDescription
queriesSearchQueriesNoQuery parameters including expand, projectId, startAt, maxResults, searchString, statusCategory.

Returns: PageOfStatuses|error

Sample code:

jira:PageOfStatuses results = check jiraClient->/api/'3/statuses/search(searchString = "Review");

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10100", "name": "Code Review", "statusCategory": "IN_PROGRESS"}]}

Issue properties

Get issue property keys

Returns the keys of all properties for an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.

Returns: PropertyKeys|error

Sample code:

jira:PropertyKeys keys = check jiraClient->/api/'3/issue/["PROJ-15"]/properties;

Sample response:

{"keys": [{"self": "https://your-domain.atlassian.net/rest/api/3/issue/PROJ-15/properties/myProperty", "key": "myProperty"}]}
Get issue property

Returns the value of an issue property.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
propertyKeystringYesThe key of the property.

Returns: EntityProperty|error

Sample code:

jira:EntityProperty prop = check jiraClient->/api/'3/issue/["PROJ-15"]/properties/["myProperty"];

Sample response:

{"key": "myProperty", "value": {"count": 42, "label": "Custom Value"}}
Set issue property

Sets the value of an issue property.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
propertyKeystringYesThe key of the property.
payloadjsonYesThe property value (any JSON).

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"]/properties/["myProperty"].put({"count": 42, "label": "Custom Value"});

Sample response:

null
Delete issue property

Deletes an issue property.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
propertyKeystringYesThe key of the property.

Returns: error?

Sample code:

check jiraClient->/api/'3/issue/["PROJ-15"]/properties/["myProperty"].delete();

Issue changelogs

Get issue changelogs

Returns a paginated list of all changelogs for an issue sorted by date.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
queriesGetChangeLogsQueriesNoOptional query parameters such as startAt, maxResults.

Returns: PageBeanChangelog|error

Sample code:

jira:PageBeanChangelog changelogs = check jiraClient->/api/'3/issue/["PROJ-15"]/changelog;

Sample response:

{"maxResults": 100, "startAt": 0, "total": 1, "values": [{"id": "10001", "author": {"displayName": "John Doe"}, "created": "2025-01-15T10:30:00.000+0000", "items": [{"field": "status", "fromString": "To Do", "toString": "In Progress"}]}]}

Issue notifications

Send issue notification

Sends a notification (email) about an issue to specified users.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.
payloadNotificationYesThe notification details including subject, text body, and recipients.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/issue/["PROJ-15"]/notify.post({
subject: "Issue update",
textBody: "This issue has been assigned to you.",
to: {
users: [
{accountId: "5b10ac8d82e05b22cc7d4ef5"}
]
}
});

Sample response:

null

Issue edit & create metadata

Get create issue metadata

Returns the metadata required to create issues, including available projects and issue types.

Parameters:

NameTypeRequiredDescription
queriesGetCreateIssueMetaQueriesNoOptional query parameters such as projectIds, projectKeys, issuetypeIds, expand.

Returns: IssueCreateMetadata|error

Sample code:

jira:IssueCreateMetadata meta = check jiraClient->/api/'3/issue/createmeta(projectKeys = "PROJ");

Sample response:

{"projects": [{"id": "10001", "key": "PROJ", "name": "My Project", "issuetypes": [{"id": "10001", "name": "Bug"}, {"id": "10002", "name": "Task"}]}]}
Get edit issue metadata

Returns the metadata required to edit an issue.

Parameters:

NameTypeRequiredDescription
issueIdOrKeystringYesThe ID or key of the issue.

Returns: IssueUpdateMetadata|error

Sample code:

jira:IssueUpdateMetadata editMeta = check jiraClient->/api/'3/issue/["PROJ-15"]/editmeta;

Sample response:

{"fields": {"summary": {"required": true, "schema": {"type": "string"}, "name": "Summary", "operations": ["set"]}, "priority": {"required": false, "schema": {"type": "priority"}, "name": "Priority", "operations": ["set"]}}}

My preferences

Get preference

Returns the value of a preference for the current user.

Parameters:

NameTypeRequiredDescription
queriesGetPreferenceQueriesYesQuery parameters including key.

Returns: string|error

Sample code:

string pref = check jiraClient->/api/'3/mypreferences(key = "user.notifications.mimetype");

Sample response:

"text/html"
Set preference

Sets the value of a preference for the current user.

Parameters:

NameTypeRequiredDescription
payloadstringYesThe new preference value.
queriesSetPreferenceQueriesYesQuery parameters including key.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/mypreferences.put("text/html", key = "user.notifications.mimetype");

Sample response:

null
Get locale

Returns the locale of the current user.

Returns: Locale|error

Sample code:

jira:Locale locale = check jiraClient->/api/'3/mypreferences/locale;

Sample response:

{"locale": "en_US"}

Tasks

Get task

Returns the status of a long-running asynchronous task.

Parameters:

NameTypeRequiredDescription
taskIdstringYesThe ID of the task.

Returns: TaskProgressBeanObject|error

Sample code:

jira:TaskProgressBeanObject task = check jiraClient->/api/'3/task/["10001"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/task/10001", "id": "10001", "status": "COMPLETE", "progress": 100, "result": "Success"}
Cancel task

Cancels a long-running asynchronous task.

Parameters:

NameTypeRequiredDescription
taskIdstringYesThe ID of the task.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/task/["10001"]/cancel.post();

Sample response:

null

Issue events

Get events

Returns all issue event types.

Returns: IssueEvent[]|error

Sample code:

jira:IssueEvent[] events = check jiraClient->/api/'3/events;

Sample response:

[{"id": 1, "name": "Issue Created"}, {"id": 2, "name": "Issue Updated"}, {"id": 3, "name": "Issue Assigned"}, {"id": 4, "name": "Issue Resolved"}, {"id": 5, "name": "Issue Deleted"}]

Custom field option

Get custom field option

Returns a custom field option by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the custom field option.

Returns: CustomFieldOption|error

Sample code:

jira:CustomFieldOption option = check jiraClient->/api/'3/customFieldOption/["10001"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/customFieldOption/10001", "value": "Option A"}

License & instance

Get instance license

Returns the license information for the Jira instance.

Returns: License|error

Sample code:

jira:License license = check jiraClient->/api/'3/instance/license;

Sample response:

{"applications": [{"id": "jira-software", "plan": "FREE"}]}
Get approximate license count

Returns the approximate license count for the Jira instance.

Returns: LicenseMetric|error

Sample code:

jira:LicenseMetric metric = check jiraClient->/api/'3/license/approximateLicenseCount;

Sample response:

{"key": "approximateLicenseCount", "value": "25"}

System avatars

Get system avatars

Returns the system avatars by type (issuetype, project, user, or priority).

Parameters:

NameTypeRequiredDescription
type"issuetype"|"project"|"user"|"priority"YesThe avatar type.

Returns: SystemAvatars|error

Sample code:

jira:SystemAvatars avatars = check jiraClient->/api/'3/avatar/["project"]/system;

Sample response:

{"system": [{"id": "10001", "isSystemAvatar": true, "isSelected": false}]}

Status categories

Get all status categories

Returns all status categories.

Returns: StatusCategory[]|error

Sample code:

jira:StatusCategory[] categories = check jiraClient->/api/'3/statuscategory;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/statuscategory/1", "id": 1, "key": "undefined", "colorName": "medium-gray", "name": "No Category"}, {"id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do"}, {"id": 4, "key": "indeterminate", "colorName": "yellow", "name": "In Progress"}, {"id": 3, "key": "done", "colorName": "green", "name": "Done"}]
Get status category

Returns a status category by its ID or key.

Parameters:

NameTypeRequiredDescription
idOrKeystringYesThe ID or key of the status category.

Returns: StatusCategory|error

Sample code:

jira:StatusCategory category = check jiraClient->/api/'3/statuscategory/["done"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/statuscategory/3", "id": 3, "key": "done", "colorName": "green", "name": "Done"}

Issue archive

Archive issues

Archives a list of issues synchronously.

Parameters:

NameTypeRequiredDescription
payloadIssueArchivalSyncRequestYesThe list of issue IDs or keys to archive.

Returns: IssueArchivalSyncResponse|error

Sample code:

jira:IssueArchivalSyncResponse result = check jiraClient->/api/'3/issue/archive.put({
issueIdsOrKeys: ["PROJ-15", "PROJ-16"]
});

Sample response:

{"numberOfIssuesUpdated": 2, "errors": {}}
Unarchive issues

Unarchives a list of issues synchronously.

Parameters:

NameTypeRequiredDescription
payloadIssueArchivalSyncRequestYesThe list of issue IDs or keys to unarchive.

Returns: IssueArchivalSyncResponse|error

Sample code:

jira:IssueArchivalSyncResponse result = check jiraClient->/api/'3/issue/unarchive.put({
issueIdsOrKeys: ["PROJ-15", "PROJ-16"]
});

Sample response:

{"numberOfIssuesUpdated": 2, "errors": {}}

UI modifications

Get UI modifications

Returns a paginated list of UI modifications.

Parameters:

NameTypeRequiredDescription
queriesGetUiModificationsQueriesNoOptional query parameters such as startAt, maxResults, expand.

Returns: PageBeanUiModificationDetails|error

Sample code:

jira:PageBeanUiModificationDetails mods = check jiraClient->/api/'3/uiModifications;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 0, "values": []}
Create UI modification

Creates a UI modification.

Parameters:

NameTypeRequiredDescription
payloadCreateUiModificationDetailsYesThe UI modification details.

Returns: UiModificationIdentifiers|error

Sample code:

jira:UiModificationIdentifiers mod = check jiraClient->/api/'3/uiModifications.post({
name: "Hide priority field",
data: "{\"type\": \"hidden\", \"field\": \"priority\"}"
});

Sample response:

{"id": "10001", "self": "https://your-domain.atlassian.net/rest/api/3/uiModifications/10001"}
Delete UI modification

Deletes a UI modification.

Parameters:

NameTypeRequiredDescription
uiModificationIdstringYesThe ID of the UI modification.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/uiModifications/["10001"].delete();

Sample response:

null

Bulk worklogs

Get deleted worklog IDs

Returns the IDs and delete times of worklogs deleted since the specified timestamp.

Parameters:

NameTypeRequiredDescription
queriesGetIdsOfWorklogsDeletedSinceQueriesNoQuery parameters including since (Unix timestamp in ms).

Returns: ChangedWorklogs|error

Sample code:

jira:ChangedWorklogs deleted = check jiraClient->/api/'3/worklog/deleted(since = 1705312200000);

Sample response:

{"values": [{"worklogId": 100028, "updatedTime": 1705400000000}], "since": 1705312200000, "until": 1705400000000, "lastPage": true}
Get worklogs by IDs

Returns the worklogs for a list of worklog IDs.

Parameters:

NameTypeRequiredDescription
payloadWorklogIdsRequestBeanYesThe worklog IDs to retrieve.

Returns: Worklog[]|error

Sample code:

jira:Worklog[] worklogs = check jiraClient->/api/'3/worklog/list.post({
ids: [100028, 100029]
});

Sample response:

[{"id": "100028", "author": {"displayName": "John Doe"}, "timeSpent": "3h 20m", "timeSpentSeconds": 12000}, {"id": "100029", "author": {"displayName": "Jane Smith"}, "timeSpent": "2h", "timeSpentSeconds": 7200}]
Get updated worklog IDs

Returns the IDs and update times of worklogs updated since the specified timestamp.

Parameters:

NameTypeRequiredDescription
queriesGetIdsOfWorklogsModifiedSinceQueriesNoQuery parameters including since (Unix timestamp in ms).

Returns: ChangedWorklogs|error

Sample code:

jira:ChangedWorklogs updated = check jiraClient->/api/'3/worklog/updated(since = 1705312200000);

Sample response:

{"values": [{"worklogId": 100028, "updatedTime": 1705400000000}], "since": 1705312200000, "until": 1705400000000, "lastPage": true}

Data policy

Get workspace data policy

Returns the data policy for the workspace.

Returns: WorkspaceDataPolicy|error

Sample code:

jira:WorkspaceDataPolicy policy = check jiraClient->/api/'3/data\-policy;

Sample response:

{"anyContentBlocked": false}
Get project data policies

Returns data policies for projects.

Parameters:

NameTypeRequiredDescription
queriesGetPoliciesQueriesNoQuery parameters including ids.

Returns: ProjectDataPolicies|error

Sample code:

jira:ProjectDataPolicies policies = check jiraClient->/api/'3/data\-policy/project(ids = "10001");

Sample response:

{"projectDataPolicies": [{"projectId": "10001", "anyContentBlocked": false}]}

Classification levels

Get classification levels

Returns all classification levels.

Parameters:

NameTypeRequiredDescription
queriesGetAllUserDataClassificationLevelsQueriesNoOptional query parameters such as status, orderBy.

Returns: DataClassificationLevelsBean|error

Sample code:

jira:DataClassificationLevelsBean levels = check jiraClient->/api/'3/classification\-levels;

Sample response:

{"classifications": [{"id": "10001", "name": "Public", "description": "Public information", "rank": 1}]}

Settings

Get default columns

Returns the default issue navigator columns.

Returns: ColumnItem[]|error

Sample code:

jira:ColumnItem[] columns = check jiraClient->/api/'3/settings/columns;

Sample response:

[{"label": "Key", "value": "issuekey"}, {"label": "Summary", "value": "summary"}, {"label": "Issue Type", "value": "issuetype"}, {"label": "Status", "value": "status"}, {"label": "Priority", "value": "priority"}]

Expressions

Analyse Jira expression

Analyses Jira expressions and returns type information and validation errors.

Parameters:

NameTypeRequiredDescription
payloadJiraExpressionForAnalysisYesThe Jira expressions to analyse.

Returns: JiraExpressionsAnalysis|error

Sample code:

jira:JiraExpressionsAnalysis analysis = check jiraClient->/api/'3/expression/analyse.post({
expressions: ["issue.summary"]
});

Sample response:

{"results": [{"expression": "issue.summary", "valid": true, "type": "string"}]}
Evaluate Jira expression

Evaluates a Jira expression and returns the result.

Parameters:

NameTypeRequiredDescription
payloadJiraExpressionEvaluateRequestBeanYesThe expression to evaluate including context.

Returns: JExpEvaluateJiraExpressionResultBean|error

Sample code:

jira:JExpEvaluateJiraExpressionResultBean result = check jiraClient->/api/'3/expression/evaluate.post({
expression: "issue.summary",
context: {
issue: {
'key: "PROJ-15"
}
}
});

Sample response:

{"value": "Fix login page bug", "meta": {"complexity": {"steps": {"value": 1, "limit": 10000}}}}

Project properties

Get project property keys

Returns the keys of all properties for a project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.

Returns: PropertyKeys|error

Sample code:

jira:PropertyKeys keys = check jiraClient->/api/'3/project/["PROJ"]/properties;

Sample response:

{"keys": [{"self": "https://your-domain.atlassian.net/rest/api/3/project/PROJ/properties/myProp", "key": "myProp"}]}
Get project property

Returns the value of a project property.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
propertyKeystringYesThe key of the property.

Returns: EntityProperty|error

Sample code:

jira:EntityProperty prop = check jiraClient->/api/'3/project/["PROJ"]/properties/["myProp"];

Sample response:

{"key": "myProp", "value": {"team": "engineering"}}
Set project property

Sets the value of a project property.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
propertyKeystringYesThe key of the property.
payloadjsonYesThe property value.

Returns: json|error

Sample code:

json result = check jiraClient->/api/'3/project/["PROJ"]/properties/["myProp"].put({"team": "engineering"});

Sample response:

null

Project roles (per project)

Get project roles for project

Returns a list of project roles for a specific project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.

Returns: record {|string...;|}|error

Sample code:

record {|string...;|} roles = check jiraClient->/api/'3/project/["PROJ"]/role;

Sample response:

{"Administrators": "https://your-domain.atlassian.net/rest/api/3/project/PROJ/role/10002", "Developers": "https://your-domain.atlassian.net/rest/api/3/project/PROJ/role/10001"}
Get project role for project

Returns the details of a project role for a specific project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
idintYesThe ID of the project role.

Returns: ProjectRole|error

Sample code:

jira:ProjectRole role = check jiraClient->/api/'3/project/["PROJ"]/role/[10002];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/project/PROJ/role/10002", "name": "Administrators", "id": 10002, "actors": [{"id": 10001, "displayName": "John Doe", "type": "atlassian-user-role-actor"}]}

Project versions (per project)

Get project versions paginated

Returns a paginated list of versions for a project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.
queriesGetProjectVersionsPaginatedQueriesNoOptional query parameters such as startAt, maxResults, orderBy, status, expand.

Returns: PageBeanVersion|error

Sample code:

jira:PageBeanVersion versions = check jiraClient->/api/'3/project/["PROJ"]/version;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 2, "values": [{"id": "10000", "name": "v1.0.0", "released": true}, {"id": "10001", "name": "v2.0.0", "released": false}]}
Get project components

Returns all components for a project.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.

Returns: ProjectComponent[]|error

Sample code:

jira:ProjectComponent[] components = check jiraClient->/api/'3/project/["PROJ"]/components;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/component/10000", "id": "10000", "name": "Backend"}, {"id": "10001", "name": "Frontend"}]
Get project statuses

Returns the valid statuses for a project, grouped by issue type.

Parameters:

NameTypeRequiredDescription
projectIdOrKeystringYesThe ID or key of the project.

Returns: IssueTypeWithStatus[]|error

Sample code:

jira:IssueTypeWithStatus[] statuses = check jiraClient->/api/'3/project/["PROJ"]/statuses;

Sample response:

[{"self": "https://your-domain.atlassian.net/rest/api/3/issuetype/10001", "id": "10001", "name": "Bug", "statuses": [{"self": "https://your-domain.atlassian.net/rest/api/3/status/1", "id": "1", "name": "Open"}, {"id": "3", "name": "In Progress"}, {"id": "10001", "name": "Done"}]}]

Project types

Get all project types

Returns all project types.

Returns: ProjectType[]|error

Sample code:

jira:ProjectType[] types = check jiraClient->/api/'3/project/'type;

Sample response:

[{"key": "software", "formattedKey": "Software", "descriptionI18nKey": "jira.project.type.software.description"}, {"key": "business", "formattedKey": "Business"}, {"key": "service_desk", "formattedKey": "Service Management"}]
Get accessible project type

Returns a project type if it is accessible to the user.

Parameters:

NameTypeRequiredDescription
projectTypeKey"software"|"service_desk"|"business"|"product_discovery"YesThe key of the project type.

Returns: ProjectType|error

Sample code:

jira:ProjectType projectType = check jiraClient->/api/'3/project/'type/["software"]/accessible;

Sample response:

{"key": "software", "formattedKey": "Software", "descriptionI18nKey": "jira.project.type.software.description"}

Search (advanced)

Get approximate issue count

Returns an approximate count of issues matching a JQL query.

Parameters:

NameTypeRequiredDescription
payloadJQLCountRequestBeanYesThe JQL query to count.

Returns: JQLCountResultsBean|error

Sample code:

jira:JQLCountResultsBean count = check jiraClient->/api/'3/search/approximate\-count.post({
jql: "project = PROJ AND status != Done"
});

Sample response:

{"count": 42}
Search and reconcile issues (GET)

Searches for issues using JQL with reconciliation support.

Parameters:

NameTypeRequiredDescription
queriesSearchAndReconsileIssuesUsingJqlQueriesNoQuery parameters including jql, startAt, maxResults, fields.

Returns: SearchAndReconcileResults|error

Sample code:

jira:SearchAndReconcileResults results = check jiraClient->/api/'3/search/jql(jql = "project = PROJ ORDER BY updated DESC");

Sample response:

{"issues": [{"id": "10042", "key": "PROJ-15", "fields": {"summary": "Fix login page bug"}}]}
Search and reconcile issues (POST)

Searches for issues using JQL via request body with reconciliation support.

Parameters:

NameTypeRequiredDescription
payloadSearchAndReconcileRequestBeanYesThe search request.

Returns: SearchAndReconcileResults|error

Sample code:

jira:SearchAndReconcileResults results = check jiraClient->/api/'3/search/jql.post({
jql: "project = PROJ ORDER BY updated DESC",
maxResults: 10
});

Sample response:

{"issues": [{"id": "10042", "key": "PROJ-15", "fields": {"summary": "Fix login page bug"}}]}

Atlassian connect

Get app property keys

Returns the keys of all properties for a Connect app.

Parameters:

NameTypeRequiredDescription
addonKeystringYesThe key of the Connect app.

Returns: PropertyKeys|error

Sample code:

jira:PropertyKeys keys = check jiraClient->/atlassian\-connect/'1/addons/["my-addon"]/properties;

Sample response:

{"keys": [{"self": "https://your-domain.atlassian.net/rest/atlassian-connect/1/addons/my-addon/properties/config", "key": "config"}]}
Get dynamic modules

Returns all dynamic modules registered by the calling Connect app.

Returns: ConnectModules|error

Sample code:

jira:ConnectModules modules = check jiraClient->/atlassian\-connect/'1/app/module/dynamic;

Sample response:

{"modules": []}
Get service registry

Returns services registered in the Atlassian service registry.

Parameters:

NameTypeRequiredDescription
queriesServiceRegistryResourceServicesGetQueriesNoOptional query parameters.

Returns: ServiceRegistry[]|error

Sample code:

jira:ServiceRegistry[] services = check jiraClient->/atlassian\-connect/'1/service\-registry;

Sample response:

[]

Security level

Get security level

Returns a security level by its ID.

Parameters:

NameTypeRequiredDescription
idstringYesThe ID of the security level.

Returns: SecurityLevel|error

Sample code:

jira:SecurityLevel level = check jiraClient->/api/'3/securitylevel/["10001"];

Sample response:

{"self": "https://your-domain.atlassian.net/rest/api/3/securitylevel/10001", "id": "10001", "name": "Confidential", "description": "Only visible to team leads"}

Redact

Submit bulk redaction

Submits a bulk redaction request to remove sensitive data from issues.

Parameters:

NameTypeRequiredDescription
payloadBulkRedactionRequestYesThe redaction request details.

Returns: string|error

Sample code:

string jobId = check jiraClient->/api/'3/redact.post({
searchText: "sensitive-data",
replaceWith: "[REDACTED]",
issueIdsOrKeys: ["PROJ-15", "PROJ-16"]
});

Sample response:

"job-abc-123"
Get redaction job status

Returns the status of a redaction job.

Parameters:

NameTypeRequiredDescription
jobIdstringYesThe ID of the redaction job.

Returns: RedactionJobStatusResponse|error

Sample code:

jira:RedactionJobStatusResponse status = check jiraClient->/api/'3/redact/status/["job-abc-123"];

Sample response:

{"status": "COMPLETED", "totalIssues": 2, "processedIssues": 2}

App custom field configuration

Bulk get custom field configurations

Returns custom field configurations for a list of contexts.

Parameters:

NameTypeRequiredDescription
payloadConfigurationsListParametersYesThe context IDs to retrieve configurations for.

Returns: PageBeanBulkContextualConfiguration|error

Sample code:

jira:PageBeanBulkContextualConfiguration configs = check jiraClient->/api/'3/app/'field/context/configuration/list.post({
fieldIdOrKeys: ["customfield_10100"],
contextIds: [10001]
});

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10001", "fieldId": "customfield_10100", "configuration": {}}]}
Get custom field configuration

Returns the configuration for a custom field's context.

Parameters:

NameTypeRequiredDescription
fieldIdOrKeystringYesThe ID or key of the custom field.

Returns: PageBeanContextualConfiguration|error

Sample code:

jira:PageBeanContextualConfiguration config = check jiraClient->/api/'3/app/'field/["customfield_10100"]/context/configuration;

Sample response:

{"maxResults": 50, "startAt": 0, "total": 1, "values": [{"id": "10001", "configuration": {}}]}

Forge app properties

Set Forge app property

Sets the value of a Forge app property.

Parameters:

NameTypeRequiredDescription
propertyKeystringYesThe key of the property.
payloadjsonYesThe property value.

Returns: OperationMessage|error

Sample code:

jira:OperationMessage result = check jiraClient->/forge/'1/app/properties/["myForgeConfig"].put({"enabled": true});

Sample response:

{"message": "Property updated.", "statusCode": 200}
Delete Forge app property

Deletes a Forge app property.

Parameters:

NameTypeRequiredDescription
propertyKeystringYesThe key of the property.

Returns: error?

Sample code:

check jiraClient->/forge/'1/app/properties/["myForgeConfig"].delete();