POST
/
graphql
curl --request POST \
  --url https://api.copin.io/graphql \
  --header 'Content-Type: application/json' \
  --data '{
  "operationName": "<string>",
  "variables": {
    "index": "<string>",
    "body": {
      "filter": {
        "and": [
          {}
        ]
      },
      "sorts": [
        {}
      ],
      "paging": {
        "size": 123,
        "from": 123
      }
    }
  },
  "query": "<string>"
}'
{
  "data": [
    {
      "id": "<string>",
      "account": "<string>",
      "totalTrade": 123,
      "totalWin": 123,
      "totalLose": 123,
      "totalGain": 123,
      "realisedTotalGain": 123,
      "totalLoss": 123,
      "realisedTotalLoss": 123,
      "totalVolume": 123,
      "avgVolume": 123,
      "avgRoi": 123,
      "realisedAvgRoi": 123,
      "maxRoi": 123,
      "realisedMaxRoi": 123,
      "pnl": 123,
      "realisedPnl": 123,
      "maxPnl": 123,
      "realisedMaxPnl": 123,
      "realisedMaxDrawdown": 123,
      "realisedMaxDrawdownPnl": 123,
      "winRate": 123,
      "profitRate": 123,
      "realisedProfitRate": 123,
      "orderPositionRatio": 123,
      "profitLossRatio": 123,
      "realisedProfitLossRatio": 123,
      "longRate": 123,
      "gainLossRatio": 123,
      "realisedGainLossRatio": 123,
      "avgDuration": 123,
      "minDuration": 123,
      "maxDuration": 123,
      "avgLeverage": 123,
      "minLeverage": 123,
      "maxLeverage": 123,
      "totalLiquidation": 123,
      "totalLiquidationAmount": 123,
      "runTimeDays": 123,
      "lastTradeAtTs": 123,
      "totalFee": 123,
      "type": "<string>",
      "statisticAt": "<string>",
      "lastTradeAt": "<string>",
      "indexTokens": [
        {}
      ],
      "protocol": "<string>",
      "createdAt": "<string>",
      "isOpenPosition": true
    }
  ],
  "meta": {
    "limit": 123,
    "offset": 123,
    "total": 123,
    "totalPages": 123
  }
}

Authentication

This endpoint requires authentication using a JWT token in the Authorization header.

Authorization
string

JWT token in the format: Authorization {token}

x-api-key
string

Token in the format: x-api-key {api-key}

Request Body

operationName
string
required

Name of the GraphQL operation (e.g., “Search”)

variables
object
required

Variables for the GraphQL query

query
string
required

GraphQL query string

Request Example

curl 'https://api.copin.io/graphql' \
  -H 'accept: */*' \
  -H 'accept-language: en-US,en;q=0.9,vi;q=0.8' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  --data-raw $'{"operationName":"Search","variables":{"index":"copin.position_statistics","body":{"filter":{"and":[{"field":"totalTrade","gte":"2"},{"field":"profitRate","gte":"60"},{"field":"pnl","gte":"100"},{"field":"winRate","gte":"51"},{"field":"runTimeDays","gte":"7"},{"field":"protocol","in":["GMX","JUPITER"]},{"field":"type","match":"D30"}]},"sorts":[{"field":"realisedPnl","direction":"desc"}],"paging":{"size":12,"from":0}}},"query":"query Search($index: String\u0021, $body: SearchPayload\u0021) {\\n  searchPositionStatistic(index: $index, body: $body) {\\n    data {\\n      id\\n      account\\n      protocol\\n      type\\n      maxDuration\\n      minDuration\\n      avgDuration\\n      realisedTotalGain\\n      totalLose\\n      totalLoss\\n      totalWin\\n      totalTrade\\n      totalLiquidation\\n      totalLiquidationAmount\\n      totalFee\\n      avgVolume\\n      totalVolume\\n      gainLossRatio\\n      orderPositionRatio\\n      profitLossRatio\\n      winRate\\n      longRate\\n      profitRate\\n      pnl\\n      unrealisedPnl\\n      avgRoi\\n      maxRoi\\n      maxPnl\\n      avgLeverage\\n      maxLeverage\\n      minLeverage\\n      runTimeDays\\n      indexTokens\\n      lastTradeAt\\n      lastTradeAtTs\\n      statisticAt\\n      createdAt\\n      updatedAt\\n      realisedTotalGain\\n      realisedTotalLoss\\n      realisedPnl\\n      realisedAvgRoi\\n      realisedMaxRoi\\n      realisedMaxPnl\\n      realisedMaxDrawdown\\n      realisedMaxDrawdownPnl\\n      realisedProfitRate\\n      realisedGainLossRatio\\n      realisedProfitLossRatio\\n      totalGain\\n      pairs\\n      __typename\\n    }\\n    meta {\\n      total\\n      limit\\n      offset\\n      totalPages\\n      __typename\\n    }\\n    __typename\\n  }\\n}"}'

Response

The response includes a data property containing the requested GraphQL data.

data
array

Array of position statistic objects

meta
object

Metadata about the response

Response Example

{
  "data": [
    {
      "id": "67fdbfa13219b4577b6973cb",
      "account": "0xF13304d2a5A74E8d6f87272503Fbac130B3bb2B0",
      "totalTrade": 1,
      "totalWin": 0,
      "totalLose": 1,
      "totalGain": 0,
      "realisedTotalGain": 0,
      "totalLoss": -8.781451873656628,
      "realisedTotalLoss": -2.4097624076006596,
      "totalVolume": 5079.55940610314,
      "avgVolume": 5079.55940610314,
      "avgRoi": -23.94,
      "realisedAvgRoi": -6.57,
      "maxRoi": -23.94,
      "realisedMaxRoi": -6.57,
      "pnl": -8.781451873656628,
      "realisedPnl": -2.4097624076006596,
      "maxPnl": -8.781451873656628,
      "realisedMaxPnl": -2.4097624076006596,
      "realisedMaxDrawdown": -6.57,
      "realisedMaxDrawdownPnl": -2.4097624076006596,
      "winRate": 0,
      "profitRate": 0,
      "realisedProfitRate": 0,
      "orderPositionRatio": 2,
      "profitLossRatio": 0,
      "realisedProfitLossRatio": 0,
      "longRate": 100,
      "gainLossRatio": 0,
      "realisedGainLossRatio": 0,
      "avgDuration": 20,
      "minDuration": 20,
      "maxDuration": 20,
      "avgLeverage": 138.5,
      "minLeverage": 138.5,
      "maxLeverage": 138.5,
      "totalLiquidation": 0,
      "totalLiquidationAmount": 0,
      "runTimeDays": 1,
      "lastTradeAtTs": 1744602207000,
      "totalFee": 6.371689466055969,
      "type": "D15",
      "statisticAt": "2025-04-15T02:08:33.740Z",
      "lastTradeAt": "2025-04-14T03:43:27.000Z",
      "indexTokens": [
        "GNS-191"
      ],
      "protocol": "GNS",
      "createdAt": "2025-04-15T02:08:33.755Z",
      "isOpenPosition": false
    }
  ],
  "meta": {
    "limit": 20,
    "offset": 0,
    "total": 56,
    "totalPages": 3
  }
}