https://github.com/dineshpinto/geckoterminal-api
Lightweight Python wrapper for GeckoTerminal DeFi & DeX aggregator.
https://github.com/dineshpinto/geckoterminal-api
async coingecko cryptocurrency ethereum geckoterminal python solana
Last synced: 2 months ago
JSON representation
Lightweight Python wrapper for GeckoTerminal DeFi & DeX aggregator.
- Host: GitHub
- URL: https://github.com/dineshpinto/geckoterminal-api
- Owner: dineshpinto
- License: mit
- Created: 2023-12-23T19:17:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-14T08:04:38.000Z (6 months ago)
- Last Synced: 2025-04-09T16:04:52.828Z (2 months ago)
- Topics: async, coingecko, cryptocurrency, ethereum, geckoterminal, python, solana
- Language: Python
- Homepage: https://pypi.org/project/geckoterminal-api/
- Size: 270 KB
- Stars: 38
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://pypi.python.org/pypi/geckoterminal-api/)
[](https://pepy.tech/project/geckoterminal-api)
[](https://www.python.org/downloads/release/python-3120/)
[](https://codecov.io/gh/dineshpinto/geckoterminal-api)
[](https://github.com/dineshpinto/geckoterminal-api/actions/workflows/unittests.yml)# GeckoTerminal API
A lightweight Python wrapper for the [GeckoTerminal](https://www.geckoterminal.com) DeFi & DeX aggregator, supporting 90+ chains and 500+ DEXs.
## Key Features
- **Market Data**: Fetch price, volume, and historical charts for any token.
- **Pool Discovery**: Identify pools trading a specific token.
- **Candlestick Charts**: Generate OHLCV-based candlestick charts.
- **Sync/Async support:** Supports both synchronous and asynchronous API.> **Note:** The API is currently in beta and subject to change. Please report issues.
## Installation
```bash
pip install geckoterminal-api
```## Documentation
Refer to the official [GeckoTerminal API docs](https://www.geckoterminal.com/dex-api) for detailed information.
## Quickstart
### Synchronous API Example
```python
from geckoterminal_api import GeckoTerminalAPIgt = GeckoTerminalAPI()
# Fetch supported networks and their IDs
gt.networks()
```### Asynchronous API Example
```python
import asyncio
from geckoterminal_api import AsyncGeckoTerminalAPIagt = AsyncGeckoTerminalAPI()
# Fetch supported networks and their IDs
asyncio.run(agt.networks())
```## Usage Examples
### Fetch Trades for a Specific Pool
```python
# Query $ANALOS pool on Solana
trades = gt.network_pool_trades(network="solana", pool="69grLw4PcSypZnn3xpsozCJFT8vs8WA5817VUVnzNGTh")for trade_data in trades["data"]:
trade = trade_data["attributes"]
print(f'{trade["block_timestamp"]} -- {trade["kind"]}: {float(trade["volume_in_usd"]):.2f} USD')
```_(truncated output)_
```text
2023-12-27T08:27:24Z -- buy: 0.06 USD
2023-12-27T08:27:22Z -- buy: 54.73 USD
2023-12-27T08:27:22Z -- sell: 43.11 USD
2023-12-27T08:27:22Z -- sell: 105.08 USD
2023-12-27T08:27:20Z -- sell: 552.80 USD
2023-12-27T08:27:17Z -- buy: 1116.88 USD
2023-12-27T08:27:14Z -- sell: 1110.02 USD
2023-12-27T08:27:12Z -- buy: 52.44 USD
2023-12-27T08:27:02Z -- buy: 41.72 USD
2023-12-27T08:26:59Z -- sell: 15.31 USD
```### Discover Trending Pools
```python
# Trending pools on Solana
trending_pools = gt.network_trending_pools(network="solana")
print(trending_pools)
```_(truncated output)_
```json
{
"id": "solana_EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx",
"type": "pool",
"attributes": {
"base_token_price_usd": "0.216341",
"address": "EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx",
"name": "$WIF / SOL",
"fdv_usd": "214518552",
"market_cap_usd": "201410163.369506",
"price_change_percentage": {
"h1": "2.75",
"h24": "-11.76"
},
"transactions": {
"h1": {
"buys": 1143,
"sells": 494,
"buyers": 282,
"sellers": 249
},
"h24": {
"buys": 33874,
"sells": 21413,
"buyers": 6790,
"sellers": 5363
}
},
"volume_usd": {
"h1": "782023.141511",
"h24": "41413570.131944"
}
}
}
```### Discover New Pools
```python
# New pools on Arbitrum
new_pools = gt.network_new_pools(network="arbitrum")
print(new_pools)
```_(truncated output)_
```json
{
"id": "arbitrum_0x9405117878d3a7ff7968b3d6f322bf428c168ca7",
"type": "pool",
"attributes": {
"base_token_price_usd": "0.000463649357219151",
"address": "0x9405117878d3a7ff7968b3d6f322bf428c168ca7",
"name": "JUPITER / WETH",
"pool_created_at": "2023-12-23T22:19:36Z",
"fdv_usd": "9736.64",
"price_change_percentage": {
"h1": "55.09",
"h24": "55.09"
},
"transactions": {
"h1": {
"buys": 24,
"sells": 4,
"buyers": 24,
"sellers": 4
},
"h24": {
"buys": 24,
"sells": 4,
"buyers": 24,
"sellers": 4
}
},
"volume_usd": {
"h1": "3191.9671827550049",
"h24": "3191.9671827550049"
},
"reserve_in_usd": "14348.4777"
}
}
```_and many more..._
## Proxy Support
### Synchronous API Proxy Setup
```python
from geckoterminal_api import GeckoTerminalAPIproxies = {
'http': 'http://10.10.10.10:8000',
'https': 'http://10.10.10.10:8000',
}
gt = GeckoTerminalAPI(proxies=proxies)
```### Asynchronous API Proxy Setup
```python
from geckoterminal_api import AsyncGeckoTerminalAPIproxy = "http://proxy.com"
agt = AsyncGeckoTerminalAPI(proxy=proxy)
```## Disclaimer
This project is for educational purposes only. You should not construe any such
information or other material as legal, tax, investment, financial, or other advice.
Nothing contained here constitutes a solicitation, recommendation, endorsement, or
offer by me or any third party service provider to buy or sell any securities or other
financial instruments in this or in any other jurisdiction in which such solicitation or
offer would be unlawful under the securities laws of such jurisdiction.Under no circumstances will I be held responsible or liable in any way for any claims,
damages, losses, expenses, costs, or liabilities whatsoever, including, without
limitation, any direct or indirect damages for loss of profits.