Solana Swap API

One API.Major Solana DEXes.

Quote, build, and submit swaps across the Solana DEXes that move the most volume. Unsigned transactions, composable flows, less raw RPC, zero platform swap fees.

Liquidity
SSE
live pool state
DEX protocols
8+
Orca · Raydium · Meteora +
Flow
3API calls
quote · build · send
Venum swap fees
$0
venue fees apply
The execution flow

Three API calls. That's it.

Quote first. Build second. Submit third. Each step returns typed JSON you can inspect and reason about, with no opaque blobs.

01 · QUOTE

Get a Quote

POST to /v1/quote with input/output mints and amount. Returns the best route from the DEX router across all venues with output amount, price impact, and venue fees.

Routes are computed from streaming pool state, with no on-chain simulation and no wasted RPC calls.

02 · BUILD

Build the Transaction

POST to /v1/swap/build with the route and your wallet. Returns an unsigned VersionedTransaction you can inspect, modify, or extend.

Sign client-side. Venum never touches your private key.

03 · SUBMIT

Sign and Submit

POST the signed transaction to /v1/swap. Venum handles landing fan-out and confirmation tracking.

Best for apps, bots, and agents that want cleaner flows with less glue code.

From code or terminal

A good code sample,plus the CLI.

Use the raw HTTP API when you want direct control, the importable TypeScript client when you want a library surface in your app code, or the CLI when shell, CI, and agent workflows are the right fit.

swap-flow.tsAPI
// Quote, build, and submit with the HTTP API
const quote = await fetch('http://api.venum.dev/v1/quote', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': process.env.VENUM_API_KEY,
  },
  body: JSON.stringify({
    inputMint: 'SOL',
    outputMint: 'USDC',
    amount: '1000000000',
  }),
}).then((r) => r.json())

const build = await fetch('http://api.venum.dev/v1/swap/build', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': process.env.VENUM_API_KEY,
  },
  body: JSON.stringify({
    inputMint: quote.inputMint,
    outputMint: quote.outputMint,
    amount: quote.amount,
    slippageBps: quote.slippageBps,
    userPublicKey: wallet.publicKey.toBase58(),
  }),
}).then((r) => r.json())

const signed = await wallet.signTransaction(build.transaction)

const submit = await fetch('http://api.venum.dev/v1/swap', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': process.env.VENUM_API_KEY,
  },
  body: JSON.stringify({
    quoteId: build.quoteId,
    transaction: signed,
  }),
}).then((r) => r.json())
Library surface

Use @venumdev/sdk in your app.

Typed TypeScript SDK covers every endpoint with autocomplete, abort signals, and built-in retry. Zero runtime deps, isomorphic.

// Use the typed TypeScript client from @venumdev/sdk
import { VenumClient, solToLamports } from '@venumdev/sdk'

const venum = new VenumClient({
  apiKey: process.env.VENUM_API_KEY,
  baseUrl: 'https://api.venum.dev',
})

const quote = await venum.quote({
  inputMint: 'SOL',
  outputMint: 'USDC',
  amount: solToLamports(1),
})

const build = await venum.buildSwap({
  inputMint: 'SOL',
  outputMint: 'USDC',
  amount: solToLamports(1),
  slippageBps: 50,
  userPublicKey: wallet.publicKey.toBase58(),
})
CLI workflow

Run the same flow from shell or CI.

Good for bots, scripts, CI jobs, and operator workflows that should stay in the terminal instead of being embedded in an app.

# Run the same flow from a terminal, script, or CI job
pnpm dlx @venumdev/cli quote SOL USDC 1000000000 --json

pnpm dlx @venumdev/cli swap build SOL USDC 1000000000   --wallet <pubkey>

pnpm dlx @venumdev/cli swap sign-and-submit SOL USDC 1000000000   --keypair ~/.config/solana/id.json --wait
Quote, build, sign, and submit without leaving the terminal.CLI DocsCLI GitHub
Coverage

Major DEXes, one integration.

Covers concentrated liquidity, constant product AMMs, bin-based pools, stable swaps, and order books. Coverage is growing; see the docs for the current routed list.

CLMM
Orca Whirlpool
CLMM
Raydium CLMM
AMM
Raydium AMM V4
AMM
Raydium CPMM
Bin-based
Meteora DLMM
AMM
Meteora Dynamic
AMM
PumpSwap
Orderbook
Phoenix
StableSwap
Saber
And more...
vs Jupiter

Jupiter gives you a blob. Venum gives you the pieces.

A swap blob is fine if you just want a button. A quote / build / send flow is what you want if you are composing transactions, adding instructions, or routing them through bundles.

FeatureVenumJupiter
Output formatUnsigned transactionSerialized blob
Flow shapeQuote / build / sendQuote / opaque swap
Transaction sendingBuilt inNot included
Pool state streamingSSE real-timeNot available
Price feedsSSE streamsPolling only
Free tier10 quotes/min, 2 swaps/minStrict quotas
FAQ

Common questions.

How is Venum different from Jupiter?+

Same DEX coverage, different surface. Venum exposes quote / build / send as separate, typed endpoints with unsigned transactions you sign client-side. No Jupiter swap fee added on top of venue fees, no opaque platform cut, and the build step gives you the raw instructions to compose into your own transactions if you want.

Which DEXes does the Swap API route across?+

Orca Whirlpool, Raydium CLMM, Raydium AMM v4, Raydium CPMM, Meteora DLMM, Meteora Dynamic, PumpSwap, Phoenix, Saber, and more — every major Solana DEX. The router selects the best venue per swap from streaming pool state, no on-chain simulation in the hot path.

Do I sign the transaction, or does Venum?+

You sign. `/v1/swap/build` returns an unsigned transaction; you sign it with your wallet (in browser or server-side) and submit. Venum never touches private keys. Use `/v1/send` if you also want hosted submission and lifecycle tracking, but signing always stays on your side.

Are there per-swap fees on top of venue fees?+

No. Venum charges flat-rate API access; venue swap fees go to the DEX as usual. A free-tier swap costs you the venue fee, nothing else.

How fresh is the price / pool data behind the route?+

Pool state is streamed live from the major venues, not polled. The `/v1/prices` and `/v1/stream/prices` endpoints expose the same feed if you want the price layer separately. Quotes are computed off the latest in-memory state per venue.

Can I add a referral or platform fee on swaps in my dApp?+

Yes. The build step accepts a fee account and bps so you can collect a platform fee on top of the venue fee — same pattern as Jupiter, but with the unsigned-transaction flow.

Start swapping in two minutes.

Free tier. No credit card. No Venum swap fees.