A simple Python API wrapper for DEXTools
Project description
DEXTools Python
A simple Python API wrapper for DEXTools. Supports Dextools API v1 and Dextools API v2
- Installation
- Obtaining API Key
- Getting Started
- Version 1 Queries
- Version 2 Queries
- Blockchain
- Exchange
- Pool
- Token
- Get token
- Get token locks
- Get token score
- Get token info
- Get token price
- Get tokens
- Get tokens sorted by
creationBlock
and descending order and providing block numbers instead in descending order - Get tokens sorted by
socialsInfoUpdated
and descending order and datetimes in descending order - Get token pools
- Get token pools sorted by
creationBlock
and descending order and providing block numbers instead in descending order
- Rankings
- Page and PageSize arguments
- Asynchronous support with asyncio
- Examples
- Testing
- Supported Blockchains
- Authors
- More information
Installation
pip install dextools-python
Obtaining API Key
To obtain an API key, head to the Developer Portal and choose your plan.
Getting Started
There are 2 versions of the Dextools API. Dextools API v1 and Dextools API v2
Version 1
To get started, import the package, and initiate a DextoolsAPI
instance object by passing your API key:
from dextools_python import DextoolsAPI
dextools = DextoolsAPI(api_key)
You can also pass an optional user agent:
dextools = DextoolsAPI(api_key, useragent="User-Agent")
Version 2
To get started, import the package, and initiate a DextoolsAPIV2
instance object by passing your API key and your plan:
from dextools_python import DextoolsAPIV2
dextools = DextoolsAPIV2(api_key, plan="trial")
You can also pass an optional user agent:
dextools = DextoolsAPIV2(api_key, useragent="User-Agent", plan="trial")
If you don't specify any plan when instantiating the object, it will default to "partner" plan
Available plans - Setting your plan
You can setup your plan when setting the object instance by providing the plan
argument in the constructor. If no plan
is specified, it will default to "partner" plan
To set your plan after the object is created, you can use the set_plan("your_plan")
method
dextools.set_plan("standard")
Available values: "free"
, "trial"
, "standard"
, "advanced"
, "pro"
, and "partner"
Version 1 Queries
Below are a set of queries supported by the Dextools API v1. All data is returned as a Python dictionary for easy data handling.
Get pairs of a token
To get the pairs of a token, pass a chain id
and a pair address
:
pair = dextools.get_pair("ether", "0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d")
print(pair)
Get token details
To get token details, pass a chain id
, and a token address
:
token = dextools.get_token("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token)
You can also pass the page
and pageSize
parameters:
token = dextools.get_token("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a", 1, 50)
print(token)
Get chain list
To get the chain list:
chain_list = dextools.get_chain_list()
print(chain_list)
You can also pass the page
and pageSize
parameters:
chain_list = dextools.get_chain_list(1, 50)
print(chain_list)
Get exchange list
To get the exchange list, pass a chain id
:
exchange_list = dextools.get_exchange_list("ether")
print(exchange_list)
You can also pass the page
and pageSize
parameters:
exchange_list = dextools.get_exchange_list("ether", 1, 50)
print(exchange_list)
Version 2 Queries
Below are a set of queries supported by the Dextools API v2. All data is returned as a Python dictionary for easy data handling.
Blockchain
Get blockchain info
blockchain = dextools.get_blockchain("ether")
print(blockchain)
Get blockchains sorted by default settings
blockchains = dextools.get_blockchains()
print(blockchains)
Get blockchains sorted by default settings and descending order
blockchains = dextools.get_blockchains(sort="name", order="desc")
print(blockchains)
Exchange
Get dex factory info
factory = dextools.get_dex_factory_info("ether", "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f")
print(factory)
Get dexes on a specific chain
dexes = dextools.get_dexes("ether")
print(dexes)
Get dexes on a specific chain sorted by name and descending order
dexes = dextools.get_dexes("ether", sort="creationBlock", order="desc")
print(dexes)
Pool
Get pool info
pool = dextools.get_pool("ether", "0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d")
print(pool)
Get pool liquidity
pool_liquidity = dextools.get_pool_liquidity("ether", "0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d")
print(pool_liquidity)
Get pool score
pool_score = dextools.get_pool_score("ether", "0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d")
print(pool_score)
Get pool price
pool_price = dextools.get_pool_price("ether", "0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d")
print(pool_price)
Get pools
pools = dextools.get_pools("ether", from_="2023-11-14T19:00:00", to="2023-11-14T23:00:00")
print(pools)
Get pools sorted by creationBlock
and descending order and providing block numbers instead
pools = dextools.get_pools("ether", from_="12755070", to="12755071", sort="creationBlock", order="desc")
print(pools)
Token
Get token
token = dextools.get_token("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token)
Get token locks
token_locks = dextools.get_token_locks("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token_locks)
Get token score
token_score = dextools.get_token_score("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token_score)
Get token info
token_info = dextools.get_token_info("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token_info)
Get token price
token_price = dextools.get_token_price("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a")
print(token_price)
Get tokens
tokens = dextools.get_tokens("ether", from_="2023-11-14T19:00:00", to="2023-11-14T23:00:00")
print(tokens)
Get tokens sorted by creationBlock
and descending order and providing block numbers instead in descending order
tokens = dextools.get_tokens("ether", from_="18570000", to="18570500", sort="creationBlock", order="desc")
print(tokens)
Get tokens sorted by socialsInfoUpdated
and descending order and datetimes in descending order
tokens = dextools.get_tokens("ether", from_="2023-11-14T19:00:00", to="2023-11-14T23:00:00", sort="socialsInfoUpdated", order="desc")
print(tokens)
Get token pools
token_pools = dextools.get_token_pools("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a", from_="2023-11-14T19:00:00", to="2023-11-14T23:00:00")
print(token_pools)
Get token pools sorted by creationBlock
and descending order and providing block numbers instead in descending order
token_pools = dextools.get_token_pools("ether", "0xfb7b4564402e5500db5bb6d63ae671302777c75a", from_="18570000", to="18570500", sort="creationBlock", order="desc")
print(token_pools)
Rankings
Get hot pools
hot_pools = dextools.get_ranking_hotpools("ether")
print(hot_pools)
Get gainers
gainers = dextools.get_ranking_gainers("ether")
print(gainers)
Get losers
losers = dextools.get_ranking_losers("ether")
print(losers)
Page and PageSize arguments
Some methods support the page
and pageSize
arguments. Check out the API documentation for more information.
Asynchronous support with asyncio
Asynchronous support has been added through asyncio.
You can initiate an AsyncDextoolsAPI
instance for API version 1, or an AsyncDextoolsAPIV2
instance for API version 2.
Through a context manager (session will close automatically when the context manager ends):
import asyncio
from dextools_python import AsyncDextoolsAPIV2
api_key = "YOUR_API_KEY"
async def main():
async with AsyncDextoolsAPIV2(api_key, plan="partner") as dextools:
response = await dextools.get_blockchains()
print(response)
asyncio.run(main())
Creating an instance and then closing the session explicitly at the end:
import asyncio
from dextools_python import AsyncDextoolsAPIV2
api_key = "YOUR_API_KEY"
async def main():
dextools = AsyncDextoolsAPIV2(api_key, plan="partner")
response = await dextools.get_blockchains()
print(response)
await dextools.close()
asyncio.run(main())
Examples
Check out the examples
folder for some synchronous and asynchronous example scripts.
Testing
A set of tests have been included inside tests
folder. You will need to set an environment variable as DextoolsAPIKey
using your API key.
Supported Blockchains
Dextools adds support for new blockchains from time to time. dextools.get_blockchains()
to get a list of supported blockchains and their IDs
Authors
More information
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dextools_python-0.3.1.tar.gz
.
File metadata
- Download URL: dextools_python-0.3.1.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78c478e2512353472000544c38a8c9e892100aa8b390628cff5d52de006f0214 |
|
MD5 | f12b932222632e28c0d8341ad4cdbe37 |
|
BLAKE2b-256 | 05d0a71392864b7e13de0afcfbf1025557a8d45c85d64d0a003df187117b435a |
File details
Details for the file dextools_python-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: dextools_python-0.3.1-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95cfc396b1fd1e342e719db319ab0d6de8c06de6b9e422df1cf7ed24fb01539d |
|
MD5 | 141b3c42cb904e26a3398010120d1eb3 |
|
BLAKE2b-256 | 1bfc3a6e525363735e55b7a8b6cf4c4869dd436bbd9901063f4e947897b378ab |