Skip to content

Strategy list

Description

Paginated query of currently available strategies. Supports filtering by market type and risk label, and returns basic strategy info, trading symbols, performance summary, and NAV trend.

Endpoint

  • Method: POST
  • Path: /open/v1/strategy/page

Credits

  • Cost: 1

Request parameters

Parameters are sent as JSON in the request body.

FieldTypeRequiredDefaultDescription
pageNumintegerNo1Page number; minimum value is 1
pageSizeintegerNo20Page size; range 1–100
marketTypestringNo-Market type; supports spot, perpetual, delivery; exact match
riskLabelstringNo-Risk level; supports low, medium, high; exact match
languagestringNozh-CNResponse content language; supports zh-CN, zh-TW, en-US, vi-VN, ja-JP, ko-KR; returns 70005 when content for the requested language is temporarily unavailable; returns 40002 for unsupported values

Request example

bash
curl --location 'https://api.valuescan.ai/api/open/v1/strategy/page' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: xxxxx' \
--header 'X-TIMESTAMP: xxxxx' \
--header 'X-SIGN: xxxxx' \
--data '{
  "pageNum": 1,
  "pageSize": 20,
  "marketType": "perpetual",
  "riskLabel": "medium",
  "language": "zh-CN"
}'

Response fields

All return and drawdown rates in this document are decimals; for example, 0.12 represents 12%. ts, fromTs, and toTs are Unix timestamps in seconds.

data is a pagination object:

FieldTypeDescription
recordsarrayStrategy list for the current page
totallongTotal number of matching records
sizelongPage size
currentlongCurrent page number
pageslongTotal number of pages

Main fields in each item of records:

FieldTypeDescription
idlongValueScan strategy ID; used when querying strategy detail
namestringStrategy name
descriptionstringStrategy description
riskLabelstringRisk level: low, medium, or high
marketTypestringMarket type: spot, perpetual, or delivery
performanceobjectStrategy performance summary
providerStatusstringStrategy data status: active, paused, or retired
publishStatusintegerStrategy availability status; currently available strategies are 300
signalStatusintegerStrategy signal status
lastSignalSeqlongLatest signal sequence number; may be null
lastSignalTslongLatest signal Unix timestamp in seconds; may be null
tokensarrayList of trading symbols, including vsTokenId, symbol, name, icon
maxLeveragenumberMaximum leverage; may be null
avgLeveragenumberAverage leverage; may be null
liveSignalDayslongLive signal running days; may be null
backtestCagrnumberBacktest CAGR; may be null
winRatenumberWin rate; may be null
maxDrawdown30dnumberMaximum drawdown rate during the most recent 30 UTC calendar days; for example, 0.12 represents 12%; null when there is insufficient NAV data
trendobjectNAV trend, containing backtest and live arrays; each point contains ts, nav

performance fields:

FieldTypeDescription
navKindstringNAV type used for performance: backtest, live, or blended
fromTslongStart Unix timestamp in seconds for the statistics
toTslongEnd Unix timestamp in seconds for the statistics
totalReturnnumberCumulative return; for example, 0.25 represents 25%
cagrnumberCompound annual growth rate
sharpenumberSharpe ratio
maxDrawdownnumberMaximum drawdown rate across the full period

Fields in each item of tokens:

FieldTypeDescription
vsTokenIdlongValueScan token ID
symbolstringToken symbol
namestringToken name
iconstringToken icon URL

Fields in each NAV point of trend.backtest and trend.live:

FieldTypeDescription
tslongUnix timestamp in seconds
navnumberNAV at that time

Success response example

json
{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": 1001,
        "name": "BTC Trend Strategy",
        "description": "Trend-following strategy for BTC perpetual futures.",
        "riskLabel": "medium",
        "marketType": "perpetual",
        "providerStatus": "active",
        "publishStatus": 300,
        "signalStatus": 200,
        "lastSignalSeq": 128,
        "lastSignalTs": 1751328000,
        "tokens": [
          {
            "vsTokenId": 1,
            "symbol": "BTC",
            "name": "Bitcoin",
            "icon": "https://static.valuescan.io/valuescan/cmc/coins/1.png"
          }
        ],
        "maxLeverage": 3,
        "avgLeverage": 1.5,
        "liveSignalDays": 30,
        "backtestCagr": 0.25,
        "winRate": 0.58,
        "maxDrawdown30d": 0.08,
        "performance": {
          "navKind": "blended",
          "fromTs": 1735689600,
          "toTs": 1751328000,
          "totalReturn": 0.31,
          "cagr": 0.25,
          "sharpe": 1.42,
          "maxDrawdown": 0.12
        },
        "trend": {
          "backtest": [{"ts": 1735689600, "nav": 1.0}],
          "live": [{"ts": 1751328000, "nav": 1.03}]
        }
      }
    ],
    "total": 1,
    "size": 20,
    "current": 1,
    "pages": 1
  },
  "requestId": "xxx-xxx-xxx"
}

Error codes

CodeDescription
40002Invalid request parameters
50001The requested endpoint does not exist or is currently unavailable
60001Rate limit exceeded
70001Insufficient OpenAPI credits
70002OpenAPI access for the current user has been disabled
70005Strategy content for the requested language is temporarily unavailable