{
  "version": "vendor-tushare-readonly-audit-v1",
  "generatedAt": "2026-08-05T02:58:34.619Z",
  "endpoint": "quantdata888.duckdns.org",
  "token": {
    "persistedInReport": false,
    "rawValueLogged": false,
    "duplicatePrefixDetected": true,
    "normalizedSegmentLength": 51
  },
  "scope": "READ_ONLY_DATA_API__NO_BROKER__NO_ORDERS",
  "summary": {
    "tests": 18,
    "successful": 14,
    "failed": 4,
    "successRate": 0.777778
  },
  "tests": [
    {
      "id": "trade-calendar",
      "api": "trade_cal",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 35,
      "fields": [
        "exchange",
        "cal_date",
        "is_open",
        "pretrade_date"
      ],
      "firstDate": "20260701",
      "lastDate": "20260804",
      "latencyMs": 1880
    },
    {
      "id": "a-share-daily",
      "api": "daily",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 25,
      "fields": [
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "vol",
        "amount"
      ],
      "firstDate": "20260701",
      "lastDate": "20260804",
      "latencyMs": 343
    },
    {
      "id": "ten-year-daily",
      "api": "daily",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 2427,
      "fields": [
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "vol",
        "amount"
      ],
      "firstDate": "20160804",
      "lastDate": "20260804",
      "latencyMs": 310
    },
    {
      "id": "listed-security-master",
      "api": "stock_basic",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 5537,
      "fields": [
        "ts_code",
        "symbol",
        "name",
        "market",
        "exchange",
        "list_status",
        "list_date",
        "delist_date"
      ],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 2350
    },
    {
      "id": "delisted-security-master",
      "api": "stock_basic",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 339,
      "fields": [
        "ts_code",
        "symbol",
        "name",
        "market",
        "exchange",
        "list_status",
        "list_date",
        "delist_date"
      ],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 257
    },
    {
      "id": "name-change",
      "api": "namechange",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 4,
      "fields": [
        "ts_code",
        "name",
        "start_date",
        "end_date",
        "ann_date",
        "change_reason"
      ],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 479
    },
    {
      "id": "suspension-history",
      "api": "suspend_d",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 22,
      "fields": [
        "ts_code",
        "trade_date",
        "suspend_timing",
        "suspend_type"
      ],
      "firstDate": "20200312",
      "lastDate": "20200312",
      "latencyMs": 2140
    },
    {
      "id": "adjustment-factor",
      "api": "adj_factor",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 2427,
      "fields": [
        "ts_code",
        "trade_date",
        "adj_factor"
      ],
      "firstDate": "20160804",
      "lastDate": "20260804",
      "latencyMs": 408
    },
    {
      "id": "daily-fundamentals",
      "api": "daily_basic",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 25,
      "fields": [
        "ts_code",
        "trade_date",
        "close",
        "turnover_rate",
        "volume_ratio",
        "total_mv",
        "circ_mv"
      ],
      "firstDate": "20260701",
      "lastDate": "20260804",
      "latencyMs": 374
    },
    {
      "id": "daily-price-limits",
      "api": "stk_limit",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 25,
      "fields": [
        "ts_code",
        "trade_date",
        "pre_close",
        "up_limit",
        "down_limit"
      ],
      "firstDate": "20260701",
      "lastDate": "20260804",
      "latencyMs": 2040
    },
    {
      "id": "st-list",
      "api": "stock_st",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 210,
      "fields": [
        "ts_code",
        "name",
        "trade_date",
        "type",
        "type_name"
      ],
      "firstDate": "20260804",
      "lastDate": "20260804",
      "latencyMs": 488
    },
    {
      "id": "fund-daily",
      "api": "fund_daily",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 25,
      "fields": [
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "vol",
        "amount"
      ],
      "firstDate": "20260701",
      "lastDate": "20260804",
      "latencyMs": 2266
    },
    {
      "id": "fund-adjustment",
      "api": "fund_adj",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 2427,
      "fields": [
        "ts_code",
        "trade_date",
        "adj_factor"
      ],
      "firstDate": "20160804",
      "lastDate": "20260804",
      "latencyMs": 344
    },
    {
      "id": "opening-auction",
      "api": "stk_auction_o",
      "ok": false,
      "httpStatus": 200,
      "apiCode": 2003,
      "message": "api not purchased",
      "rows": 0,
      "fields": [],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 2506
    },
    {
      "id": "current-opening-auction",
      "api": "stk_auction",
      "ok": false,
      "httpStatus": 200,
      "apiCode": 2003,
      "message": "api not purchased",
      "rows": 0,
      "fields": [],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 295
    },
    {
      "id": "closing-auction",
      "api": "stk_auction_c",
      "ok": false,
      "httpStatus": 200,
      "apiCode": 2003,
      "message": "api not purchased",
      "rows": 0,
      "fields": [],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 495
    },
    {
      "id": "realtime-minute",
      "api": "rt_min",
      "ok": true,
      "httpStatus": 200,
      "apiCode": 0,
      "message": "",
      "rows": 1,
      "fields": [
        "time",
        "open",
        "close",
        "high",
        "low",
        "vol",
        "amount"
      ],
      "firstDate": "2026-08-05 10:58:00",
      "lastDate": "2026-08-05 10:58:00",
      "latencyMs": 3258
    },
    {
      "id": "realtime-minute-daily",
      "api": "rt_min_daily",
      "ok": false,
      "httpStatus": 200,
      "apiCode": 2003,
      "message": "api not purchased",
      "rows": 0,
      "fields": [],
      "firstDate": null,
      "lastDate": null,
      "latencyMs": 448
    }
  ],
  "crossCheck": {
    "source": "Eastmoney public unadjusted daily K-line",
    "sourceRows": 25,
    "sourceLatencyMs": 438,
    "comparable": true,
    "vendorRows": 25,
    "publicRows": 25,
    "overlappingDates": 25,
    "exactOhlcMatches": 25,
    "exactVolumeMatches": 25,
    "ohlcMatchRate": 1,
    "volumeMatchRate": 1
  },
  "verdict": {
    "usableForResearch": true,
    "usableAsSoleLiveSource": false,
    "brokerGrade": false,
    "auctionVerified": false,
    "realtimeMinuteVerified": true,
    "reasons": [
      "第三方Tushare兼容接口不是券商行情或成交回报",
      "单次成功只证明当前可调用，不证明数据授权、长期SLA或点时无偏",
      "实盘队列仍需要券商Level-2与订单回报"
    ]
  }
}
