tehcscreener

public api

Free public API for launchpad and trading-bot analytics.

powered byAllium
base urlhttps://tehcscreener.com/api/v1

endpoints

GET/api/v1/launchpads

Every listed launchpad with its totals over the window, highest volume first.

query params

paramdefaultaccepted
window7d1d | 7d | 30d | all

response

fieldtypedescription
windowstringthe window used
throughdatelatest day in the launchpad data
padsarrayone object per (chain, pad)
pads[].chainstringchain the pad runs on
pads[].padstringpad id, as used in /launchpads/{chain}/{pad}
pads[].logo_pathstring | nullsite-relative logo path
pads[].tokens_launchedinttokens launched in the window
pads[].volume_usdnumbertrading volume in the window
pads[].trade_txnsinttrade transactions in the window
pads[].tokens_tradedintsum of the per-day count of tokens traded

example

curl "https://tehcscreener.com/api/v1/launchpads?window=30d"

GET/api/v1/launchpads/series

Daily volume and launches per listed launchpad: one series per (chain, pad), highest total volume first.

query params

paramdefaultaccepted
window30d1d | 7d | 30d | all

response

fieldtypedescription
windowstringthe window used
throughdatelatest day in the launchpad data
daysdate[]every day with data in the window, ascending
seriesarrayone object per (chain, pad)
series[].chainstringchain
series[].padstringpad id
series[].colorstring | nullthe pad's chart color on the site
series[].logo_pathstring | nullsite-relative logo path
series[].volume_usdnumber[]volume per day, aligned to days (0 when none)
series[].tokens_launchedint[]launches per day, aligned to days

example

curl "https://tehcscreener.com/api/v1/launchpads/series?window=7d"

GET/api/v1/launchpads/{chain}/{pad}

One launchpad: profile, daily totals and its top 50 tokens by volume. chain and pad are the values from /launchpads. Unknown or unlisted pads return 404.

query params

paramdefaultaccepted
window30d1d | 7d | 30d | all
tokenstradedtraded (any token traded on the pad) | launched (only tokens launched on it within the window)

response

fieldtypedescription
chain, pad, windowstringecho of the request
tokens_modestringthe tokens param used
profileobject | nullname, description, website_url, x_url, logo_path, banner_path, color, pad_token (the pad's own token, if any); null when no profile is set
dailyarray{day, tokens_launched, volume_usd, trade_txns} per day, ascending
top_tokensarrayup to 50, highest volume first: {token, volume_usd, trade_txns, first_day}; token is the token address, first_day its first day with activity in the window

example

curl "https://tehcscreener.com/api/v1/launchpads/solana/pumpfun?window=7d&tokens=launched"

GET/api/v1/launchpads/{chain}/{project}/revenue

One launchpad's daily fee revenue in USD, full history. chain and project are the chain and pad values from /launchpads. Coverage: currently pump.fun only, more projects as they're added. Projects without revenue coverage return 404 with {"detail": "no revenue data"}.

query params

none

response

fieldtypedescription
chain, projectstringecho of the request
dailyarrayone object per day with revenue data, full history, ascending
daily[].daydatethe day
daily[].protocol_revenue_usdnumberfees kept by the protocol
daily[].creator_revenue_usdnumber | nullcreator/cashback fees; null on historical rows predating per-trade measurement (Oct 2026)
daily[].sourcestringdata lineage: dune_seed | allium_events

example

curl "https://tehcscreener.com/api/v1/launchpads/solana/pumpfun/revenue"

GET/api/v1/bots

Daily volume, transactions and fees for trading bots (terminals), one series per bot or per chain, highest total volume first.

query params

paramdefaultaccepted
window30d1d | 7d | 30d | all
chainallall, or one chain from the response's chains list
groupbotbot (a series per bot) | chain (a series per chain)

response

fieldtypedescription
window, chain, groupstringecho of the request
chainsstring[]every chain with bot data
throughdatelatest day in the bot data
daysdate[]every day with data in the window, ascending
seriesarrayone object per bot (or chain)
series[].namestringbot id (or chain), as used in /bots/{bot}
series[].display_namestringdisplay name; falls back to name
series[].colorstring | nullchart color on the site
series[].logo_pathstring | nullsite-relative logo path
series[].volume_usdnumber[]volume per day, aligned to days; rounded to cents
series[].txnsint[]transactions per day
series[].fees_usdnumber[]fees per day; rounded to cents

example

curl "https://tehcscreener.com/api/v1/bots?window=7d&group=bot"

GET/api/v1/bots/{bot}

One trading bot: profile, lifetime totals, per-chain daily series and its top 50 tokens. bot is a name from /bots (case-insensitive). Unknown bots return 404.

query params

paramdefaultaccepted
windowall1d | 7d | 30d | all

response

fieldtypedescription
botstringbot id, lowercased
display_namestringdisplay name; falls back to bot
color, logo_path, website_url, x_url, descriptionstring | nullprofile fields
windowstringthe window used
throughdatelatest day in the bot data
first_daydatethe bot's first day with data
totalsobject{volume_usd, fees_usd, txns}, lifetime (ignores window)
daysdate[]days with data in the window, ascending
wallets_dedup(int | null)[]per day, aligned to days: deduplicated wallet count where the source provides one, else null
seriesarrayone object per chain, highest volume first
series[].namestringchain
series[].display_name, series[].colorstringchain display name (falls back to name) and color
series[].volume_usd / txns / fees_usd / walletsnumber[]per day, aligned to days
tokens_sincedate | nullfirst day of per-token data for this bot
top_tokensarrayup to 50, highest volume first: {chain, token, volume_usd, txns, peak_wallets, first_day, last_day}; peak_wallets is the highest single-day wallet count; tokens only: quote-to-quote swaps (no attributable token) are left out of the ranking but stay in every total

example

curl "https://tehcscreener.com/api/v1/bots/axiom?window=30d"

GET/api/v1/chains

Every chain with chain-wide stats, with its latest day, highest latest dex volume first. This is the list of chains /chains/{chain} covers.

query params

none

response

fieldtypedescription
chainsarrayone object per covered chain
chains[].chainstringchain id, as used in /chains/{chain}
chains[].display_namestringdisplay name; falls back to chain
chains[].color, chains[].logo_pathstring | nullprofile fields
chains[].secondary_colorstring | nullsecond profile colour (used for line charts on the site); null when unset
chains[].throughdatelatest day for this chain
chains[].latestobjectthat day's {txns, active_wallets, dex_volume_usd, dex_trades}

example

curl https://tehcscreener.com/api/v1/chains

GET/api/v1/chains/{chain}

Chain-wide daily stats. Covered chains are the ones /chains lists; any other chain returns 404.

query params

paramdefaultaccepted
windowall1d | 7d | 30d | all (counted back from this chain's latest day)

response

fieldtypedescription
chainstringchain id, lowercased
display_namestringdisplay name; falls back to chain
color, logo_pathstring | nullprofile fields
secondary_colorstring | nullsecond profile colour (used for line charts on the site); null when unset
website_url, x_urlstring | nullthe chain's website and X links; null when unset
token_addressstring | nullthe chain's own token contract address; null when unset
windowstringthe window used
throughdatelatest day for this chain
daysdate[]days in the window, ascending
txnsint[]transactions per day
active_walletsint[]active wallets per day
dex_volume_usdnumber[]DEX volume per day
dex_tradesint[]DEX trades per day

example

curl "https://tehcscreener.com/api/v1/chains/robinhood?window=30d"

GET/api/v1/trench

Composite 0–100 activity score for launchpads and trading bots, percentile-ranked against a trailing 90-day window and blended by weight. Only days with both launchpad and bot data count; a day is scored once 30 such days of history exist.

query params

none

response

fieldtypedescription
todayobject | nulllatest scored day; null when there is not enough history yet
today.daydatethe scored day
today.scoreint0–100
today.bandstringded | cold | active | hot | euphoric
today.componentsobjectkeyed pad_volume, tokens_launched, bot_volume, bot_fees; each {value, percentile}: the day's raw total and its 0–100 blended percentile (see method.blend)
historyarray{day, score} for every scored day, oldest first
trackedobject{launchpads, terminals}: how many listed launchpads (with any data) and trading bots are covered
method.window_daysintshort trailing window length (90)
method.window_days_longintlong trailing window length (365)
method.blendobject{short, long}: how the two windows' percentiles combine (sums to 1)
method.cooldownfloatscore drops decay by this factor per day; rises apply same-day
method.weightsobjectcomponent → weight (sums to 1)
method.bandsobjectband → score range; omitted when today is null

example

curl https://tehcscreener.com/api/v1/trench

GET/api/v1/status

The most recent data sync.

query params

none

response

fieldtypedescription
synced_atstringwhen the last sync landed (timestamp)
sourcestringwhere the sync came from
rows_grainintper-token rows loaded by that sync
rows_padintper-pad rows loaded by that sync
notestring | nullfree-text note; before any sync the body is just {"note": "no syncs yet"}

example

curl https://tehcscreener.com/api/v1/status

terms

The API is free to use. If you publish statistics or charts, credit tehcscreener.com as the source.

tip jar

solana DVgCkNymLjmi1mpg8atNRrqbQjtkJf5nAmimuk3pVUPQ

claim your tip

Paste your transaction signature to claim the tip and leave a comment. Please claim right after sending. $1 minimum.

recent tips

feedback

Bugs and requests: @adam_tehc on X.