Skip to main content

The Python library to interact with Atlassian Jira REST API

Project description

jira2py

PyPI version Python versions License: MIT

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 readable HelperResult objects 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

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jira2py-0.8.0.tar.gz (66.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jira2py-0.8.0-py3-none-any.whl (56.8 kB view details)

Uploaded Python 3

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

Hashes for jira2py-0.8.0.tar.gz
Algorithm Hash digest
SHA256 3b85a242a097a23c273d57beeee0799f2147318ac4a908278354056fac001ee3
MD5 2a0b6ee097fc392c5c9066a892108d82
BLAKE2b-256 d37b38adc2c7a01252748279418b51b6199af10c83560b40249b20236b339f0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jira2py-0.8.0.tar.gz:

Publisher: publish.yml on en-ver/jira2py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for jira2py-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 969fbb7b50e6f24153ff1352af6e26e47005f9158329e8685275563bc4dfc340
MD5 a64c8a7900f1bc43dfa739c1de4b3cd2
BLAKE2b-256 5703f416cad5c62d9559ec796689d5f269429fd2f0dfb57efe53da32ce05bd3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for jira2py-0.8.0-py3-none-any.whl:

Publisher: publish.yml on en-ver/jira2py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page