bybit_p2p
is the official Python SDK for Bybit's P2P API, enabling seamless integration of your software solutions with Bybit's P2P trading platform.
- No need to implement signature (HMAC, RSA) logic yourself
- Easy & quick to work with
- Actively developed and maintained
originally developed by kolya5544
bybit_p2p currently implements all methods available for P2P API. The library is in active development, so any newly released features will be added almost immediately. Here is a short list of what the library can do:
- Create, edit, delete, activate advertisements
- Get pending orders, mark orders as paid, release assets to the buyer
- Get and send text messages, upload files and send files to the chat
- Get all public advertisements for tokens
- ...and so much more! 🌟
All features are usually one method call away and do not require advanced API understanding to interact with.
bybit_p2p uses a number of projects and technologies to work:
requests
&requests_toolbelt
for HTTP request creation and processing, as well as multiform data requestsPyCrypto
for HMAC and RSA operations
bybit_p2p
was tested on Python 3.11, but should work on all higher versions as well. The module can be installed manually or via PyPI with pip
:
pip install bybit-p2p
Upon installation, you can use bybit_p2p by importing it in your code:
from bybit_p2p import P2P
Here is a quickstart example to get some info from the exchange:
from bybit_p2p import P2P
api = P2P(
testnet=True,
api_key="x",
api_secret="x"
)
# 1. Get current balance
print(api.get_current_balance(accountType="FUND", coin="USDC"))
# 2. Get account information
print(api.get_account_information())
# 3. Get ads list
print(api.get_ads_list())
P2P()
class is used for P2P API interactions. Here, testnet
refers to environment. For Mainnet (https://bybit.com/), you shall use testnet=False
. For Testnet (https://testnet.bybit.com/), use testnet=True
instead.
RSA users should also set rsa=True
in the constructor. TR/KZ/NL/etc. users can manipulate domain
and tld
parameters, like tld="kz"
.
You can find the complete Quickstart example here: bybit_p2p quickstart.
bybit_p2p library currently consists of just one module, which is used for direct REST API requests to Bybit P2P API.
You can access P2P API documentation using this link: P2P API documentation
Here is a breakdown of how API methods correspond to appropriate bybit_p2p methods:
Advertisements:
bybit_p2p method name | P2P API method name | P2P API endpoint path |
---|---|---|
get_online_ads() | Get Ads | /v5/p2p/item/online |
post_new_ad() | Post Ad | /v5/p2p/item/create |
remove_ad() | Remove Ad | /v5/p2p/item/cancel |
update_ad() | Update / Relist Ad | /v5/p2p/item/update |
get_ads_list() | Get My Ads | /v5/p2p/item/personal/list |
get_ad_details() | Get My Ad Details | /v5/p2p/item/info |
Orders:
bybit_p2p method name | P2P API method name | P2P API endpoint path |
---|---|---|
get_orders() | Get All Orders | /v5/p2p/order/simplifyList |
get_order_details() | Get Order Details | /v5/p2p/order/info |
get_pending_orders() | Get Pending Orders | /v5/p2p/order/pending/simplifyList |
mark_as_paid() | Mark Order as Paid | /v5/p2p/order/pay |
release_assets() | Release Assets | /v5/p2p/order/finish |
send_chat_message() | Send Chat Message | /v5/p2p/order/message/send |
upload_chat_file() | Upload Chat File | /v5/p2p/oss/upload_file |
get_chat_messages() | Get Chat Message | /v5/p2p/order/message/listpage |
User:
bybit_p2p method name | P2P API method name | P2P API endpoint path |
---|---|---|
get_account_information() | Get Account Information | /v5/p2p/user/personal/info |
get_counterparty_info() | Get Counterparty User Info | /v5/p2p/user/order/personal/info |
get_user_payment_types() | Get User Payment | /v5/p2p/user/payment/list |
Misc:
bybit_p2p method name | P2P API method name | P2P API endpoint path |
---|---|---|
get_current_balance() | Get Coin Balance | /v5/asset/transfer/query-account-coins-balance |
More methods will come soon, allowing for more advanced operations.
All contributions are welcome.
MIT