SDKs overview
The Jira REST API offers extensive capabilities for integrating with Jira Cloud, enabling developers to programmatically manage issues, projects, users, and workflows. To facilitate interaction with this API, developers can choose between official and community-maintained SDKs and libraries. These tools abstract the underlying HTTP requests, JSON parsing, and authentication mechanisms, providing language-specific methods and objects that streamline development.
Official SDKs, primarily developed or endorsed by Atlassian, focus on core languages and often provide the most stable and feature-complete interfaces. These libraries are typically kept up-to-date with API changes and best practices outlined in the Jira REST API developer documentation. Community-contributed libraries extend this support to a broader range of programming languages, offering alternatives for developers working in environments not directly covered by official offerings. While community libraries can be highly effective, their maintenance and feature parity may vary. When selecting an SDK, developers should consider the library's active maintenance, community support, and alignment with the specific Jira Cloud REST API version they intend to use, such as Jira's REST API v3 introduction.
Official SDKs by language
Atlassian primarily supports a few key languages with officially maintained or strongly recommended libraries for interacting with the Jira REST API. These libraries aim to provide a robust and consistent experience, simplifying API calls and data handling.
Java
For Java environments, developers typically rely on the Atlassian SDK, which includes tools and libraries for both Jira Cloud and Data Center. While there isn't a single, standalone "official" REST client library explicitly named by Atlassian for Cloud in the same way as some other platforms, the recommended approach involves using standard Java HTTP clients combined with JSON processing libraries, or leveraging the comprehensive Atlassian Plugin SDK for building apps that integrate deeply with Jira. The Atlassian Plugin SDK provides client libraries and utilities for developing server-side plugins and integrations, as detailed in the Atlassian Plugin SDK documentation for general context.
Python
The jira library is the de facto standard for Python developers interacting with Jira. While not strictly an "official" Atlassian-developed library, it is widely recognized and frequently referenced by Atlassian's developer community as a robust client. It supports various Jira versions, including Jira Cloud and Jira Server/Data Center, and provides a high-level interface for common operations.
JavaScript (Node.js/Browser)
For JavaScript environments, particularly Node.js, the jira-client library is a popular community-maintained client that offers comprehensive functionality. While Atlassian provides documentation for direct REST API calls using standard fetch or Axios, a dedicated official client library for JavaScript is not prominently featured. Developers often use general-purpose HTTP clients and manage authentication and request structures directly, or opt for well-supported community libraries like jira-client. For browser-based applications, cross-origin resource sharing (CORS) considerations and secure token handling are critical, as discussed in the MDN Web Docs on CORS.
The following table summarizes official and commonly used client libraries:
| Language | Package/Library | Install Command (Typical) | Maturity/Status |
|---|---|---|---|
| Java | (No direct standalone official client; use standard HTTP clients & JSON libs or Atlassian Plugin SDK utilities for app development) | Add dependencies to pom.xml (Maven) or build.gradle (Gradle) for HTTP clients (e.g., Apache HttpClient) and JSON processing (e.g., Jackson). |
Core APIs via HTTP clients. SDK for plugin development. |
| Python | jira |
pip install jira |
Community-driven, highly mature and widely adopted. |
| JavaScript | jira-client (community) / Axios / Fetch API |
npm install jira-client or npm install axios |
Community-driven for jira-client; direct HTTP clients for official approach. |
Installation
Installation procedures vary by programming language and the chosen library. Below are common installation steps for the most frequently used SDKs and libraries mentioned.
Java (Maven example)
For Java, you typically add dependencies for an HTTP client and a JSON processing library to your project's pom.xml (if using Maven) or build.gradle (if using Gradle). For example, using Apache HttpClient and Jackson for JSON:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
After updating your pom.xml, Maven will automatically download and install these dependencies when you build your project.
Python
The Python jira library is installed using pip, Python's package installer:
pip install jira
It's often recommended to install this within a Python virtual environment to manage project-specific dependencies.
JavaScript (Node.js)
For Node.js, if using the jira-client library, install it via npm:
npm install jira-client
If you prefer a general HTTP client like Axios for direct REST calls:
npm install axios
These commands will add the chosen package and its dependencies to your project's node_modules directory and update your package.json file.
Quickstart example
This quickstart demonstrates creating a Jira issue using the Python jira library, authenticating with an API token. Ensure you have generated an Atlassian API token for authentication.
from jira import JIRA
import os
# Jira Cloud URL and credentials
jira_server = 'https://your-domain.atlassian.net' # Replace with your Jira Cloud URL
jira_email = '[email protected]' # Replace with your Atlassian email
jira_token = os.environ.get('JIRA_API_TOKEN') # Store your API token securely as an environment variable
if not jira_token:
print("Error: JIRA_API_TOKEN environment variable not set.")
exit(1)
# Initialize Jira connection
try:
jira = JIRA(server=jira_server, basic_auth=(jira_email, jira_token))
print(f"Successfully connected to Jira server: {jira_server}")
except Exception as e:
print(f"Failed to connect to Jira: {e}")
exit(1)
# Define issue details
issue_dict = {
'project': {'key': 'YOURPROJECTKEY'}, # Replace with your project key (e.g., 'SCRUM')
'summary': 'New issue created via Python SDK',
'description': 'This is a test issue created using the Jira Python SDK.',
'issuetype': {'name': 'Task'}
}
# Create the issue
try:
new_issue = jira.create_issue(fields=issue_dict)
print(f"Issue '{new_issue.key}' created successfully: {jira_server}/browse/{new_issue.key}")
except Exception as e:
print(f"Failed to create issue: {e}")
Before running this code:
- Install the
jiralibrary:pip install jira. - Set the
JIRA_API_TOKENenvironment variable with your API token. - Replace
your-domain.atlassian.netwith your actual Jira Cloud instance URL. - Replace
[email protected]with the email associated with your Atlassian account. - Replace
YOURPROJECTKEYwith the key of an existing project in your Jira instance.
This script connects to your Jira instance using basic authentication (email and API token) and then creates a new 'Task' issue within the specified project. Error handling is included to catch connection or issue creation failures.
Community libraries
Beyond the primary official and widely recognized libraries, the developer community has contributed various clients and wrappers for the Jira REST API in other languages. These libraries often fill gaps in official support or offer alternative approaches to interacting with the API.
Ruby
The jira-ruby gem is a popular choice for Ruby developers. It provides an object-oriented interface to the Jira REST API, supporting a wide range of operations from issue management to user administration. It is actively maintained and has a strong user base within the Ruby community.
gem install jira-ruby
Go
For Go developers, several community-led libraries exist, such as go-jira or packages found on GitHub. These typically expose the REST API endpoints as Go structs and functions. As with any community library, checking the project's activity, issue tracker, and recent commits is advisable to ensure ongoing maintenance and compatibility with the latest Jira REST API versions.
go get github.com/andygrunwald/go-jira
PHP
PHP developers can utilize libraries like jira-rest-client-php, which wraps the Jira REST API in a set of PHP classes. These libraries simplify making API requests, handling authentication, and parsing responses, making it easier to integrate Jira into PHP applications like Laravel or Symfony projects.
composer require cpliakas/jira-rest-client
C# / .NET
In the .NET ecosystem, community-driven projects such as Atlassian.Jira (available via NuGet) provide a C# client for the Jira REST API. This library offers a fluent interface for interacting with Jira issues, projects, and users, designed to feel natural within a C# development environment. It abstracts much of the HTTP request and JSON serialization/deserialization logic, allowing developers to focus on business logic rather than API mechanics.
dotnet add package Atlassian.Jira
When choosing a community library, it is important to review its documentation, examples, and the activity of its maintainers to ensure it meets your project's requirements for stability, security, and feature completeness. The Atlassian marketplace and developer community forums are good resources for discovering and evaluating these third-party contributions.