Solana DEX Scraper — Raydium + Orca Dev-Grade Swap Stream avatar

Solana DEX Scraper — Raydium + Orca Dev-Grade Swap Stream

Under maintenance

Pricing

from $2.00 / 1,000 swap event extracteds

Go to Apify Store
Solana DEX Scraper — Raydium + Orca Dev-Grade Swap Stream

Solana DEX Scraper — Raydium + Orca Dev-Grade Swap Stream

Under maintenance

Extract normalized swap events from Solana's largest spot DEXes: Raydium AMM v4 and Orca Whirlpool. Per-swap rows with signer, mints, amounts, USD pricing, and fee data. Built for MEV/arb bot devs, copy-trading systems, and on-chain analytics. Bring your own RPC. No login required.

Pricing

from $2.00 / 1,000 swap event extracteds

Rating

0.0

(0)

Developer

Sami

Sami

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Solana DEX Scraper — Raydium + Orca Swap Stream API

The Solana DEX swap data API for MEV bots, copy-trading systems, and on-chain analytics. Extract normalized swap events from Raydium AMM v4 and Orca Whirlpool — one clean record per swap with wallet address, token mints, amounts, USD pricing (via Jupiter Price v3), and fee data. Helius / QuickNode alternative at $0.001 per event. Bring your own RPC URL. No login, no API key, no geyser node required.

Why this Actor exists

If you're building on Solana, your options for normalized swap data today are:

  • Helius / QuickNode / Triton Premium tiers — $99–499/mo just to get indexed history. Locked into one vendor's schema. Per-event metering on enhanced webhooks gets expensive at scale.
  • Self-hosted geyser plugin / gRPC validator — 200GB+ of state, snapshot sync nightmares, dedicated ops effort.
  • Bitquery enterprise — quote-only pricing in the $20K–$100K/year band.
  • Roll your own RPC parser — a sprint of work to handle Token-2022, versioned transactions, address lookup tables, balance-delta decoding, partial fills.

This Actor is the middle path. One record per swap. One normalized schema across DEXes. Pay $0.001 per event you actually extract — no monthly subscription, no per-seat licensing, no overage charges. Plug in any RPC URL you already have (Helius free tier, Triton, your own validator, etc.).

Pairs well with the Hyperliquid Pro Scraper if you also trade perpetuals — same dev-grade schema philosophy, complementary DeFi coverage (spot DEX on Solana + perpetual DEX on Hyperliquid L1).

How to use it in 3 steps

  1. Open Solana DEX Scraper on Apify Store and click Try for free
  2. Pick a mode and paste your RPC URL (or use the public default for a test run)
  3. Click Run and download as JSON, CSV, Excel, or XML

No code required. Works with Apify's free tier.

What's NOT included (compliance)

This Actor is intentionally scoped to Solana's broader AMM ecosystem. It does NOT:

  • Scrape Pump.fun (different ecosystem with a different compliance posture — out of scope for v0.1)
  • Use any private RPC bypass, validator keypair, or geyser plugin
  • Decode MEV-specific data (bundle inclusion, sandwich detection, validator-side flow)
  • Require any login, auth, or signing key

Every extraction is from public on-chain state via standard Solana JSON-RPC. All instruction parsing uses the published Anchor IDLs / open-source program layouts.

5 Modes

ModeWhat you getBest for
swaps_by_tokenAll recent swaps for a token mint across both DEXesMomentum tracking, token velocity, copy-trade signal generation
swaps_by_walletA wallet's full swap history across both DEXesShadow-trading, PnL attribution, smart-money tracking
swaps_by_poolOne pool's swap activityLP analysis, pool concentration tracking, impermanent-loss modeling
recent_swapsGeneric firehose with DEX / token / minimum-size filtersWhale-flow monitoring, ecosystem-wide analytics
pool_metadataResolve a pool address to token pair + fee tier + liquidityPipeline enrichment, pool discovery

Output schema (swap modes)

FieldTypeDescription
modestringSource mode label
dexstringraydium_v4 or orca_whirlpool
poolAddressstringPool / whirlpool account
signaturestringTransaction signature
slotintSolana slot number
blockTimeISO 8601Confirmation time, UTC
signerstringWallet that signed the swap tx
mintInstringSPL token going INTO the pool
mintOutstringSPL token coming OUT to the signer
amountInfloatUI-scaled amount (by token decimals)
amountInUsdfloat / nullUSD notional (Jupiter Price v3)
amountOutfloatUI-scaled amount
amountOutUsdfloat / nullUSD notional
priceIn / priceOutfloat / nullUSD prices used for conversion
feeBpsint / nullFee in basis points (Raydium v4 = 25; Orca = per-pool)
feeUsdfloat / nullEstimated fee in USD
errorStatusnull | stringnull for successful swaps
explorerUrlurlSolscan link
scrapedAtISO 8601When the record was emitted

Output schema (pool_metadata mode)

FieldTypeDescription
modestringpool_metadata
dexstringraydium_v4 or orca_whirlpool
poolAddressstringInput pool account
tokenAobject{mint, symbol, decimals}
tokenBobject{mint, symbol, decimals}
feeTierBpsint / nullFee in basis points
tickSpacingint / nullWhirlpool tick spacing (Orca only)
liquidityUsdfloat / nullLive USD value of vault A + vault B
volume24hUsdfloat / nullReserved for v0.2
explorerUrlurlSolscan account link
scrapedAtISO 8601

Input examples

Monitor all swaps for a specific token (e.g. JUP)

{
"mode": "swaps_by_token",
"tokenMint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"maxResults": 1000,
"includeUsdPrices": true,
"rpcUrl": "https://api.mainnet-beta.solana.com"
}

Shadow-trade a wallet

{
"mode": "swaps_by_wallet",
"walletAddress": "DfXygSm4jCyNCybVYYK6vbnGv8ekCfRRsVwh9NXKbVbu",
"maxResults": 500,
"fromTimestamp": "2026-05-01T00:00:00Z",
"rpcUrl": "<your Helius / QuickNode URL>"
}

Watch one pool's flow

{
"mode": "swaps_by_pool",
"poolAddress": "Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE",
"maxResults": 2000,
"rpcUrl": "<your RPC URL>"
}

Whale-flow firehose (>$10K swaps on Raydium only)

{
"mode": "recent_swaps",
"dexes": ["raydium_v4"],
"minAmountUsd": 10000,
"maxResults": 1000,
"rpcUrl": "<your RPC URL>"
}

Resolve a pool

{
"mode": "pool_metadata",
"poolAddress": "Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE",
"rpcUrl": "https://api.mainnet-beta.solana.com"
}

Pricing

Pay-per-event — you only pay for records the Actor extracted.

EventPriceWhat triggers it
swap-event$0.001One normalized swap record emitted
wallet-history-batch$0.05One page of wallet signatures pulled (up to 1000 signatures, includes the deep RPC scan cost)
pool-metadata$0.002One pool address resolved to tokens + fee + liquidity

Volume math

WorkloadVolumeMonthly cost
Track 5 tokens, 100 swaps/day each15,000 swaps/mo~$15/mo
Bot ingesting all whale swaps (>$10K) on Raydium~5K swaps/day~$150/mo
Copy-trader shadowing 50 wallets, full daily history~10K history batches/mo~$500/mo
Liquidity dashboard, 100 pools refreshed hourly~72K pool-metadata/mo~$144/mo

Apify compute time is included — you don't pay for run duration, only the data you extract.

Free trial: $5 of credits over 7 days. Enough for ~5K swaps, ~100 wallet histories, or ~2.5K pool resolutions.

Bring your own RPC

The public default https://api.mainnet-beta.solana.com is heavily rate-limited and for testing only. For any production workload, plug in your own RPC URL via the rpcUrl input:

  • Helius — full-history archival, geyser-fed. From ~$99/mo for indexed endpoints.
  • QuickNode — solid mainnet RPC at ~$49/mo entry tier.
  • Triton One — premium low-latency dedicated nodes.

Your RPC URL is treated as a secret input — Apify masks it in logs and the run config UI.

Use cases

  • Copy-trade signal generationswaps_by_wallet + minAmountUsd filter → ingest into your bot's queue
  • Token momentum trackingswaps_by_token over rolling 1h windows → compute net-flow / VWAP
  • LP / pool analysisswaps_by_pool + pool_metadata → impermanent-loss modeling, fee-yield estimation
  • Whale flow dashboardsrecent_swaps with minAmountUsd: 10000 → Slack/Discord alerts
  • Backtesting datasets — pull months of swaps from swaps_by_pool as training data

Quickstart — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
# Monitor every swap of the JUP token across Raydium + Orca, last 1000 swaps
run = client.actor("zhorex/solana-dex-scraper").call(run_input={
"mode": "swaps_by_token",
"tokenMint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"maxResults": 1000,
"minAmountUsd": 100, # skip dust swaps
"rpcUrl": "https://YOUR_HELIUS_RPC_URL",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
in_sym = item["mintIn"][:8]
out_sym = item["mintOut"][:8]
usd = item.get("amountInUsd") or 0
print(
f"{item['blockTime']} {item['dex']:14s} "
f"{in_sym}->{out_sym} ${usd:>12,.2f} "
f"{item['signer'][:8]}..."
)

Quickstart — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('zhorex/solana-dex-scraper').call({
mode: 'recent_swaps',
dexes: ['raydium_v4', 'orca_whirlpool'],
minAmountUsd: 10000,
maxResults: 200,
rpcUrl: 'https://YOUR_HELIUS_RPC_URL'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.length} whale swaps in the last window.`);

FAQ

Does it require any Solana account or login? No. All reads are public on-chain data via JSON-RPC.

Why bring my own RPC? Solana RPC is a heavy operation. By default we use the public api.mainnet-beta.solana.com for testing, but it'll throttle you to a handful of requests per second. Plugging your own Helius/QuickNode key keeps the throughput, latency, and cost under your control — and we don't have to bundle a paid endpoint into the actor price.

Will this catch every swap? It catches every swap whose transaction is in the RPC's history and whose pre/postTokenBalances cleanly express the signer's swap legs (>99% of real swaps). It does NOT catch swaps that failed (err != null) or swaps where the signer is not the beneficiary (e.g. complex relayer-mediated flows). For aggregator-routed swaps (Jupiter v6), we currently report the leg the user's wallet actually received — the routed inner DEXes are visible via the explorerUrl.

What about Pump.fun? Intentionally out of scope. Different ecosystem, different compliance posture. Pump.fun-specific data is best sourced from a dedicated Actor.

What about Meteora DLMM and Jupiter routing? Planned for v0.2. The current decoder architecture is layout-agnostic (balance-delta parsing), so adding new DEXes is straightforward — open an issue if you have a specific need.

Solana reorgs? We default to commitment: confirmed, which gives 2-block safety. Switch to finalized in the input for strict 32-block safety at the cost of ~13s additional latency.

Token-2022? Yes. Both classic SPL Token and Token-2022 transfers are decoded.

What's the latency from on-chain swap to scraped record? Limited by your RPC's indexing lag. On Helius, typically <1s after confirmation.

Integrations

Export as JSON, CSV, Excel, XML. Wire up:

  • Google Sheets — automatic dashboards
  • Zapier / Make / n8n — alert on whale swaps, large LP moves
  • REST API + Webhooks — push to your own infra on every run
  • BigQuery / Snowflake — bulk ingestion via Apify's storage exports

Coming in v0.2

  • Meteora DLMM — dynamic liquidity AMM
  • Jupiter v6 aggregator — decode each leg of routed swaps
  • New-token-launch detection — first-trade slot per mint
  • Pool 24h volume — historical aggregation
  • DCA / limit-order events — Jupiter DCA program

Open an issue if you have a feature you want prioritized.

Other scrapers by Zhorex

DeFi & Markets:

AI & Search:

Chinese Digital Intelligence Suite:

B2B Review Intelligence:


Your review matters ⭐

If this Actor saved you a sprint of RPC-parsing work, a 30-second review helps a lot:

  1. Go to the Solana DEX Scraper page
  2. Click the star rating
  3. Optionally drop a one-line note ("used this for copy-trade signals on Raydium" etc.)

Why it matters: reviews are the #1 signal Apify devs check before trying a scraper. The first 5–10 reviews dramatically improve discovery for everyone.

Found a bug or want a new DEX? Open an issue — typically fixed within 48 hours.


🏢 Running a quant fund, MEV bot, or copy-trading platform?

If your pipeline ingests 10K+ swap records per day or needs continuous wallet polling, I offer:

  • Custom output schemas matching your warehouse / data-lake format
  • Schema stability SLA — no breaking changes without 30-day notice
  • Volume pricing above 100K events/month
  • Priority DEX additions (Meteora, Phoenix, Lifinity, etc.) on a custom timeline
  • Dedicated indexer infrastructure for sub-second latency

DM me on Apify, open an Issue titled "Enterprise inquiry", or email samimassis2002@gmail.com.


Last updated: May 2026 · Actively maintained · Built by the developer of Hyperliquid Pro Scraper, TradingView Multi-Market Scraper, and 15+ other production Apify Actors.