Real-Time Solana Data at Your Fingertips

Stream new pairs and prices over a super fast websocket

Get API Key View Docs
No credit card required • Instant Setup
Supported Exchanges:
Raydium PumpSwap PumpFun

👀 See The Data...

{
  "slot": 301578636,
  "signature": "UWnvRXCHpmDxb9tQAYYEEoY8r2JVZ3CcbDLpsFp8EGBdv5njjyEkGXhYxcFCc7Y68X15SWrfve4rycvM4vGRJh7",
  "blockTime": 1731688226,
  "pair": {
      "sourceExchange": "raydium",
      "ammAccount": "CDnqCfvxQvncrWpoTT36xBCcthzQyh8RumuvoFsFZNVC",
      "baseToken": {
          "account": "G9GZaVRPiYRfNQF7oqNoeXKwB5jFbLSHe5fxLcCpump",
          "info": {
              "decimals": 9,
              "supply": "206900000000000000",
              "metadata": {
                  "name": "randomcoin",
                  "symbol": "randomcoin",
                  "logo": "https://arweave.net/xDf9sPlSY4SMmFQzyCK-xakNl-m7a17lKPO6BttSO3M"
              },
              "mintAuthority": null,
              "freezeAuthority": null
          }
      },
      "quoteToken": {
          "account": "So11111111111111111111111111111111111111112",
          "info": null
      },
      "baseTokenLiquidityAdded": "206900000000000000",
      "quoteTokenLiquidityAdded": "630000000000"
  }
}
{
  "slot": 315256016,
  "signature": "2BpJTsumysXzfX7BZS8u3o8xaZUdov3QGSijfB9asBfWowsRuvGwFY88FqaeWZzbywHobTE5uvDPzcV4LnaGdAbX",
  "blockTime": 1737393555,
  "swap": {
      "ammAccount": "CDHWtKhraDWyp57B2bp7DM5DwHGiyRD8f6n5sKKR7VWo",
      "baseTokenMint": "BwyMeGp9kqCQ7zYn1mEj5REkMFKZhRRHfCEJ8eqcmoon",
      "quoteTokenMint": "So11111111111111111111111111111111111111112",
      "walletAccount": "5S2fWgsbzqTTGVkUUrk83iH17h9T8C5ojYxhrDUWbg6L",
      "quotePrice": "4.665456971e-06",
      "usdValue": 466.04,
      "baseAmount": "398674773250",
      "swapType": "buy"
  }
}

Get tokens up to 1 minute before they're listed on Dexscreener

🧑‍💻 Getting Started

wscat --connect wss://api.solanastreaming.com --header X-API-KEY:923aeea0ac3549a80dcd9f881986eaf7 --execute '{"id":1,"method":"newPairSubscribe"}' -w 600

# For bash:
# 1. Install wscat with npm install -g wscat
# 2. Get your api key
# 3. Copy and paste the command above into your terminal with your api key.
// go get github.com/gorilla/websocket
// Connect
c, _, err := websocket.DefaultDialer.Dial("wss://api.solanastreaming.com/", http.Header{
    "X-Api-Key": []string{"923aeea0ac3549a80dcd9f881986eaf7"}
})
if err != nil {
    log.Fatal("dial:", err)
}
defer c.Close()

// Start the pair / price stream
err = c.WriteMessage(websocket.TextMessage, []byte(`{"id":1,"method":"newPairSubscribe"}`))
if err != nil {
    log.Fatal("write:", err)
}

for {
    // Continuously read pairs / prices
    _, message, err := c.ReadMessage()
    if err != nil {
        log.Fatal("read:", err)
    }
    log.Printf("recv: %s\n", message)
}
// npm install ws
const WebSocket = require('ws');

(async function () {
    // Connect
    const ws = new WebSocket('wss://api.solanastreaming.com/', undefined,
        {
            headers: {
                'X-API-KEY': '923aeea0ac3549a80dcd9f881986eaf7'
            }
        }
    );
    ws.on('error', console.error);
    ws.on('open', () => {
        // Start the pair / price stream
        ws.send('{"id":1,"method":"newPairSubscribe"}');
    });
    ws.on('message', (data) => {
        // Continuously read pairs / prices
        console.log('received: %s', data);
    });
})();
// composer require textalk/websocket
$client = new \WebSocket\Client("wss://api.solanastreaming.com/", [
    'headers' => [
        'X-Api-Key'=>'923aeea0ac3549a80dcd9f881986eaf7'
    ], 
    'timeout' => -1
]);
$client->text('{"id":1,"method":"newPairSubscribe"}');

while(true){
    $message =  $client->receive();
    echo "Received: ", $message, "\n";
}
# pip3 install websockets
import asyncio
import websockets
import json

async def main():
    uri = "wss://api.solanastreaming.com"
    async with websockets.connect(uri, additional_headers={"X-API-KEY": "923aeea0ac3549a80dcd9f881986eaf7"}) as websocket:
        # Subscribe to new pairs
        await websocket.send(json.dumps({"method":"newPairSubscribe"}))
        
        # Listen for messages
        async for message in websocket:
            print(json.loads(message))

asyncio.get_event_loop().run_until_complete(main())
Used By
500+
Developers
Streamed Over
3.1M
New Pairs
Streamed Over
1.9T
Swaps
🕵 Not what you were looking for?
Find the best solution by comparing against others:

🚀 Even more features...

Fast

Average 1.6 seconds behind the live chain time. This is faster than DexScreener!

Easy Setup

Get going in seconds with multiple language examples

Cheap

For the data we send you, we are significantly cheaper than our closest competitor

Cancel Anytime

As we bill monthly, you can cancel your subscription any time.

Secure Websocket

All data is transferred over an encrypted websocket

Free Tier

Try out a feed to see if it fits your needs.

💳 Pricing

Free

Best for evaluating the platform.

$0 / month

100 NewPair events
1,000 Swap events
1 Swap Filter
1 Connection

NewPairs Only

Track all new pairs 24/7

$29 / month
5 Day Free Trial

Unlimited NewPair events
1,000 Swap events
1 Swap Filter
1 Connection
Commercial Use
Live Chat Support

Basic

Track all new pairs & up to 10 token addresses 24/7

$79 / month
5 Day Free Trial

Unlimited NewPair events
Unlimited Filtered Swap events
At least 1 filter must be specified
10 Swap filters
1 Connection
Commercial Use
Live Chat Support

Pro

Track all new pairs & token addresses 24/7

$199 / month
5 Day Free Trial

Unlimited NewPair events
Unlimited Swap events
1K Swap filters
No Filter requirement
1 Connection
Commercial Use
Live Chat Support

Please contact us for any enterprise grade or multi connection usage.

🙋 FAQ

We are a solana blockchain data processing service. We parse raw blockchain data, then make it available via a very fast websocket. We have multiple forms of data that we stream so you can choose what data you require.

We don't have the same expenditures as other big companies to put it simply. We don't have the expense of offices or employing a lot of staff. We also dont have a fancy website as SolanaStreaming was built by back end developers that specialize in reliable low latency applications so we spend more time on the product rather than a fancy marketing website. We also don't believe in charging a huge markup and so the end result is a much cheaper product. We don't spend a lot on marketing so spreading the word is always appreciated to help us keep it going.

Another factor of cost with solana products relate to the amount of data they consume. Solana generates approximately 500GB of new data each day! We can parse and filter the data, greatly reducing its size, then pass it on to you, greatly reducing the bandwidth cost.

We get data directly from the solana chain. We use multiple node providers to source the data for reliability, then parse the blocks in real time and send the data on to you.

You can expect a latency of anywhere between milliseconds to a couple of seconds as an estimate for both pairs and swaps. However it is good practice to check how far behind the event is before using it.

We focus on new pairs and swaps. You can find our supported exchanges here. We're constantly adding new features & updates so we hope to include more exchanges in the future.

We currently operate our service from servers located in London (UK).

Yes, but you will need to run either a full Solana node or connect to a costly shared rpc provider. Both options are expensive and require advanced in-depth Solana knowledge to get started. We offer a simple, pre-parsed filtered data stream that you can connect to in seconds.

We do not offer any financial or trading advice, we only process solana blockchain data. It is entierly up to you how you use the data. We are not liable for any financial losses as a result of using this data.

Yes. It is available on the swap object in a field called quotePrice. This can then be converted into USD depending on the pair quote token.

You can unsubscribe from your upgrade at any time following the manage subscription link on the dashboard. This will take you to a page managed by Paddle which has an unsubscribe button.

Not yet... but watch out. We're looking into it and we hope to support this in the future.
Designed for developers.
Built for speed.
Tested for reliability.