开发者文档 · 数据集 API

如何调用数据集 API

全站共用一套接口规范:地址格式、鉴权方式、分页与错误处理统一。

任意已购、支持 API 交付的数据集,只需把路径中的 {商品标识} 换成该商品在详情页显示的标识即可。下方提供 curl / Python / JavaScript / Java / Go / C# 示例,也可用 Postman。

统一规范

地址、鉴权、分页与错误码全站一致,换商品只需替换标识。

密钥鉴权

购买后申请密钥,请求头携带 X-API-Key,一钥对应一商品。

多语言示例

curl / Python / JS / Java / Go / C# 与 Postman,可直接复制联调。

说明
统一文档,覆盖全部数据集商品。

接口形如 /api/v1/data/{商品标识}/rows商品标识可在商品详情页或「我的购买」中查看(金融、医疗、工业等各类数据集通用)。 各列含义以该商品的「字段说明」与数据集介绍为准,本页不绑定某一具体商品。

  1. 凭证

    阅读文档与获取凭证

    先了解接口地址与参数(本页),再完成账号与密钥:

    1. 注册并登录买家账号
    2. 数据产品中选购目标数据集(确认交付方式含 API)
    3. 打开我的购买,对已购商品点击「申请 API Key」
    4. 页面会只显示一次明文密钥(形如 ds_…),请立即复制保存
    鉴权方式

    在请求头加入 X-API-Key: ds_你的密钥(不要写在网址里)。每把密钥仅对应一件已购商品。

  2. 请求

    构建 HTTP 请求

    向数据接口发送 GET 请求。将示例中的 商品标识 替换为你在商品详情页看到的标识。

    方法路径说明
    GET /api/v1/data/{商品标识}/rows 分页查询数据行。查询参数:页码(默认 1)、每页条数(默认 50,最大 200);可选标签筛选
    GET /api/v1/data/{商品标识}/schema 查询字段说明(列名、类型等,随数据集变化)
    GET /api/v1/data/{商品标识}/meta 查询概况:总行数、列名、来源与许可摘要

    查询参数英文名:页码 page、每页条数 size、标签筛选 label(可选)。

    curl -H "X-API-Key: ds_你的密钥" \
      "https://www.dataocean.zhixxing.cn/api/v1/data/商品标识/rows?page=1&size=10"
    Postman

    方法选 GET;地址填 https://www.dataocean.zhixxing.cn/api/v1/data/{商品标识}/rows;Headers 增加 X-API-Key = ds_…;Params 增加页码 page、每页条数 size

  3. 响应

    接收与解析响应

    成功时返回 HTTP 200,正文为 JSON。行查询大致结构如下(列名随数据集变化):

    {
      "slug": "商品标识",
      "page": 1,
      "size": 10,
      "total": 1000,
      "columns": ["列名甲", "列名乙", "标签列", "..."],
      "rows": [
        {"列名甲": "…", "列名乙": 1.23, "标签列": 0}
      ]
    }

    对应关系:slug → 商品标识;rows → 本页数据行;total → 总行数; page / size → 页码 / 每页条数;columns → 列名列表。 具体列含义请打开该商品的「字段说明」接口或商品详情中的数据集介绍。

    for row in payload["rows"]:
        # 按该商品的字段说明读取列,勿写死某一商品的列名
        print(row)
        # ... 你的业务逻辑
  4. 异常

    处理错误与异常

    请根据 HTTP 状态码与返回中的错误码分支处理,避免把错误响应当数据解析。

    HTTP错误码含义建议
    400 bad_request 参数非法(如每页条数超过 200) 检查页码、每页条数、标签筛选
    401 unauthorized 缺少、无效或已撤销的 API 密钥 重新申请密钥
    403 forbidden 未购买、购买过期,或密钥不属于该商品 先购买对应数据集
    404 not_found 商品或数据包不存在 核对商品标识
    429 rate_limited 请求过于频繁 稍后重试 / 降低请求频率
    import requests
    
    def fetch_rows(api_key: str, product_code: str, page: int = 1, size: int = 10):
        r = requests.get(
            f"https://www.dataocean.zhixxing.cn/api/v1/data/{product_code}/rows",
            headers={"X-API-Key": api_key},
            params={"page": page, "size": size},
            timeout=30,
        )
        if r.status_code == 401:
            raise SystemExit("API 密钥无效或已撤销,请到「我的购买」重新申请")
        if r.status_code == 403:
            raise SystemExit("无购买权限,请先购买该数据集")
        if r.status_code == 400:
            raise SystemExit(f"参数错误: {r.json()}")
        if r.status_code == 429:
            raise SystemExit("请求过于频繁,请稍后重试")
        r.raise_for_status()
        return r.json()
    
    data = fetch_rows("ds_你的密钥", "商品标识")
    print(data["rows"][0])

准备好联调了吗?

申请密钥后即可按本页示例发起请求;也可先浏览支持 API 交付的数据产品。