The Python library to interact with Atlassian Jira REST API
Project description
jira2py
A lightweight, type-safe Python client for the Jira Cloud REST API v3.
jira2py is Jira Cloud only. It does not add Jira Server/Data Center support, board/sprint/epic workflows, issue delete/archive workflows, or a dedicated issue-assign helper/API.
Installation
pip install jira2py
Quick Start
from jira2py import JiraAPI
jira = JiraAPI(
url="https://your-domain.atlassian.net",
username="your-email@example.com",
api_token="your-api-token",
)
issue = jira.issues.get_issue("PROJECT-123")
results = jira.search.enhanced_search("project = PROJECT AND status = 'In Progress'")
By default, JiraAPI() loads credentials from environment variables:
export JIRA_URL="https://your-domain.atlassian.net"
export JIRA_USER="your-email@example.com"
export JIRA_API_TOKEN="your-api-token"
jira = JiraAPI()
You can also pass an explicit JSON credentials file path. There is no default credentials file path.
{
"url": "https://your-domain.atlassian.net",
"username": "your-email@example.com",
"api_token": "your-api-token"
}
jira = JiraAPI(credentials_file="./jira-credentials.json")
When credentials_file is provided, jira2py loads that file. Explicit url, username, and api_token arguments still override file values.
Choose Your API Layer
jira2py has two complementary layers:
- Low-level
JiraAPI— endpoint-oriented methods that return Jira REST JSON shapes directly. - High-level
JiraHelpers— grouped workflows that return readableHelperResultobjects with optional structured data.
from jira2py import JiraAPI
from jira2py.helpers import JiraHelpers
api = JiraAPI()
helpers = JiraHelpers(api)
print(helpers.auth.status().text)
print(helpers.auth.me().text)
print(helpers.metadata.transitions("PROJECT-123").text)
print(helpers.comments.update("PROJECT-123", "10001", "Updated comment").text)
print(helpers.attachments.list("PROJECT-123").text)
print(helpers.links.list("PROJECT-123").text)
print(helpers.worklogs.list("PROJECT-123").text)
print(helpers.metadata.project("PROJECT").text)
print(helpers.metadata.statuses().text)
print(helpers.metadata.priorities().text)
print(helpers.filters.search("Team").text)
print(helpers.filters.run("12345", fields=["summary", "status"]).text)
Helper methods cover:
- auth status and current user (
helpers.auth.status(),helpers.auth.me()) - issue read/create/edit and workflow transitions
- comment list/add/update/delete
- attachment list/read/plan/download/upload/delete
- issue-link list/types/create/delete
- worklog list/add/update/delete/report
- project lookup, project search, transitions, statuses, priorities, users, and field metadata
- saved filter list/search and filter-run via resolved JQL
filter-run is exposed as a helper workflow: it resolves the saved filter JQL and returns the same output shape as normal issue search.
API Coverage
| Module | Operations |
|---|---|
| Issues | Get, create, edit, transition issues; changelogs; edit metadata; create metadata |
| Issue Search | JQL search with pagination |
| Issue Comments | List, add, update, delete comments |
| Issue Worklogs | List, add, update, delete issue worklogs |
| Issue Fields | List system and custom fields |
| Issue Links | List issue links, list link types, create and delete links |
| Projects | Get, search, and list projects |
| Attachments | List issue attachments, read metadata, download, upload, and delete attachments |
| Users | Search users and get the current authenticated user |
| Metadata | Statuses and priorities |
| Filters | Search/list saved filters and resolve filter JQL |
| Helpers | High-level auth, issues, search, comments, worklogs, attachments, metadata, links, and filters workflows |
Documentation
Full documentation is available at jira2py.org.
Machine-readable documentation for AI agents and LLMs:
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jira2py-0.8.0.tar.gz.
File metadata
- Download URL: jira2py-0.8.0.tar.gz
- Upload date:
- Size: 66.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b85a242a097a23c273d57beeee0799f2147318ac4a908278354056fac001ee3
|
|
| MD5 |
2a0b6ee097fc392c5c9066a892108d82
|
|
| BLAKE2b-256 |
d37b38adc2c7a01252748279418b51b6199af10c83560b40249b20236b339f0d
|
Provenance
The following attestation bundles were made for jira2py-0.8.0.tar.gz:
Publisher:
publish.yml on en-ver/jira2py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jira2py-0.8.0.tar.gz -
Subject digest:
3b85a242a097a23c273d57beeee0799f2147318ac4a908278354056fac001ee3 - Sigstore transparency entry: 1989508362
- Sigstore integration time:
-
Permalink:
en-ver/jira2py@b66ab5aed0a6d50f893ffa9a37fef63fd8bf610a -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/en-ver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b66ab5aed0a6d50f893ffa9a37fef63fd8bf610a -
Trigger Event:
push
-
Statement type:
File details
Details for the file jira2py-0.8.0-py3-none-any.whl.
File metadata
- Download URL: jira2py-0.8.0-py3-none-any.whl
- Upload date:
- Size: 56.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
969fbb7b50e6f24153ff1352af6e26e47005f9158329e8685275563bc4dfc340
|
|
| MD5 |
a64c8a7900f1bc43dfa739c1de4b3cd2
|
|
| BLAKE2b-256 |
5703f416cad5c62d9559ec796689d5f269429fd2f0dfb57efe53da32ce05bd3b
|
Provenance
The following attestation bundles were made for jira2py-0.8.0-py3-none-any.whl:
Publisher:
publish.yml on en-ver/jira2py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jira2py-0.8.0-py3-none-any.whl -
Subject digest:
969fbb7b50e6f24153ff1352af6e26e47005f9158329e8685275563bc4dfc340 - Sigstore transparency entry: 1989508612
- Sigstore integration time:
-
Permalink:
en-ver/jira2py@b66ab5aed0a6d50f893ffa9a37fef63fd8bf610a -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/en-ver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b66ab5aed0a6d50f893ffa9a37fef63fd8bf610a -
Trigger Event:
push
-
Statement type: