Skip to main content

YaTracker

Asyncio Yandex Tracker API client

Python Code linter: ruff Checked with mypy Linters Tests Coverage

Documentation: https://olegt0rr.github.io/YaTracker/

API docs: https://yandex.cloud/en/docs/tracker/about-api

Features

  • Fully asynchronous, built on aiohttp — no blocking calls, no threads.
  • Responses are parsed into pydantic v2 models, with datetime fields already converted.
  • Typed end to end: @overloads keep your own issue/queue models flowing through the return types.
  • Supports both Yandex 360 (X-Org-ID + OAuth) and Yandex Cloud (X-Cloud-Org-ID + IAM) organizations.
  • Covers issues, queues, components, projects (both the legacy /projects API and the entities API behind projects, portfolios and goals), macros, boards (including columns and sprints), comments, checklists, worklogs, attachments, priorities, bulk changes, external applications and remote links, and import of issues, comments, links and attachments.
  • Local (custom) queue fields are supported via your own model subclasses.
  • Pluggable transport: swap aiohttp for any client by subclassing BaseClient.

Attention!

  • All self properties are renamed to url, because self is a reserved name in Python. A url= keyword argument is sent to the API as url; models embedded in a request body keep the API's self key.
  • All camelCase properties are renamed to pythonic_case.
  • All datetime values are converted to Python datetime.datetime objects.
  • Methods are named by the author, because the Yandex API has no clear method names.

How to install

pip install yatracker

How to use

from yatracker import YaTracker

tracker = YaTracker(org_id=..., token=...)


async def foo():
    # create an issue
    issue = await tracker.create_issue("New Issue", "KEY")

    # get an issue
    issue = await tracker.get_issue("KEY-1")

    # update an issue (just pass kwargs)
    issue = await tracker.edit_issue("KEY-1", description="Hello World")

    # get transitions (a dict keyed by transition id)
    transitions = await issue.get_transitions()

    # execute a transition
    close = transitions.get("close")
    if close is not None:
        await close.execute()
# don't forget to close tracker on app shutdown
async def on_shutdown():
    await tracker.close()

YaTracker is also an async context manager, which closes the session for you:

async with YaTracker(org_id=..., token=...) as tracker:
    issue = await tracker.get_issue("KEY-1")

Organizations and tokens

Pass exactly one organization id and exactly one token.

# Yandex 360 organization (sends `X-Org-ID`) with an OAuth token
tracker = YaTracker(org_id=..., token=...)

# Yandex Cloud organization (sends `X-Cloud-Org-ID`) with an IAM token
tracker = YaTracker(cloud_org_id=..., iam_token=...)

org_id and cloud_org_id are mutually exclusive, so are token and iam_token. API v3 is used by default, v2 is still available via YaTracker(..., api_version="v2").

Error handling

Every response with a status of 300 or above is raised as a YaTrackerError subclass:

from yatracker.exceptions import ObjectNotFoundError, YaTrackerError

try:
    issue = await tracker.get_issue("KEY-1")
except ObjectNotFoundError:
    ...  # 404: wrong id or key
except YaTrackerError as e:
    ...  # anything else the API rejected

NotAuthorizedError (401), SufficientRightsError (403), ObjectNotFoundError (404) and AlreadyExistsError (409) are the specialised cases; any other status raises the base YaTrackerError with the response body as its message.

See the error handling guide for details.

More

Download files

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

Source Distribution

yatracker-2026.9.0.tar.gz (148.6 kB view details)

Uploaded Source

Built Distribution

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

yatracker-2026.9.0-py3-none-any.whl (75.1 kB view details)

Uploaded Python 3

File details

Details for the file yatracker-2026.9.0.tar.gz.

File metadata

  • Download URL: yatracker-2026.9.0.tar.gz
  • Upload date:
  • Size: 148.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yatracker-2026.9.0.tar.gz
Algorithm Hash digest
SHA256 23bbcebbfad6cebbfe6d675816905333d7ff1b3866f39a3b109e80490675d358
MD5 9ba794a3425d09e9bf2bef366a2d847c
BLAKE2b-256 a636ffb4898c3dfc3361f86599ed8f9b04160bd78e8b44772ee057fda752eb61

See more details on using hashes here.

Provenance

The following attestation bundles were made for yatracker-2026.9.0.tar.gz:

Publisher: publish.yml on Olegt0rr/YaTracker

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

File details

Details for the file yatracker-2026.9.0-py3-none-any.whl.

File metadata

  • Download URL: yatracker-2026.9.0-py3-none-any.whl
  • Upload date:
  • Size: 75.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yatracker-2026.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65c1c063cbf9877abbe3eaa16de454fa605605d6370441685c0317127600a4c9
MD5 d32a80d6860c5833578ceccc15667b9c
BLAKE2b-256 bb1eb291aed00711160a0ac39098581afb4e0c05b78e1249d2b03482c754e358

See more details on using hashes here.

Provenance

The following attestation bundles were made for yatracker-2026.9.0-py3-none-any.whl:

Publisher: publish.yml on Olegt0rr/YaTracker

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

Release history Release notifications | RSS feed

This release

2026.9.0 This release

2 files

2024.4.2

2 files

2024.4.1

2 files

2023.10.4

2 files

2023.10.3

2 files

2023.10.1

2 files

2023.9.3

2 files

2023.9.2

2 files

2023.8.7

2 files

2023.8.6

2 files

2023.8.4

2 files

2023.8.3

2 files

2023.8.1

2 files

2021.7.2

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page