API Documentation
Everything you need to integrate AlphaFeed. Already migrating from Birdeye? Just change your base URL and key.
Base URL
All requests are made against the AlphaFeed base URL. The Birdeye-compatible API lives under /public-api/defi and the native enhanced API under /api/v1.
https://data.thebloobs.coAuthentication
Authenticate every request with your API key, sent either as an X-API-KEY header or as a Bearer token.
# Header style (recommended)
-H "X-API-KEY: af_live_your_key_here"
# Bearer style
-H "Authorization: Bearer af_live_your_key_here"Birdeye-compatible endpoints
| GET | /public-api/defi/price | Single token price |
| GET | /public-api/defi/multi_price | Batch token prices |
| GET | /public-api/defi/token_overview | Token overview & stats |
| GET | /public-api/defi/ohlcv | OHLCV candles |
| GET | /public-api/defi/txs/token | Recent token trades |
| GET | /public-api/defi/v3/token/meta-data/single | Token metadata |
| GET | /public-api/defi/v2/markets | Markets for a token |
Native endpoints
| GET | /api/v1/token/{mint}/overview | Enhanced overview |
| GET | /api/v1/token/{mint}/price | Price + change |
| GET | /api/v1/token/{mint}/ohlcv | OHLCV candles |
| GET | /api/v1/token/{mint}/trades | Trade history |
| GET | /api/v1/token/{mint}/risk | Risk score |
| GET | /api/v1/token/{mint}/markets | Markets |
| GET | /api/v1/tokens/latest | Freshly discovered tokens |
| GET | /api/v1/tokens/trending | Trending tokens |
| GET | /api/v1/tokens/high-momentum | High-momentum movers |
Quickstart (curl)
One request, no SDK required. Pass your key as x-api-key and the chain as x-chain.
curl "https://data.thebloobs.co/public-api/defi/price?address=So11111111111111111111111111111111111111112" \
-H "x-api-key: af_live_your_key_here" \
-H "x-chain: solana"Python example
import requests
API_KEY = "af_live_your_key_here"
BASE_URL = "https://data.thebloobs.co/public-api"
headers = {
"x-api-key": API_KEY,
"x-chain": "solana",
}
res = requests.get(
f"{BASE_URL}/defi/price",
params={"address": "So11111111111111111111111111111111111111112"},
headers=headers,
timeout=10,
)
print(res.json())JavaScript example
const res = await fetch(
"https://data.thebloobs.co/public-api/defi/price?address=So11111111111111111111111111111111111111112",
{ headers: { "X-API-KEY": "af_live_your_key_here", "x-chain": "solana" } }
);
const data = await res.json();
console.log(data);Migrating a Birdeye bot
AlphaFeed mirrors the Birdeye request and response shapes. To migrate an existing bot, change the base URL only (and your key). Every endpoint, query param, and header keeps working.
# Already running a Birdeye-based bot?
# Replace the base URL only — keep every request shape the same.
BIRDEYE_BASE_URL = "https://public-api.birdeye.so"
ALPHAFEED_BASE_URL = "https://data.thebloobs.co/public-api"
# Swap this single line:
BASE_URL = ALPHAFEED_BASE_URL
# Your existing calls keep working unchanged:
# GET {BASE_URL}/defi/price?address=...
# headers: { "x-api-key": API_KEY, "x-chain": "solana" }Trading bot adapter (Python SDK)
Prefer a typed helper? Drop sdk/python/alphafeed_client.py into your project. It wraps the Birdeye-compatible and native endpoints in a small AlphaFeedClient.
from alphafeed_client import AlphaFeedClient
client = AlphaFeedClient(
api_key="af_live_your_key_here",
base_url="https://data.thebloobs.co/public-api",
)
# Birdeye-compatible surface
price = client.get_price("So11111111111111111111111111111111111111112")
ovv = client.get_token_overview("So11111111111111111111111111111111111111112")
candles = client.get_ohlcv("So111...112", interval="1m")
trades = client.get_token_trades("So111...112", offset=0, limit=50)
# Native enhanced surface
risk = client.get_risk("So111...112")
trending = client.get_trending_tokens(limit=20)It also ships a BirdeyeCompatibleClient alias for a true drop-in swap:
# Drop-in alias for an existing Birdeye client.
from alphafeed_client import BirdeyeCompatibleClient as Client
client = Client(
api_key="af_live_your_key_here",
base_url="https://data.thebloobs.co/public-api",
)
print(client.get_price("So11111111111111111111111111111111111111112"))