Actions
The ballerinax/jira package exposes the following clients:
| Client | Purpose |
|---|---|
Client | Jira 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
| Field | Type | Default | Description |
|---|---|---|---|
auth | http:CredentialsConfig|OAuth2RefreshTokenGrantConfig|http:BearerTokenConfig | Required | Authentication configuration. Use http:CredentialsConfig for Basic Auth (email + API token), OAuth2RefreshTokenGrantConfig for OAuth 2.0, or http:BearerTokenConfig for bearer token. |
httpVersion | http:HttpVersion | HTTP_2_0 | HTTP protocol version. |
timeout | decimal | 30 | The maximum time to wait (in seconds) for a response before closing the connection. |
retryConfig | http:RetryConfig | () | Configurations associated with retrying. |
secureSocket | http: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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueUpdateDetails | Yes | The issue details including project key, summary, description (ADF format), and issue type. |
queries | CreateIssueQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue (e.g., "PROJ-15"). |
queries | GetIssueQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | IssueUpdateDetails | Yes | The fields to update. |
queries | EditIssueQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
queries | DeleteIssueQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | User | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
queries | GetTransitionsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | IssueUpdateDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssuesUpdateBean | Yes | The 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
Search for issues using JQL (GET)
Searches for issues using JQL (Jira Query Language) via query parameters.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
queries | SearchForIssuesUsingJqlQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | SearchRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
queries | GetCommentsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | Comment | Yes | The comment details including body in ADF format. |
queries | AddCommentQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
id | string | Yes | The ID of the comment. |
payload | Comment | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreateProjectDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllProjectsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
queries | GetProjectQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
payload | UpdateProjectDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
queries | DeleteProjectQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | SearchProjectsQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetCurrentUserQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetUserQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | FindUsersQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | FindAssignableUsersQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
queries | GetIssueWorklogQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | Worklog | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The 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"}]}
Issue links
Create issue link
Creates a link between two issues.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | LinkIssueRequestJsonBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
linkId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
linkId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetIssueTypesForProjectQueries | Yes | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | Version | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the version. |
payload | Version | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ProjectComponent | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the component. |
payload | ProjectComponent | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllLabelsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetGroupQueries | Yes | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | AddGroupBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetUsersFromGroupQueries | Yes | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetDashboardsPaginatedQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | DashboardDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | MultipartFile[] | Yes | Array 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | Filter | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetFiltersPaginatedQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetWorkflowsPaginatedQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueBulkDeletePayload | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueBulkTransitionPayload | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | The 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}
Remote issue links
Get remote issue links
Returns the remote issue links for an issue.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | RemoteIssueLinkRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | BulkPermissionsRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetMyPermissionsQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllPermissionSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | PermissionScheme | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The ID of the permission scheme. |
payload | PermissionScheme | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The ID of the permission scheme. |
payload | PermissionGrant | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The ID of the permission scheme. |
permissionId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetNotificationSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreateNotificationSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the notification scheme. |
payload | UpdateNotificationSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
notificationSchemeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | AnnouncementBannerConfigurationUpdate | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetApplicationPropertyQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAuditRecordsQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CustomFieldDefinitionJsonBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetFieldsPaginatedQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
fieldId | string | Yes | The ID of the custom field. |
payload | UpdateCustomFieldDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
fieldId | string | Yes | The ID of the custom field. |
queries | GetContextsForFieldQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
fieldId | string | Yes | The ID of the custom field. |
contextId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllFieldConfigurationsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | FieldConfigurationDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllFieldConfigurationSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | UpdateFieldConfigurationSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllIssueTypeSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueTypeSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueTypeSchemeId | int | Yes | The ID of the issue type scheme. |
payload | IssueTypeSchemeUpdateDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueTypeSchemeId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetIssueTypeScreenSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueTypeScreenSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueTypeScreenSchemeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreateIssueSecuritySchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetScreensQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ScreenDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
screenId | int | Yes | The ID of the screen. |
payload | UpdateScreenDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
screenId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
screenId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
screenId | int | Yes | The ID of the screen. |
tabId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetScreenSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ScreenSchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
screenSchemeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllWorkflowSchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | WorkflowScheme | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The ID of the workflow scheme. |
payload | WorkflowScheme | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreateUpdateRoleRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ProjectCategory | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | ValidateProjectKeyQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetValidProjectKeyQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | SearchResolutionsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetPrioritySchemesQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreatePrioritySchemeDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
schemeId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetPlansQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreatePlanRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
planId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
planId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
planId | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | JqlQueriesToParse | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | JqlQueriesToSanitize | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetDynamicWebhooksForAppQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | WebhookRegistrationDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ContainerForWebhookIDs | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetFailedWebhooksQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ContainerForWebhookIDs | Yes | The 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}
Issue link types
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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueLinkType | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueLinkTypeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueLinkTypeId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetStatusesByIdQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | StatusCreateRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | StatusUpdateRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | SearchQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
propertyKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
propertyKey | string | Yes | The key of the property. |
payload | json | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
propertyKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
queries | GetChangeLogsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The ID or key of the issue. |
payload | Notification | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetCreateIssueMetaQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
issueIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetPreferenceQueries | Yes | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | string | Yes | The new preference value. |
queries | SetPreferenceQueries | Yes | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
type | "issuetype"|"project"|"user"|"priority" | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
idOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueArchivalSyncRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | IssueArchivalSyncRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetUiModificationsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CreateUiModificationDetails | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
uiModificationId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetIdsOfWorklogsDeletedSinceQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | WorklogIdsRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetIdsOfWorklogsModifiedSinceQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetPoliciesQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | GetAllUserDataClassificationLevelsQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | JiraExpressionForAnalysis | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | JiraExpressionEvaluateRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
propertyKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
propertyKey | string | Yes | The key of the property. |
payload | json | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
id | int | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The ID or key of the project. |
queries | GetProjectVersionsPaginatedQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
projectTypeKey | "software"|"service_desk"|"business"|"product_discovery" | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | JQLCountRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | SearchAndReconsileIssuesUsingJqlQueries | No | Query 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | SearchAndReconcileRequestBean | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
addonKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
queries | ServiceRegistryResourceServicesGetQueries | No | Optional 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:
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | BulkRedactionRequest | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ConfigurationsListParameters | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
fieldIdOrKey | string | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
propertyKey | string | Yes | The key of the property. |
payload | json | Yes | The 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:
| Name | Type | Required | Description |
|---|---|---|---|
propertyKey | string | Yes | The key of the property. |
Returns: error?
Sample code:
check jiraClient->/forge/'1/app/properties/["myForgeConfig"].delete();