Skip to main content
GET
/
dca
/
pair
/
{inputMint}
/
{outputMint}
SDK
import { Client } from '@solana-tracker/data-api';

const client = new Client({ apiKey: 'YOUR_API_KEY' });

const data = await client.getDcaPair('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'So11111111111111111111111111111111111111112', { sort: 'volume', limit: 10 });
curl --request GET \
--url https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint} \
--header 'x-api-key: <api-key>'
import requests

url = "https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}")
.header("x-api-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://data.solanatracker.io/dca/pair/{inputMint}/{outputMint}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "outputMint": "So11111111111111111111111111111111111111112",
  "pair": "USDC → SOL",
  "orders": [
    {
      "program": "jupiter",
      "programId": "DCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M",
      "address": "125PQmudTAXHUUGxtSra1xTzGu3NRCMbRU7i9cikEpwd",
      "owner": "2FbbdMWfrfGpyyK4Wh76vyxbmDGcp3LxZNhwBwFpV5UK",
      "status": "active",
      "direction": "buying",
      "pair": "USDC → SOL",
      "input": {
        "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "symbol": "USDC",
        "name": "USD Coin",
        "decimals": 6,
        "image": "https://image.solanatracker.io/proxy?url=example",
        "uri": "https://example.com",
        "description": "",
        "twitter": null,
        "website": null,
        "hasFileMetaData": true,
        "priceUsd": 1
      },
      "output": {
        "mint": "So11111111111111111111111111111111111111112",
        "symbol": "SOL",
        "name": "Wrapped SOL",
        "decimals": 9,
        "image": "https://image.solanatracker.io/proxy?url=example-sol",
        "priceUsd": 142.5
      },
      "deposited": 1000,
      "depositedUsd": 1000,
      "used": 200,
      "usedUsd": 200,
      "remaining": 800,
      "remainingUsd": 800,
      "received": 5.2,
      "receivedUsd": 741,
      "perCycle": 50,
      "perCycleUsd": 50,
      "frequency": "1h",
      "progressPercent": 20,
      "volume": 5.2,
      "volumeUsd": 741,
      "createdAt": "2024-01-01T00:00:00.000Z",
      "nextCycleAt": "2024-01-02T00:00:00.000Z",
      "raw": {
        "deposited": "1000000000",
        "used": "200000000"
      }
    }
  ],
  "pagination": {
    "limit": 50,
    "nextCursor": null,
    "hasMore": false,
    "count": 1,
    "total": 1
  }
}
{
"error": {
"code": "INVALID_MINT",
"message": "Invalid mint address"
}
}
{
"error": {
"code": "SERVER_ERROR",
"message": "Internal server error"
}
}

SDK Example

import { Client } from '@solana-tracker/data-api';

const client = new Client({ apiKey: 'YOUR_API_KEY' });

const data = await client.getDcaPair('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'So11111111111111111111111111111111111111112', { sort: 'volume', limit: 10 });

Authorizations

x-api-key
string
header
required

API Key for authentication

Path Parameters

inputMint
string
required
outputMint
string
required

Query Parameters

program
string
default:jupiter

DCA program to query. Aliases: dex, platform. Default: jupiter. Use GET /dca/programs for supported ids.

limit
integer
default:50

Max results per page. Default 50, max 100.

Required range: 1 <= x <= 100
cursor
string

Pagination cursor — last order address from the previous page. Must be used with the same sort, status, and program. Invalid cursor returns 400 INVALID_CURSOR.

sort
enum<string>
default:volume

Sort field. Alias: sortBy. Default: volume.

Available options:
volume,
deposited,
remaining,
progress,
recent,
created,
status
status
enum<string>
default:all

Filter by order status. Default: all.

Available options:
active,
paused,
completed,
pending,
all

Response

Successful response

inputMint
string
outputMint
string
pair
string
orders
object[]
pagination
object