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.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
pageNum | integer | No | 1 | Page number; minimum value is 1 |
pageSize | integer | No | 20 | Page size; range 1–100 |
marketType | string | No | - | Market type; supports spot, perpetual, delivery; exact match |
riskLabel | string | No | - | Risk level; supports low, medium, high; exact match |
language | string | No | zh-CN | Response 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.12represents 12%.ts,fromTs, andtoTsare Unix timestamps in seconds.
data is a pagination object:
| Field | Type | Description |
|---|---|---|
records | array | Strategy list for the current page |
total | long | Total number of matching records |
size | long | Page size |
current | long | Current page number |
pages | long | Total number of pages |
Main fields in each item of records:
| Field | Type | Description |
|---|---|---|
id | long | ValueScan strategy ID; used when querying strategy detail |
name | string | Strategy name |
description | string | Strategy description |
riskLabel | string | Risk level: low, medium, or high |
marketType | string | Market type: spot, perpetual, or delivery |
performance | object | Strategy performance summary |
providerStatus | string | Strategy data status: active, paused, or retired |
publishStatus | integer | Strategy availability status; currently available strategies are 300 |
signalStatus | integer | Strategy signal status |
lastSignalSeq | long | Latest signal sequence number; may be null |
lastSignalTs | long | Latest signal Unix timestamp in seconds; may be null |
tokens | array | List of trading symbols, including vsTokenId, symbol, name, icon |
maxLeverage | number | Maximum leverage; may be null |
avgLeverage | number | Average leverage; may be null |
liveSignalDays | long | Live signal running days; may be null |
backtestCagr | number | Backtest CAGR; may be null |
winRate | number | Win rate; may be null |
maxDrawdown30d | number | Maximum drawdown rate during the most recent 30 UTC calendar days; for example, 0.12 represents 12%; null when there is insufficient NAV data |
trend | object | NAV trend, containing backtest and live arrays; each point contains ts, nav |
performance fields:
| Field | Type | Description |
|---|---|---|
navKind | string | NAV type used for performance: backtest, live, or blended |
fromTs | long | Start Unix timestamp in seconds for the statistics |
toTs | long | End Unix timestamp in seconds for the statistics |
totalReturn | number | Cumulative return; for example, 0.25 represents 25% |
cagr | number | Compound annual growth rate |
sharpe | number | Sharpe ratio |
maxDrawdown | number | Maximum drawdown rate across the full period |
Fields in each item of tokens:
| Field | Type | Description |
|---|---|---|
vsTokenId | long | ValueScan token ID |
symbol | string | Token symbol |
name | string | Token name |
icon | string | Token icon URL |
Fields in each NAV point of trend.backtest and trend.live:
| Field | Type | Description |
|---|---|---|
ts | long | Unix timestamp in seconds |
nav | number | NAV 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
| Code | Description |
|---|---|
40002 | Invalid request parameters |
50001 | The requested endpoint does not exist or is currently unavailable |
60001 | Rate limit exceeded |
70001 | Insufficient OpenAPI credits |
70002 | OpenAPI access for the current user has been disabled |
70005 | Strategy content for the requested language is temporarily unavailable |