Unofficial Tabdeal API

🛑 Project No Longer Maintained

As of 28/07/2025, development on this project has been discontinued. Despite multiple attempts to contact the Tabdeal platform for collaboration and feedback, I have not received any response. Therefore, no further updates or maintenance will be provided.

Package

PyPI Status Python Version Poetry Release to PyPI status PyPI - Implementation PyPI - Wheel Pydantic

Quality Assurance

SonarQube Quality Gate SonarQube Reliability Rating SonarQube Maintainability Rating SonarQube Technical Debt SonarQube Bugs SonarQube Code Smells

Stats

Contributors Stars GitHub Issues GitHub Pull Requests SonarQube Lines of Code Repository Size

Tests

Nox CodSpeed pre-commit.ci status PyPI - Types Coverage status OpenSSF Scorecard

Security

Analyzed with Synk SonarQube Security Rating SonarQube Vulnerabilities Open Source Security Foundation Best Practices Badge

Linters

Ruff pre-commit MegaLinter status Checked with MyPy Linting with Pylint

Activity

No Maintenance Intended GitHub commit activity Total Downloads

Misc

Contributor Covenant Digital Object Identifier Skeleton

Documentation

Documentation Status

License

License

🧭 Project overview

Unofficial Tabdeal API is a modern, fully asynchronous Python wrapper for the Tabdeal cryptocurrency trading platform. Built from the ground up to replace the outdated and limited official package, this library leverages Tabdeal’s new backend API to offer safer and developer-friendly access to all available features.

This package supports both public and private endpoints ( such as placing orders, fetching balances, and managing trades ) and is designed with clarity, security, and performance in mind, therefore, ideal for developers and algo traders who need reliable, complete, and secure access to Tabdeal’s trading features.

✅ Key features

  • 🚀 Async-first: Designed to work efficiently in modern Python async environments.

  • 🛡️ Safer interface: Raises clear, informative exceptions instead of vague errors.

  • 🔧 Complete coverage: Aims to support all endpoints exposed by the new Tabdeal API.

  • 🧪 Fully typed: Clean type hints across the codebase for better IDE support and readability.

  • ✔️ Unit tested: Each function is tested to ensure reliability and correct behavior.

  • 🧹 Linted and secure: Codebase follows modern Python best practices with multiple linters and security checks.

🛠️ Technical overview

This package uses the website backend to communicate with the Tabdeal platform (https://api-web.tabdeal.org) rather than the original API at (https://api1.tabdeal.org/api/v1).

This enables more stable and reliable access to Tabdeal’s features, as the new backend is designed to be more robust and feature-rich.

There are also exclusive features that aren’t available in the original API, such as setting stop loss/take profit points and 60x margin leverage.

🧰 Tech stack

  • aiohttp 3.12.14 : Asynchronous HTTP client for Python, used for making API requests.

  • pydantic 2.9.2 : Data validation using Python type annotations.

🏁 Getting started

📋 Prerequisites

You need Authorization key and user-hash to use this package.

To obtain these credentials, follow these steps:

  1. On a computer, open your internet browser and log-in to Tabdeal website

  2. Navigate to settings page

  3. Press F12 to open Developer tools

  4. Navigate to Network panel

  5. Refresh the website page and the network section should populate with many entries

  6. Find the entry with wallet/ name

  7. Select it and in Headers section, under Request Headers, you should find them

📦 Installation

You can install unofficial tabdeal api via pip from PyPI, requirements will be met automatically:

pip install unofficial-tabdeal-api

⚙️ Usage

  1. Import TabdealClient from the package.

  2. Initialize the TabdealClient with your Authorization key and user-hash information

  3. Run your desired commands

# Import TabdealClient
from unofficial_tabdeal_api import TabdealClient

async def main():

    # Initialize a TabdealClient object
    my_client: TabdealClient = TabdealClient(USER_HASH, USER_AUTHORIZATION_KEY)

    # Run your desired commands, remember to `await` the methods as all of them (except a few) are asynchronous
    bomeusdt_asset_id = await my_client.get_margin_asset_id("BOMEUSDT")

Learn more in the Documentation.

🐛 Issues

If you encounter any problems, please file an issue along with a detailed description.

⚖️ License

Distributed under the terms of the MIT license, unofficial tabdeal api is free and open source software.

🤝 Contributing

Any contributions to this project are highly valued and appreciated. For detailed guidelines on how to contribute, please refer to the Contributor Guide.

🌟 Credits

This project was created with the help of @cjolowicz’s Hypermodern Python Cookiecutter template and @fpgmaas’s Cookiecutter Poetry template.