atlassian-python-api


Nameatlassian-python-api JSON
Version 4.0.7 PyPI version JSON
download
home_pagehttps://github.com/atlassian-api/atlassian-python-api
SummaryPython Atlassian REST API Wrapper
upload_time2025-08-21 13:19:40
maintainerGonchik Tsymzhitov
docs_urlNone
authorMatt Harasymczuk
requires_pythonNone
licenseApache-2.0
keywords atlassian jira core software confluence bitbucket bamboo crowd portfolio tempo servicedesk assets api
VCS
bugtrack_url
requirements Deprecated requests oauthlib requests-oauthlib requests-kerberos typing-extensions jmespath beautifulsoup4 urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ============================
Atlassian Python API wrapper
============================
|Build Status| |PyPI version| |PyPI - Downloads| |License| |Codacy Badge| |Docs| |Discord|

What is it?
___________
The **atlassian-python-api** library provides a **simple** and convenient way to interact with Atlassian products
(such as Jira Service management, Jira Software, Confluence, Bitbucket and apps Insight, X-Ray) using Python.
It is based on the official REST APIs of these products, as well as additional private methods and protocols
(such as xml+rpc and raw HTTP requests).
This library can be used to automate tasks, integrate with other tools and systems,
and build custom applications that interact with Atlassian products.
It supports a wide range of Atlassian products, including Jira, Confluence, Bitbucket, StatusPage and others,
and is compatible with both Atlassian Server and Cloud instances.

Overall, the **atlassian-python-api** is a useful tool for Python developers who want to work with Atlassian products.
It is well-documented and actively maintained, and provides a convenient way to access the full range of
functionality offered by the Atlassian REST APIs and made with love for Atlassian.


Documentation
_____________

`Documentation`_

.. _Documentation: https://atlassian-python-api.readthedocs.io

How to Install?
_______________

From PyPI

.. code-block:: console

   $ pip install atlassian-python-api

From Source

- Git clone repository
- Use :code:`pip install -r requirements.txt` to install the required packages
- or :code:`pipenv install && pipenv install --dev`

Examples
________
More **examples** in :code:`examples/` directory.

Here's a short example of how to create a Confluence page:

.. code-block:: python

    from atlassian import Confluence
    import requests
    # If you want to use a session, you can create it like this:
    session =  requests.Session()
    # and pass it to the Confluence constructor
    confluence = Confluence(
        url='http://localhost:8090',
        username='admin',
        password='admin',
        session=session,)

    status = confluence.create_page(
        space='DEMO',
        title='This is the title',
        body='This is the body. You can use <strong>HTML tags</strong>!')

    print(status)

Please, note Confluence Cloud need to be used via token parameter.
And here's another example of how to get issues from Jira using JQL Query:

.. code-block:: python

    from atlassian import Jira
    import requests

    session = requests.Session()
    jira = Jira(
        url='http://localhost:8080',
        username='admin',
        password='admin',
        session=session)  # Optional: use a session for persistent connections
    JQL = 'project = DEMO AND status IN ("To Do", "In Progress") ORDER BY issuekey'
    data = jira.jql(JQL)
    print(data)

The traditional jql method is deprecated for Jira Cloud users, as Atlassian has transitioned to a nextPageToken-based pagination approach instead of startAt. Use enhanced_jql for improved performance and future compatibility.

.. code-block:: python

    from atlassian import Jira
    import requests
    session = requests.Session()
    jira = Jira(
        url='https://your-jira-instance.atlassian.net',
        username='your-email@example.com',
        password='your-api-token',
        cloud=True,  # Ensure this is set to True for Jira Cloud
        session=session  # Optional: use a session for persistent connections
    )
    JQL = 'project = DEMO AND status IN ("To Do", "In Progress") ORDER BY issuekey'
    # Fetch issues using the new enhanced_jql method
    data = jira.enhanced_jql(JQL)
    print(data)

Also, you can use the Bitbucket module e.g. for getting project list

.. code-block:: python

    from atlassian import Bitbucket
    import requests

    session= requests.Session()
    bitbucket = Bitbucket(
            url='http://localhost:7990',
            username='admin',
            password='admin',
            session=session)

    data = bitbucket.project_list()
    print(data)

Now you can use the Jira Service Desk module. See docs.
Example to get your requests:

.. code-block:: python

    from atlassian import ServiceDesk
    import requests
    sd = ServiceDesk(
            url='http://localhost:7990',
            username='admin',
            password='admin',
            session=requests.Session())

    data = sd.get_my_customer_requests()
    print(data)

Using Insight (CMDB Tool for Jira):

.. code-block:: python

    from atlassian import Insight
    import requests

    session = requests.Session()
    insight = Insight(
            url='http://localhost:7990',
            username='admin',
            password='admin',
            session=session)

    data = insight.get_object(88)
    print(data)


Using Xray (Test Management tool for Jira):

.. code-block:: python

    from atlassian import Xray
    import requests

    session = requests.Session()
    xr = Xray(
           url='http://localhost:7990',
            username='admin',
            password='admin',
            session=session)

    data = xr.get_tests('TEST-001')
    print(data)

Using Bamboo:

.. code-block:: python

    from atlassian import Bamboo
    import requests

    session = requests.Session()
    bamboo = Bamboo(
            url='http://localhost:6990/bamboo/',
            token="<TOKEN>",
            session=session)

    data = bamboo.get_elastic_configurations()
    print(data)

If you want to see the response in pretty print format JSON. Feel free for use construction like:

.. code-block:: python

    from pprint import pprint
    # you code here
    # and then print using pprint(result) instead of print(result)
    pprint(response)

How to contribute?
__________________
First of all, I am happy for any PR requests.
Let's fork and provide your changes :)
See the `Contribution Guidelines for this project`_ for details on how to make changes to this library.

.. _Contribution Guidelines for this project: CONTRIBUTING.rst
.. |Build Status| image:: https://github.com/atlassian-api/atlassian-python-api/workflows/Test/badge.svg?branch=master
   :target: https://github.com/atlassian-api/atlassian-python-api/actions?query=workflow%3ATest+branch%3Amaster
   :alt: Build status
.. |PyPI version| image:: https://badge.fury.io/py/atlassian-python-api.svg
   :target: https://badge.fury.io/py/atlassian-python-api
   :alt: PyPI version
.. |License| image:: https://img.shields.io/pypi/l/atlassian-python-api.svg
   :target: https://pypi.python.org/pypi/atlassian-python-api
   :alt: License
.. |Codacy Badge| image:: https://app.codacy.com/project/badge/Grade/2cca43995cf041b8b181e2b2ff04cee6
   :target: https://app.codacy.com/gh/atlassian-api/atlassian-python-api/dashboard
   :alt: Codacy Badge
.. |PyPI - Downloads| image:: https://static.pepy.tech/badge/atlassian-python-api/month
   :alt: PyPI - Downloads
.. |Docs| image:: https://readthedocs.org/projects/atlassian-python-api/badge/?version=latest
   :target: https://atlassian-python-api.readthedocs.io/?badge=latest
   :alt: Documentation Status
.. |Discord| image:: https://img.shields.io/discord/756142204761669743.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2
   :alt: Discord Chat
   :target: https://discord.gg/FCJsvqh


Credits
_______
In addition to all the contributors we would like to thank these vendors:

* Atlassian_ for developing such a powerful ecosystem.
* JetBrains_ for providing us with free licenses of PyCharm_
* Microsoft_ for providing us with free licenses of VSCode_
* GitHub_ for hosting our repository and continuous integration

.. _Atlassian: https://www.atlassian.com/
.. _JetBrains: http://www.jetbrains.com
.. _PyCharm: http://www.jetbrains.com/pycharm/
.. _GitHub: https://github.com/
.. _Microsoft: https://github.com/Microsoft/vscode/
.. _VSCode: https://code.visualstudio.com/

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/atlassian-api/atlassian-python-api",
    "name": "atlassian-python-api",
    "maintainer": "Gonchik Tsymzhitov",
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": "gonchik.tsymzhitov@gmail.com",
    "keywords": "atlassian jira core software confluence bitbucket bamboo crowd portfolio tempo servicedesk assets api",
    "author": "Matt Harasymczuk",
    "author_email": "matt@astrotech.io",
    "download_url": "https://files.pythonhosted.org/packages/40/e8/f23b7273e410c6fe9f98f9db25268c6736572f22a9566d1dc9ed3614bb68/atlassian_python_api-4.0.7.tar.gz",
    "platform": "Platform Independent",
    "description": "============================\nAtlassian Python API wrapper\n============================\n|Build Status| |PyPI version| |PyPI - Downloads| |License| |Codacy Badge| |Docs| |Discord|\n\nWhat is it?\n___________\nThe **atlassian-python-api** library provides a **simple** and convenient way to interact with Atlassian products\n(such as Jira Service management, Jira Software, Confluence, Bitbucket and apps Insight, X-Ray) using Python.\nIt is based on the official REST APIs of these products, as well as additional private methods and protocols\n(such as xml+rpc and raw HTTP requests).\nThis library can be used to automate tasks, integrate with other tools and systems,\nand build custom applications that interact with Atlassian products.\nIt supports a wide range of Atlassian products, including Jira, Confluence, Bitbucket, StatusPage and others,\nand is compatible with both Atlassian Server and Cloud instances.\n\nOverall, the **atlassian-python-api** is a useful tool for Python developers who want to work with Atlassian products.\nIt is well-documented and actively maintained, and provides a convenient way to access the full range of\nfunctionality offered by the Atlassian REST APIs and made with love for Atlassian.\n\n\nDocumentation\n_____________\n\n`Documentation`_\n\n.. _Documentation: https://atlassian-python-api.readthedocs.io\n\nHow to Install?\n_______________\n\nFrom PyPI\n\n.. code-block:: console\n\n   $ pip install atlassian-python-api\n\nFrom Source\n\n- Git clone repository\n- Use :code:`pip install -r requirements.txt` to install the required packages\n- or :code:`pipenv install && pipenv install --dev`\n\nExamples\n________\nMore **examples** in :code:`examples/` directory.\n\nHere's a short example of how to create a Confluence page:\n\n.. code-block:: python\n\n    from atlassian import Confluence\n    import requests\n    # If you want to use a session, you can create it like this:\n    session =  requests.Session()\n    # and pass it to the Confluence constructor\n    confluence = Confluence(\n        url='http://localhost:8090',\n        username='admin',\n        password='admin',\n        session=session,)\n\n    status = confluence.create_page(\n        space='DEMO',\n        title='This is the title',\n        body='This is the body. You can use <strong>HTML tags</strong>!')\n\n    print(status)\n\nPlease, note Confluence Cloud need to be used via token parameter.\nAnd here's another example of how to get issues from Jira using JQL Query:\n\n.. code-block:: python\n\n    from atlassian import Jira\n    import requests\n\n    session = requests.Session()\n    jira = Jira(\n        url='http://localhost:8080',\n        username='admin',\n        password='admin',\n        session=session)  # Optional: use a session for persistent connections\n    JQL = 'project = DEMO AND status IN (\"To Do\", \"In Progress\") ORDER BY issuekey'\n    data = jira.jql(JQL)\n    print(data)\n\nThe traditional jql method is deprecated for Jira Cloud users, as Atlassian has transitioned to a nextPageToken-based pagination approach instead of startAt. Use enhanced_jql for improved performance and future compatibility.\n\n.. code-block:: python\n\n    from atlassian import Jira\n    import requests\n    session = requests.Session()\n    jira = Jira(\n        url='https://your-jira-instance.atlassian.net',\n        username='your-email@example.com',\n        password='your-api-token',\n        cloud=True,  # Ensure this is set to True for Jira Cloud\n        session=session  # Optional: use a session for persistent connections\n    )\n    JQL = 'project = DEMO AND status IN (\"To Do\", \"In Progress\") ORDER BY issuekey'\n    # Fetch issues using the new enhanced_jql method\n    data = jira.enhanced_jql(JQL)\n    print(data)\n\nAlso, you can use the Bitbucket module e.g. for getting project list\n\n.. code-block:: python\n\n    from atlassian import Bitbucket\n    import requests\n\n    session= requests.Session()\n    bitbucket = Bitbucket(\n            url='http://localhost:7990',\n            username='admin',\n            password='admin',\n            session=session)\n\n    data = bitbucket.project_list()\n    print(data)\n\nNow you can use the Jira Service Desk module. See docs.\nExample to get your requests:\n\n.. code-block:: python\n\n    from atlassian import ServiceDesk\n    import requests\n    sd = ServiceDesk(\n            url='http://localhost:7990',\n            username='admin',\n            password='admin',\n            session=requests.Session())\n\n    data = sd.get_my_customer_requests()\n    print(data)\n\nUsing Insight (CMDB Tool for Jira):\n\n.. code-block:: python\n\n    from atlassian import Insight\n    import requests\n\n    session = requests.Session()\n    insight = Insight(\n            url='http://localhost:7990',\n            username='admin',\n            password='admin',\n            session=session)\n\n    data = insight.get_object(88)\n    print(data)\n\n\nUsing Xray (Test Management tool for Jira):\n\n.. code-block:: python\n\n    from atlassian import Xray\n    import requests\n\n    session = requests.Session()\n    xr = Xray(\n           url='http://localhost:7990',\n            username='admin',\n            password='admin',\n            session=session)\n\n    data = xr.get_tests('TEST-001')\n    print(data)\n\nUsing Bamboo:\n\n.. code-block:: python\n\n    from atlassian import Bamboo\n    import requests\n\n    session = requests.Session()\n    bamboo = Bamboo(\n            url='http://localhost:6990/bamboo/',\n            token=\"<TOKEN>\",\n            session=session)\n\n    data = bamboo.get_elastic_configurations()\n    print(data)\n\nIf you want to see the response in pretty print format JSON. Feel free for use construction like:\n\n.. code-block:: python\n\n    from pprint import pprint\n    # you code here\n    # and then print using pprint(result) instead of print(result)\n    pprint(response)\n\nHow to contribute?\n__________________\nFirst of all, I am happy for any PR requests.\nLet's fork and provide your changes :)\nSee the `Contribution Guidelines for this project`_ for details on how to make changes to this library.\n\n.. _Contribution Guidelines for this project: CONTRIBUTING.rst\n.. |Build Status| image:: https://github.com/atlassian-api/atlassian-python-api/workflows/Test/badge.svg?branch=master\n   :target: https://github.com/atlassian-api/atlassian-python-api/actions?query=workflow%3ATest+branch%3Amaster\n   :alt: Build status\n.. |PyPI version| image:: https://badge.fury.io/py/atlassian-python-api.svg\n   :target: https://badge.fury.io/py/atlassian-python-api\n   :alt: PyPI version\n.. |License| image:: https://img.shields.io/pypi/l/atlassian-python-api.svg\n   :target: https://pypi.python.org/pypi/atlassian-python-api\n   :alt: License\n.. |Codacy Badge| image:: https://app.codacy.com/project/badge/Grade/2cca43995cf041b8b181e2b2ff04cee6\n   :target: https://app.codacy.com/gh/atlassian-api/atlassian-python-api/dashboard\n   :alt: Codacy Badge\n.. |PyPI - Downloads| image:: https://static.pepy.tech/badge/atlassian-python-api/month\n   :alt: PyPI - Downloads\n.. |Docs| image:: https://readthedocs.org/projects/atlassian-python-api/badge/?version=latest\n   :target: https://atlassian-python-api.readthedocs.io/?badge=latest\n   :alt: Documentation Status\n.. |Discord| image:: https://img.shields.io/discord/756142204761669743.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2\n   :alt: Discord Chat\n   :target: https://discord.gg/FCJsvqh\n\n\nCredits\n_______\nIn addition to all the contributors we would like to thank these vendors:\n\n* Atlassian_ for developing such a powerful ecosystem.\n* JetBrains_ for providing us with free licenses of PyCharm_\n* Microsoft_ for providing us with free licenses of VSCode_\n* GitHub_ for hosting our repository and continuous integration\n\n.. _Atlassian: https://www.atlassian.com/\n.. _JetBrains: http://www.jetbrains.com\n.. _PyCharm: http://www.jetbrains.com/pycharm/\n.. _GitHub: https://github.com/\n.. _Microsoft: https://github.com/Microsoft/vscode/\n.. _VSCode: https://code.visualstudio.com/\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Python Atlassian REST API Wrapper",
    "version": "4.0.7",
    "project_urls": {
        "Download": "https://github.com/atlassian-api/atlassian-python-api",
        "Homepage": "https://github.com/atlassian-api/atlassian-python-api"
    },
    "split_keywords": [
        "atlassian",
        "jira",
        "core",
        "software",
        "confluence",
        "bitbucket",
        "bamboo",
        "crowd",
        "portfolio",
        "tempo",
        "servicedesk",
        "assets",
        "api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d83e4f9976ce3c933a079b8931325e7a9c0a8bba7030a2cb85764c0048f3479",
                "md5": "4c160e4b908e1465f63f2d8cce2279b5",
                "sha256": "46a70cb29eaab87c0a1697fccd3e25df1aa477e6aa4fb9ba936a9d46b425933c"
            },
            "downloads": -1,
            "filename": "atlassian_python_api-4.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4c160e4b908e1465f63f2d8cce2279b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 197746,
            "upload_time": "2025-08-21T13:19:39",
            "upload_time_iso_8601": "2025-08-21T13:19:39.044086Z",
            "url": "https://files.pythonhosted.org/packages/1d/83/e4f9976ce3c933a079b8931325e7a9c0a8bba7030a2cb85764c0048f3479/atlassian_python_api-4.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40e8f23b7273e410c6fe9f98f9db25268c6736572f22a9566d1dc9ed3614bb68",
                "md5": "02f50a1c00b19d3d751309ad6dd7f78c",
                "sha256": "8d9cc6068b1d2a48eb434e22e57f6bbd918a47fac9e46b95b7a3cefb00fceacb"
            },
            "downloads": -1,
            "filename": "atlassian_python_api-4.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "02f50a1c00b19d3d751309ad6dd7f78c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 271149,
            "upload_time": "2025-08-21T13:19:40",
            "upload_time_iso_8601": "2025-08-21T13:19:40.746284Z",
            "url": "https://files.pythonhosted.org/packages/40/e8/f23b7273e410c6fe9f98f9db25268c6736572f22a9566d1dc9ed3614bb68/atlassian_python_api-4.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-21 13:19:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "atlassian-api",
    "github_project": "atlassian-python-api",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "Deprecated",
            "specs": []
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.8.1"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": []
        },
        {
            "name": "requests-oauthlib",
            "specs": []
        },
        {
            "name": "requests-kerberos",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": []
        },
        {
            "name": "jmespath",
            "specs": []
        },
        {
            "name": "beautifulsoup4",
            "specs": []
        },
        {
            "name": "urllib3",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "atlassian-python-api"
}
        
Elapsed time: 1.46493s