Skip to main content
This guide will help you get started with the SolixDB GraphQL API and make your first request to query Solana DeFi data.

Prerequisites

  • HTTP client (curl, Postman, or your preferred tool)
  • Basic understanding of GraphQL
  • (Optional) GraphQL client library for your language

API Endpoint

All GraphQL requests should be made to:
POST https://api.solixdb.xyz/graphql

Making Your First Request

Basic GraphQL Query

The simplest way to get started is with a basic GraphQL query:
curl -X POST "https://api.solixdb.xyz/graphql" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ transactions(filters: { protocols: [\"jupiter_v6\"] }, pagination: { first: 10 }) { edges { node { signature protocolName fee computeUnits } } } }"
  }'

Query with Filters

Add filters to narrow down your results:
query {
  transactions(
    filters: {
      protocols: ["pump_fun", "pump_amm"]
      dateRange: { start: "2025-01-01", end: "2025-01-31" }
      feeRange: { min: "100000" }
    }
    pagination: { first: 100 }
  ) {
    edges {
      node {
        signature
        slot
        protocolName
        fee
        computeUnits
      }
      cursor
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Aggregation Query

Use aggregations to calculate statistics:
query {
  transactions(
    filters: {
      protocols: ["jupiter_v6"]
      dateRange: { start: "2025-01-01", end: "2025-01-31" }
    }
    groupBy: [PROTOCOL, HOUR]
    metrics: [COUNT, AVG_FEE, P95_COMPUTE_UNITS]
    sort: { field: COUNT, direction: DESC }
  ) {
    edges {
      node {
        protocol
        hour
        count
        avgFee
        p95ComputeUnits
      }
    }
  }
}

Understanding the Response

GraphQL responses follow this structure:
{
  "data": {
    "transactions": {
      "edges": [
        {
          "node": {
            "signature": "5VERv8NMxzbPDohNpJhHopN2C9R4G5GaPevYf5hLJ8Z7",
            "protocolName": "jupiter_v6",
            "fee": "5000",
            "computeUnits": "200000"
          },
          "cursor": "eyJzbG90IjoxMjM0NTY3ODksInNpZ25hdHVyZSI6IjVWRXJ2OE5NeHpiUERvaE5wSmhIb3BOMkM5UjRHNUdhUGV2WWY1aExKOFo3In0="
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "endCursor": "eyJzbG90IjoxMjM0NTY3ODksInNpZ25hdHVyZSI6IjVWRXJ2OE5NeHpiUERvaE5wSmhIb3BOMkM5UjRHNUdhUGV2WWY1aExKOFo3In0="
      }
    }
  }
}

Error Responses

If there’s an error, the response will include an errors array:
{
  "errors": [
    {
      "message": "Query complexity exceeds limit",
      "extensions": {
        "code": "COMPLEXITY_EXCEEDED",
        "complexity": 1200,
        "limit": 1000
      }
    }
  ],
  "data": null
}

Query Complexity

Before executing expensive queries, check their complexity:
query {
  queryComplexity(
    filters: {
      dateRange: { start: "2025-01-01", end: "2025-01-31" }
      protocols: ["pump_fun"]
    }
    groupBy: [PROTOCOL, HOUR]
    metrics: [COUNT, AVG_FEE]
  ) {
    score
    estimatedRows
    baseCost
    recommendations
  }
}
Queries with complexity >1000 are rejected. Always check complexity before executing expensive queries.

Pagination

For large result sets, use cursor-based pagination:
query GetTransactions($first: Int, $after: String) {
  transactions(
    filters: { protocols: ["pump_fun"] }
    pagination: { first: $first, after: $after }
  ) {
    edges {
      node {
        signature
        protocolName
        fee
      }
      cursor
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Supported Protocols

Currently, we support the following DEX protocols:
  • jupiter_v4 - Jupiter Aggregator V4
  • jupiter_v6 - Jupiter Aggregator V6
  • raydium_amm_v3 - Raydium AMM V3
  • raydium_cp_swap - Raydium CP Swap
  • pump_fun - Pump.fun
  • pump_amm - Pump AMM
  • whirlpool - Orca Whirlpool
We’re continuously adding support for more protocols. Check our changelog for updates.

Authentication

The API is publicly accessible and does not require authentication. Rate limiting is applied per IP address based on query complexity.
For details on rate limiting, see our Rate Limiting guide.

Next Steps

Now that you’ve made your first request, explore these resources: