Skip to main content
GET
/
swaps
/
{signature}
Single swap by transaction signature
curl --request GET \
  --url https://api.dexploit.dev/swaps/{signature} \
  --header 'X-API-Key: <api-key>'
{
  "signature": "<string>",
  "slot": 123,
  "timestamp": 123,
  "token_address": "<string>",
  "pair_address": "<string>",
  "user": "<string>",
  "is_buy": true,
  "sol_amount": 123,
  "token_amount": 123,
  "fee": 123,
  "fee_bps": 123,
  "creator_fee": 123,
  "creator_fee_bps": 123,
  "price_per_token": 123,
  "pool_price": 123,
  "price_impact_bps": 123,
  "base_decimals": 123,
  "quote_decimals": 123,
  "virtual_sol_reserves": 123,
  "virtual_token_reserves": 123,
  "real_sol_reserves": 123,
  "real_token_reserves": 123,
  "transfer_fee_in": 123,
  "transfer_fee_out": 123,
  "cashback": 123,
  "cashback_bps": 123
}

Authorizations

X-API-Key
string
header
required

Preferred for swaps-api endpoints (/swaps/*, /stats/*, /trending, /pool-events).

Path Parameters

signature
string
required

Response

Swap event

A single swap event from the raw swaps index. Same shape across /swaps, /swaps/range, /swaps/whale, /swaps/{signature}, /swaps/trader/{wallet}, /swaps/token/{mint}.

Note that the streaming feeds (WebSocket and gRPC) use a different shape — see WebSocket wire format — most notably swap_type (string) vs is_buy (bool) here, and dex as the string name vs dex as the integer ID here.

signature
string

Solana transaction signature (base58).

slot
integer<int64>
timestamp
integer<int64>

Unix epoch milliseconds.

token_address
string

Non-SOL side of the pool (the token being bought/sold).

pair_address
string

On-chain pool/LP account.

user
string

Trader wallet.

is_buy
boolean

true if SOL → token; false if token → SOL.

dex
enum<integer>

Integer DEX identifier used in raw swap rows. Mapping:

IDDEX
1pumpfun
2pumpswap
3raydium_amm
4raydium_clmm
5raydium_cpmm
6orca
7meteora_damm_v2
8meteora_dbc
9meteora_dlmm
10meteora_pools
Available options:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
sol_amount
integer<int64>

Lamports (1 SOL = 1e9).

token_amount
integer<int64>

Token base units; divide by 10**quote_decimals for human-readable.

fee
integer<int64>

LP fee paid, in lamports.

fee_bps
integer

Effective LP fee, in basis points.

creator_fee
integer<int64>

Creator-set fee paid, in lamports (pump.fun + meteora-dbc).

creator_fee_bps
integer
price_per_token
number

Realized fill price (SOL per 1 token, decimals-adjusted).

pool_price
number

Pool mid-price after the swap.

price_impact_bps
integer

Difference between fill price and pre-swap mid, in basis points.

base_decimals
integer

Decimals of the base (SOL) side — typically 9.

quote_decimals
integer

Decimals of the quote (token) side.

virtual_sol_reserves
integer<int64>

Virtual SOL reserves (pump.fun bonding curve). 0 on non-pump pools.

virtual_token_reserves
integer<int64>
real_sol_reserves
integer<int64>

Actual reserves on the pool after the swap.

real_token_reserves
integer<int64>
transfer_fee_in
integer<int64>

Token-2022 transfer-fee paid on the input side (lamports/base units).

transfer_fee_out
integer<int64>
cashback
integer<int64>

Cashback rebated to the trader (lamports).

cashback_bps
integer