TraktorAPI
Get API key

Signals

The signal feed under a key, a page at a time, newest first or tailed forward by arrival.

GET /v1/signals answers with the events Traktor's signal feed shows, such as big buys (whale_buy), pumps, new holders and listings, each in the shape the board renders.

GET /v1/signals

https://api.traktor.fun

The signal feed the board renders, newest first by default, a page at a time by arrival. An event's live net and volume are null where its token's board row has none.

Credential
API key
REST units
2 units
  • vintegerquery

    Grammar version; send 1, or leave it out.

    One of: 1

  • chainslistquery

    Chains to include, comma-separated; empty means all.

    Any of: solana, robinhood, bnb, base, arc, arbitrum, ethereum, monad, hyperevm, elysium

  • platformslistquery

    Apps to include; an event with no app, such as a listing, always passes.

    Any of: fomo, gmgn, pump, axiom, coinbase, padre, maestro, bloom, trojan, bonkbot, bankr, photon

  • typeslistquery

    Signals to include; empty means all.

    Any of: net_in, net_out, vol_spike, buyers, buy_pressure, sell_pressure, dip_buy, rotation, whale_buy, whale_sell, top_buy, top_sell, kol_buy, smart_buy, dev_buy, dev_sell, insider_buy, smart_cluster, top_cluster, top_exit, top_early, top_net, holders_up, holder_surge, holder_exodus, supply_share, holder_growth, mcap_up, pump, dump, ath, pump_fade, new_token, graduation, revival, dex_paid, dex_boost, cto, liq_add, liq_pull

  • tierslistquery

    Sizes to include, 1 to 3; empty means all.

    Any of: 1, 2, 3

  • limitintegerquery

    Events per page.

    Default 1001–500

  • orderenumquery

    Newest first or oldest first, by arrival.

    Default descOne of: desc, asc

  • cursorcursorquery

    meta.page.cursor from the previous page.

Limits

  • Invalid keys30 a minute, per IP
  • Events examined10,000 rows, per request
  • Cursor lifetime24 hours, per request
  • Newest arrivals an ascending page holds back15 seconds by default, per request

Errors

invalid_parameter, unknown_parameter, duplicate_query_parameter, filter_version_unsupported, limit_out_of_range, invalid_cursor, cursor_query_mismatch, cursor_expired, missing_credentials, invalid_key, key_revoked, subscription_inactive, key_in_query, method_not_allowed, rate_limited, quota_exhausted, rate_limit_unavailable, internal_error

curl -s "https://api.traktor.fun/v1/signals?types=whale_buy,pump" \
  -H "Authorization: Bearer $TRAKTOR_API_KEY"

Every event keeps the facts it was detected with. Names and pictures for the wallet in it, and the wallet's year, are filled in when it is read, from answers each server holds for up to a minute: a new name or mark can take that long to show, two pages read moments apart can name a wallet differently inside it, and meta.asOf dates the events, not these.

No event is served for a token that no launchpad we know made, as no board lists one: a verified stock is the exception. Nor is one served for a major, whatever launchpad it is tagged with: a stablecoin, a chain's wrapped native, a coin bridged or wrapped onto a chain such as cbBTC or WBTC, or another major traktor names by address. That is read from the launchpad the event was written with, so a token tagged later stays off the events written before.

The wallet behind a trade

Big buys and sells, top-trader trades, dev trades and rotations name their wallet in detail.wallet. Where a source names it, detail.handle and detail.x say who it is, and marks says whether it is known as a KOL or smart money.

A top-trader trade (top_buy, top_sell) is one made from a wallet of the traders page's top 100 by year profit, from $500, and detail.rank is the trader's place there; or one from a trader placed among the top 10,000 by year profit, named or not: from $500 for places 1 to 100, $1k for 101 to 1,000 and $2.5k for 1,001 to 10,000, and detail.place is that place. The tier is the trade's size whoever made it. While the service holds neither list, no trade is called a top trader's.

A KOL buy (kol_buy) or smart money buy (smart_buy) is a buy of $500 or more from a wallet known as a KOL or as smart money, named or not; detail.kol and detail.smart say which marks the wallet carried, and the big buy of the same trade carries them too. A wallet carrying both fires both. Neither is sent yet: they wait on a switch, off until the mobile app draws a signal type it does not know.

Dev sold (dev_sell) and Dev bought more (dev_buy) are a sale or buy of $100 or more by the wallet named as the token's creator; a buy in the minute after the token was created is its launch buy and none. A token with no creator named yet has no dev trades. Every other signal the same trade fired (a big, top-trader, KOL or smart-money one) carries detail.dev: true where the dev signal fired. Neither is sent yet: they wait on a switch of their own, for the same reason.

Insiders buying

Insiders buying (insider_buy) is the share of supply held by the wallets flagged as insiders, bundlers or snipers rising two points or more between two readings of the token at most an hour apart. detail.holders names the class that rose most (insiders, bundlers or snipers), detail.fromPct and detail.toPct are its share before and after, in percent, and detail.windowMin the minutes between the readings; value is the rise in points, and at is the later reading's time. A wallet can sit in more than one class, so no figure adds the classes up. A class a reading did not measure is no rise, and none is measured on Robinhood. It is not sent yet: it waits on a switch of its own, for the same reason.

detail.realizedYearUsd is what the wallet realized over the last year on every chain of its kind, named or not, and detail.winRateYear is that year's win rate, from 0 to 1. Both are left out where the wallet has not been measured, never sent as zero, and the win rate never appears without the year. A wallet not measured yet is queued for a later sweep, which asks a limited number of wallets; until then both are left out.

Piling in, top traders and Pump fading

Smart money piling in (smart_cluster) is three, five or eight proven wallets each buying $250 or more of one token within 30 minutes. A proven wallet is one known as a KOL or as smart money, or one that realized $10k or more over the last year at a win rate of 50% or better. detail.wallets is how many, also the value, detail.usd what they bought between them inside the half hour and detail.windowMin the window; at is the time of the buy that completed the count. A wallet that sells the token leaves the count until it buys again. No wallet is named in it. For half an hour after one of our deploys the count starts empty, so it can come up short.

Top traders piling in (top_cluster) is three, five or eight traders placed in the top 1,000 by year profit, as Top trader buy places them, each buying $250 or more of one token within 30 minutes. A trader counts once whichever of its wallets it buys from, and a sale from any of them takes it out of the count until it buys again. detail.traders is how many, also the value, detail.usd what they bought between them inside the half hour, detail.windowMin the window and detail.bestPlace the best place among them; at is the time of the buy that completed the count. No trader is named in it, and it is silent while no ranking is held. For half an hour after one of our deploys the count starts empty, so it can come up short.

Top traders heading out (top_exit) is the same count turned around: three, five or eight of those traders each selling $250 or more of one token within 30 minutes, a trader counted once whichever of its wallets it sells from, and a buy from any of them taking it back out of the count until it sells again. Its detail holds the same traders, usd, windowMin and bestPlace, for the sales, and at is the time of the sale that completed the count. It warns the people holding the token; it names no trader, is silent while no ranking is held, and can come up short for half an hour after one of our deploys.

Top traders in early (top_early) is one, two or four of those traders each buying $250 or more of a token inside its first 15 minutes, counted from its launch, unless we saw it trade before that launch time or know no launch, then from its first trade we saw: the same start a token's age on the board counts from. It is one line a token, said again louder as more traders get in, and a trader counts once across its wallets, out of the count after a sale until it buys again. detail.traders is how many, also the value, detail.usd what they bought, detail.ageMin how many minutes in the latest of those buys came, detail.since whether that is from the launch or the first_trade, and detail.bestPlace the best place among them. A token we cannot time says nothing.

Top traders net buying (top_net) is what those traders bought less what they sold of one token, every priced trade of theirs, in the 15 minutes up to a buy of $250 or more by one of them, at $5k, $25k or $100k, once two or more of them each net $250 or more. A trader's wallets net together, and once the ranking moves a trader past 1,000 its sales still count against the buys we already hold from it, but its later buys are left out. detail.usd is the net, also the value, detail.traders how many net $250 or more, detail.windowMin the window and detail.bestPlace the best place among them, and at is the time of the buy that ends the 15 minutes. It names no trader, is silent while no ranking is held, and can come up short for half an hour after one of our deploys.

Pump fading (pump_fade) is a token, within the hour after its pump, standing 15%, 30% or 50% under the highest market cap read since that pump while its five-minute trading is net selling. detail.dropPct is how far under, detail.fromCap and detail.marketCap the high and the cap now, detail.pumpAgoMin the minutes since the latest pump and detail.netUsd the five minutes' net flow; value is the drop as a negative percent. In the hour after one of our deploys the high is read back from the signals already sent, so it can be lower than the true one.

All six are served now, and a request that names no types gets them; the board starts them on for its readers, as it does every signal, though no backtest has backed them yet.

Holders growing

Holders growing (holder_growth) is the number of wallets holding a token, every wallet and not only fomo's, rising by 50, 200 or 1,000 and by a fifth or more between two readings of the token at most 15 minutes apart, while the ten largest wallets' share of supply rose 2 points at most. detail.from and detail.to are the counts before and after, detail.deltaPct the rise in percent, detail.top10FromPct and detail.top10ToPct the ten largest wallets' share before and after, in percent, and detail.windowMin the minutes between the readings; value is the rise in holders, and at is the later reading's time. A reading that did not measure the ten largest wallets' share sends none. It is served now, and the board starts it on for its readers, as it does every signal, though no backtest has backed it yet.

Paging

Events are ordered by when they were written, not by at. An event's at is when it happened, a block time, and a later write can carry an earlier at, so a walk on it would skip events.

  • With the default order=desc, the first page is the newest events, and meta.page.cursor walks back from there.

  • With order=asc, the walk runs forward from the oldest event in the last 72 hours, or from a cursor. Pass each page's meta.page.cursor to the next request to tail the feed. A page with nothing new keeps the cursor it was given.

  • An ascending page leaves out the events written in the 15 seconds before meta.asOf by default, which may still be committing, and gives them on a later page.

  • In either order, meta.asOf is when the events the page walked were read, which can be up to 15 seconds before the request: the newest page is the newest as of then.

A cursor carries its filters and its order: changing either under it is 400 cursor_query_mismatch. A cursor lives 24 hours. A page reaches back 72 hours, and meta.retention says so.

chains, platforms, types and tiers filter on what each event carries. The board's market-cap, liquidity and other screens are not part of this route. Each request examines at most 10,000 events; a page that stopped there carries the scan_capped caveat and a cursor to continue from.

For one token's signals, read GET /v1/tokens/{chain}/{address}/signals on the Tokens page.

The Signals board

GET /v1/signals/board answers with three readings of the newest signals under the board's filter: the pulse, the hot tokens the Signals page draws beside its feed, and the traders.

GET /v1/signals/board

https://api.traktor.fun

The pulse, hot tokens and traders of the newest signals the board's filter admits; the Signals page draws the hot tokens. A hot token's live net and volume are null where its board row has none.

Credential
API key
REST units
2 units
  • chainslistquery

    Chains to include, comma-separated; empty means all.

    Any of: solana, robinhood, bnb, base, arc, arbitrum, ethereum, monad, hyperevm, elysium

  • platformslistquery

    Apps to include; empty means all.

    Any of: fomo, gmgn, pump, axiom, coinbase, padre, maestro, bloom, trojan, bonkbot, bankr, photon

  • windowMinutesenumquery

    The board's window, which the market-cap, flow and other screens read.

    Default 60One of: 5, 15, 30, 60, 240, 1440

  • dexSignalslistquery

    DEX signals; a token with any of them matches.

    Any of: paid, boost, cto

  • stockPairslistquery

    Stock tickers the token pairs with, or ANY-STOCK for any stock.

    up to 12 items

  • minNetmoneyquery

    Net flow at least. A negative floor keeps outflow in view rather than screening it away.

  • maxNetmoneyquery

    Net flow at most — set it negative to find only what is being distributed.

  • minVolumemoneyquery

    Traded volume at least, both sides together.

    from 0

  • minBuyersintegerquery

    Distinct buying wallets at least — breadth, where volume is only size.

    from 0

  • minSellersintegerquery

    Distinct selling wallets at least.

    from 0

  • minTradesintegerquery

    Trades at least.

    from 0

  • minRationumberquery

    Dollars bought per dollar sold — 2 means twice as much buying as selling.

    from 0

  • minChangenumberquery

    Price move across the window, at least. Negative finds what is falling.

  • maxChangenumberquery

    Price move across the window, at most.

  • minTopTradersmoneyquery

    What the top 10,000 traders by year profit bought in the window, at least. Counted over the Board's six windows alone: on any other window, or for a buy with nothing priced, a token is in no band.

    from 0

  • minMcapmoneyquery

    Market cap at least.

    from 0

  • maxMcapmoneyquery

    Market cap at most. Tokens with no cap yet are kept — a brand-new one is small by definition.

    from 0

  • minLiqmoneyquery

    Pool depth at least — what the token can absorb before price moves.

    from 0

  • maxLiqmoneyquery

    Pool depth at most.

    from 0

  • minLiqPctnumberquery

    Depth as a share of market cap — how much of the cap there is real money behind.

    from 0

  • minHoldersintegerquery

    Wallets holding the token on chain, at least, as its data provider last counted them; a token nobody counted is in no band.

    from 0

  • minFomoHoldersintegerquery

    Wallets on fomo still holding a position.

    from 0

  • minHeldPctnumberquery

    Share of circulating supply sitting in fomo wallets — how much of the token the crowd here owns.

    from 0

  • minAthnumberquery

    Multiple back to the all-time high, at least — headroom above the current price.

    from 0

  • maxAthnumberquery

    Multiple back to the high, at most — near its own top.

    from 0

  • maxAgestringquery

    Younger than, in hours since the token launched on chain, or first traded on our tape where that came first or no launch is dated. Takes hours above zero, or a duration such as 30m, 4h or 3d.

  • minAgestringquery

    Older than, in hours since the token launched on chain, or first traded on our tape where that came first or no launch is dated. Takes hours above zero, or a duration such as 30m, 4h or 3d.

  • minCurvenumberquery

    Bonding-curve progress, at least, in percent; a token that has graduated counts as 101.

    from 0

  • maxCurvenumberquery

    Bonding-curve progress, at most, in percent; 100 keeps only tokens still on their curve.

    from 0

  • typeslistquery

    Signals to read; empty means all.

    Any of: net_in, net_out, vol_spike, buyers, buy_pressure, sell_pressure, dip_buy, rotation, whale_buy, whale_sell, top_buy, top_sell, kol_buy, smart_buy, dev_buy, dev_sell, insider_buy, smart_cluster, top_cluster, top_exit, top_early, top_net, holders_up, holder_surge, holder_exodus, supply_share, holder_growth, mcap_up, pump, dump, ath, pump_fade, new_token, graduation, revival, dex_paid, dex_boost, cto, liq_add, liq_pull

  • tierslistquery

    Sizes to read, 1 to 3; empty means all.

    Any of: 1, 2, 3

  • limitintegerquery

    The newest signals the panels read.

    Default 1001–400

  • bucketMinutesenumquery

    The pulse's interval, in minutes.

    Default 5One of: 1, 2, 3, 5, 10, 15, 30, 60

Limits

  • Invalid keys30 a minute, per IP

Errors

invalid_parameter, unknown_parameter, duplicate_query_parameter, window_out_of_range, screen_conflict, too_many_addresses, limit_out_of_range, data_unavailable, market_busy, market_fold_pending, missing_credentials, invalid_key, key_revoked, subscription_inactive, key_in_query, method_not_allowed, rate_limited, quota_exhausted, rate_limit_unavailable, internal_error

curl -s "https://api.traktor.fun/v1/signals/board?types=whale_buy,pump" \
  -H "Authorization: Bearer $TRAKTOR_API_KEY"

It reads the newest signals whose tokens the board's filter admits, limit of them, then keeps the types and tiers it names; left empty, each keeps every signal, where the page starts from its reader's switches. The panels read the last hour of what is kept, and window says where it opens and how many signals it holds. The window is what the read covered, whatever types and tiers keep of it: a read that reached limit inside the hour opens it near its oldest signals instead, leaving up to the oldest tenth out as stragglers, with full: false, because a busier hour holds more than was read, and so does a read whose scan of the newest stored signals ran out before the hour did.

  • pulse counts the window's signals by lean, bullish, bearish or neutral, in intervals of bucketMinutes that start on the interval's boundary, so the first opens before window.from and it and the last can cover less than a whole interval.

  • hotTokens are the tokens that fired two or more signals, the most first, each with every kind it fired, its lean where one side outnumbers the other at least two to one and more than half the neutral ones, and in live the board's current reading of it, its netUsd and volumeUsd null where the board's row has none.

  • traders are the wallets behind the window's big-trade, top-trader and rotation signals, the most money first. Their sizes are the signalled trades', not the wallet's whole day. A trader goes by the name, X account and marks a source gave it, or by none where nobody named it: no wallet address or transaction id is in the answer. Its handle and displayName have the marks a reader cannot see (control, zero-width, bidi and tag characters among them) taken out, a line break or tab read as a space, and are cut to 40 and 50 characters, so either can differ from the same wallet's detail.handle or detail.displayName on /v1/signals.

The board's filter is read as on the market routes: a name it does not know is 400 invalid_parameter, never dropped, and every fault in the query is refused before admission. A board still being built is 503 data_unavailable, and its units come back.

    Signals · Traktor API