/dextools-python

A simple Python API wrapper for DEXTools

Primary LanguagePythonMIT LicenseMIT

DEXTools Python

Python application Downloads License: MIT PyPI

A simple Python API wrapper for DEXTools. Supports Dextools API v1 and Dextools API v2

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="free")

You can also pass an optional user agent:

dextools = DextoolsAPIV2(api_key, useragent="User-Agent", plan="free")

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", "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 Dextools API v2 documentation for more information.

Examples

Check out the examples folder for some 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