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:

  1. Install the jira library: pip install jira.
  2. Set the JIRA_API_TOKEN environment variable with your API token.
  3. Replace your-domain.atlassian.net with your actual Jira Cloud instance URL.
  4. Replace [email protected] with the email associated with your Atlassian account.
  5. Replace YOURPROJECTKEY with 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.