Skip to main content
Legacy API: The REST API is maintained for backward compatibility. For new projects, we strongly recommend using the GraphQL API which provides more flexibility, better performance, and advanced features like aggregations, grouping, and ML dataset export.See our Migration Guide for help migrating from REST to GraphQL.
The REST API provides standardized endpoints for querying Solana transaction data. While still functional, the GraphQL API offers superior flexibility and performance.

Base URL

https://api.solixdb.xyz/api/v1

Endpoints

Get Transactions

Retrieve a list of transactions with optional filters. Endpoint: GET /transactions Query Parameters:
ParameterTypeRequiredDescription
protocol_namestringNoFilter by protocol (jupiter_v4, jupiter_v6, raydium_amm_v3, etc.)
program_idstringNoFilter by Solana program ID
date_fromstringNoStart date (YYYY-MM-DD)
date_tostringNoEnd date (YYYY-MM-DD)
signaturestringNoFilter by transaction signature
limitintegerNoNumber of results (1-1000, default: 100)
offsetintegerNoNumber of results to skip (default: 0)
GraphQL Equivalent: Use the transactions query with TransactionFilters and PaginationInput. See GraphQL API Reference.
curl -X GET "https://api.solixdb.xyz/api/v1/transactions?protocol_name=jupiter_v6&date_from=2025-07-20&limit=100" \

Get Transaction by Signature

Retrieve a specific transaction by its signature. Endpoint: GET /transactions/:signature Path Parameters:
ParameterTypeRequiredDescription
signaturestringYesTransaction signature
GraphQL Equivalent: Use the signature query. See GraphQL API Reference.
curl -X GET "https://api.solixdb.xyz/api/v1/transactions/5KJp..." \

Get Protocol Analytics

Get aggregated analytics for a specific protocol. Endpoint: GET /analytics/protocols Query Parameters:
ParameterTypeRequiredDescription
protocol_namestringYesProtocol name
date_fromstringNoStart date (YYYY-MM-DD)
date_tostringNoEnd date (YYYY-MM-DD)
GraphQL Equivalent: Use the protocolStats query. See GraphQL API Reference.
curl -X GET "https://api.solixdb.xyz/api/v1/analytics/protocols?protocol_name=jupiter_v6&date_from=2025-07-20" \

Get Time Series Data

Get time series data for transactions. Endpoint: GET /analytics/time-series Query Parameters:
ParameterTypeRequiredDescription
protocol_namestringNoFilter by protocol
date_fromstringYesStart date (YYYY-MM-DD)
date_tostringYesEnd date (YYYY-MM-DD)
granularitystringNoTime granularity: hour or day (default: hour)
GraphQL Equivalent: Use the timeSeries query with TimeBucket. See GraphQL API Reference.
curl -X GET "https://api.solixdb.xyz/api/v1/analytics/time-series?protocol_name=jupiter_v6&date_from=2025-07-20&date_to=2025-07-21&granularity=hour" \

Get Fee Analytics

Get fee statistics and analytics. Endpoint: GET /analytics/fees Query Parameters:
ParameterTypeRequiredDescription
protocol_namestringNoFilter by protocol
date_fromstringNoStart date (YYYY-MM-DD)
date_tostringNoEnd date (YYYY-MM-DD)
GraphQL Equivalent: Use the transactions query with groupBy and aggregation metrics like AVG_FEE, P95_FEE, P99_FEE. See GraphQL API Reference.
curl -X GET "https://api.solixdb.xyz/api/v1/analytics/fees?protocol_name=jupiter_v6" \

Get Global Stats

Get global statistics about the database. Endpoint: GET /stats
curl -X GET "https://api.solixdb.xyz/api/v1/stats" \

Execute SQL Query (Legacy)

Execute read-only SQL queries directly against the ClickHouse database. This endpoint allows you to write custom SELECT queries for maximum flexibility. Endpoint: POST /query
This endpoint is still available and maintained. For most use cases, the GraphQL API provides better type safety and performance. Use SQL queries only when you need custom logic not available in GraphQL.
Request Body:
ParameterTypeRequiredDescription
querystringYesSQL SELECT query (must include LIMIT)
formatstringNoResponse format: json or csv (default: json)
Safety Restrictions:
  • Only SELECT queries are allowed (no DROP, DELETE, UPDATE, INSERT, etc.)
  • Query must include a LIMIT clause
  • Maximum LIMIT value: 10,000 rows
  • Maximum query length: 100,000 characters
  • Query timeout: 30 seconds
  • Only single statements allowed (no semicolons)
curl -X POST "https://api.solixdb.xyz/api/v1/query" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "SELECT signature, protocol_name, fee, compute_units FROM transactions WHERE protocol_name = '\''jupiter_v6'\'' AND date >= '\''2025-07-20'\'' LIMIT 100"
  }'
Example Response (JSON):
{
  "data": [
    {
      "signature": "5KJp...",
      "protocol_name": "jupiter_v6",
      "fee": 5000,
      "compute_units": 200000
    }
  ],
  "count": 100,
  "query": "SELECT signature, protocol_name, fee, compute_units FROM transactions WHERE protocol_name = 'jupiter_v6' AND date >= '2025-07-20' LIMIT 100"
}
Example Response (CSV):
protocol_name,total
jupiter_v6,150000000
jupiter_v4,100000000
raydium_amm_v3,50000000
Error Responses:
{
  "error": "Invalid query",
  "message": "Query must include a LIMIT clause. Maximum allowed: LIMIT 10000"
}
{
  "error": "Invalid query",
  "message": "Destructive operation 'DROP' is not allowed. Only read-only queries are permitted."
}

Response Format

All successful responses follow this format:
{
  "data": { ... },
  "count": 100,
  "limit": 100,
  "offset": 0
}

Health & Monitoring Endpoints

Health Check

Endpoint: GET /health Check API health status.
curl -X GET "https://api.solixdb.xyz/health"

Prometheus Metrics

Endpoint: GET /metrics Get Prometheus metrics for monitoring.
curl -X GET "https://api.solixdb.xyz/metrics"

Query Pattern Analysis

Endpoint: GET /admin/suggest-materialized-views Analyze query patterns for optimization suggestions (admin only).
For detailed error handling information, see our Error Handling guide.
Migrating to GraphQL? See our Migration Guide for step-by-step instructions on converting REST API calls to GraphQL queries.