PingCodeRESTAPI
PingCode 官网官方接口文档
PingCode 官网官方接口文档
    • 概述
    • 全局错误码
    • 鉴权
      • 客户端凭据
        • 获取企业令牌
      • 授权码
        • 登录
        • 私有部署-登录
        • 请求授权(get_transaction_id)
        • 私有部署-请求授权(get_transaction_id)
        • authorized(get_code)
        • 私有部署-authorized(get_code) 
        • 获取用户令牌 (Get token)
        • 刷新用户令牌 (Refresh_access_token)
    • 全局
      • 个人
        • 获取个人基本信息
      • 组织
        • 企业
          • 获取企业信息
        • 企业成员
          • 创建一个企业成员
          • 部分更新一个企业成员
          • 批量更新企业成员属性
          • 获取企业成员列表
          • - 获取一个企业成员
        • 部门
          • 创建一个部门
          • 部分更新一个部门
          • 获取部门列表
          • - 获取一个部门
          • 删除一个部门
        • 团队
          • 创建一个团队
          • 部分更新一个团队
          • 获取团队列表
          • - 获取一个团队
          • 添加一个团队成员
          • 获取团队成员列表
          • - 获取一个团队成员
          • 移除一个团队成员
        • 角色
          • 获取角色列表
          • - 获取一个角色
        • 职位
          • 获取职位列表
          • - 获取一个职位
      • 安全
        • 日志
          • 获取登录日志列表
          • 获取审计日志列表
      • 通用
        • 评论
          • 创建一个评论
          • 获取评论列表
          • - 获取一个评论
          • 删除一个评论
        • 附件
          • 上传一个附件
          • 上传一个代码段
          • 获取附件列表
          • - 获取一个附件
          • 删除一个附件
        • 关注人
          • 添加一个关注人
          • 获取关注人列表
          • - 获取一个关注人
          • 移除一个关注人
        • 关联
          • 创建一个关联
          • - 获取一个关联
          • 获取关联列表
          • 删除一个关联
        • 活动记录
          • 获取活动记录列表
        • 工时
          • 创建一个工时
          • 部分更新一个工时
          • 获取工时列表
          • - 获取一个工时
          • 删除一个工时
          • 获取工时类型列表
          • - 获取一个工时类型
        • 评审
          • 创建一个评审
          • 获取一个评审
          • 获取评审列表
          • 删除一个评审
          • 向评审中添加一个评审内容
          • 获取评审中的一个评审内容
          • 获取评审中的评审内容列表
          • 在评审中移除一个评审内容
    • 产品管理 Product
      • 产品
        • 创建一个产品
        • 部分更新一个产品
        • 获取产品列表
        •  -获取一个产品
        • 向产品中添加一个成员
        • 获取产品中的成员列表
        • 获取一个产品成员
        • 在产品中移除一个成员
        • 向产品中添加一个需求模块
        • 获取产品中的需求模块列表
        • 在产品中移除一个需求模块
        • 获取产品中的需求排期列表
        •  - 获取产品中的一个需求排期
        • 获取产品中工单渠道列表
        •  - 获取产品中一个工单渠道
        • 获取产品中工单类型列表
        • - 获取产品中工单一个类型列表
        • 获取产品中的标签列表
        • - 获取产品中的一个标签
        • 在产品中移除一个标签
      • 客户
        • 获取客户列表
        • - 获取一个客户
        • 创建一个客户
        • 部分更新一个客户
      • 外部用户
        • 创建一个外部用户
        • 部分更新一个外部用户
        • 获取外部用户列表
        • 删除一个外部用户
      • 工单
        • 创建一个工单
        • 部分更新一个工单
        • 获取工单列表
        • 搜索工单列表
        • - 获取一个工单
        • 获取工单类型列表
        • - 获取一个工单类型
        • 获取工单状态列表
        • - 获取一个工单状态
        • 获取工单属性列表
        • - 获取一个工单属性
        • 获取工单渠道列表
        • - 获取工单一个渠道
        • 获取工单优先级列表
        • 获取一个工单优先级
        • 获取工单解决方案列表
        • - 获取工单一个解决方案
        • 获取工单标签列表
        • - 获取工单一个标签
        • 获取工单流转记录列表
      • 需求
        • 创建一个需求
        •  部分更新一个需求
        • 获取需求列表
        • 搜索需求列表
        • - 获取一个需求
        • 获取需求状态列表
        • - 获取需求一个状态
        • 获取需求属性列表
        • - 获取需求一个属性
        • 获取需求模块列表
        • - 获取需求一个模块
        • 获取需求排期列表
        • - 获取需求一个排期
        • 获取需求优先级列表
        • - 获取需求一个优先级
        • 获取需求流转记录列表
      • 产品配置中心
        • 工单配置
          • 获取全部工单类型列表
          • - 获取一个工单类型
          • - 创建一个工单状态
          • - 部分更新一个工单状态
          • 获取全部工单状态列表
          • - 获取一个工单状态
          • 获取工单状态方案列表
          • 向状态方案中添加一个工单状态
          • 获取状态方案中的工单状态列表
          • 在状态方案中移除一个工单状态
          • 向状态方案中添加一个工单状态流转
          • 获取状态方案中的工单状态流转列表
          • 在状态方案中移除一个工单状态流转
          • - 创建一个工单属性
          • - 部分更新一个工单属性
          • 获取全部工单属性列表
          • - 获取一个工单属性
          • 获取工单属性方案列表
          • 向工单属性方案中添加一个工单属性
          • 获取工单属性方案中的工单属性列表
          • 在工单属性方案中移除一个工单属性
        • 需求配置
          • 获取全部需求状态列表
          • 创建一个需求属性
          • 部分更新一个需求属性
          • - 获取一个需求状态
          • 获取全部需求属性列表
          • 获取一个需求属性
          • 获取需求属性方案列表
          • 向需求属性方案中添加一个需求属性
          • 获取需求属性方案中的需求属性列表
          • 在需求属性方案中移除一个需求属性
      • 工单关注人
        • 获取一个工单关注人
      • 需求关注人
        • 获取一个需求关注人
    • 项目管理 Project
      • 项目
        • 创建一个项目
        • 复制一个项目
        • 部分更新一个项目
        • 获取项目列表
        • - 获取一个项目
        • 获取项目状态列表
        • 向项目中添加一个成员
        • 部分更新一个项目内的成员
        • 获取项目中的成员列表
        • - 获取一个项目成员
        • 在项目中移除一个成员
        • 向项目中添加一个项目属性
        • 获取项目中的项目属性列表
        •  - 获取项目中一个项目属性
        • 在项目中移除一个项目属性
        • 获取一个项目的进度
      • 迭代
        • 创建一个迭代分组
        • 创建一个迭代
        • 批量创建迭代
        • - 获取一个迭代
        • 部分更新一个迭代分组
        • 创建一个迭代类别
        • 部分更新一个迭代
        • 部分更新一个迭代类别
        • 删除一个迭代分组
        • 获取迭代列表
        • - 获取一个迭代类别
        • 删除一个迭代类别
        • 获取迭代分组列表
        • 获取迭代类别列表
        • - 获取一个迭代分组
      • Board
        • 部分更新一个看板栏
        • 删除一个看板
        • - 获取一个看板
        • 获取看板列表
        • 获取看板栏列表
        • 获取泳道列表
        • - 获取一个看板栏
        • - 获取一个泳道
        • 删除一个泳道
        • 删除一个看板栏
        • 创建一个看板
        • 创建一个看板栏
        • 创建一个泳道
        • 部分更新一个看板栏
        • 部分更新一个泳道
      • 瀑布
        • 向瀑布项目中增加一个工作项类型
        • 获取瀑布项目中的工作项类型列表
        • - 获取瀑布项目中的一个工作项类型
        • 在瀑布项目中移除一个工作项类型
        • 获取工作项流转记录列表
      • 工作项
        • 创建一个工作项
        • 部分更新一个工作项
        • 批量部分更新一个工作项属性
        • 获取工作项列表
        • 搜索工作项列表
        • - 获取一个工作项
        • 删除一个工作项
        • 获取工作项类型列表
        • - 获取一个工作项类型
        • 获取工作项状态列表
        • - 获取一个工作项状态
        • 获取工作项属性列表
        • - 获取一个工作项属性
        • 获取工作项优先级列表
        • - 获取一个工作项优先级
        • 获取工作项标签列表
        • - 获取工作项一个标签
        • 向工作项中添加一个标签
        • 在工作项移除一个标签
        • 获取工作项关联类型列表
        • 关联一个工作项
        • 获取关联的工作项列表
        • 取消关联一个工作项
        • 获取工作项流转记录列表
        • 创建一个工作项交付目标
        • 部分更新一个工作项交付目标
        • 获取工作项交付目标列表
        • - 获取工作项一个交付目标
        • 删除一个工作项交付目标
      • 发布
        • 创建一个发布
        • 批量创建发布
        • 部分更新一个发布
        • 获取发布列表
        • - 获取一个发布
        • 删除一个发布
        • 创建一个发布阶段
        • 部分更新一个发布阶段
        • 获取发布阶段列表
        • - 获取一个发布阶段
        • 删除一个发布阶段
        • 创建一个发布分组
        • 部分更新一个发布分组
        • 获取发布分组列表
        • - 获取一个发布分组
        • 删除一个发布分组
        • 创建一个发布类别
        • 部分更新一个发布类别
        • 获取发布类别列表
        • - 获取一个发布类别
        • 删除一个发布类别
      • 项目配置中心
        • 项目配置
          • 创建一个项目属性
          • 部分更新一个项目属性
          • 获取项目属性列表
          • - 获取一个项目属性
        • 工作项配置
          • 创建一个工作项类型
          • 获取一个工作项类型
          • 部分更新一个工作项类型
          • 获取全部工作项类型列表
          • 删除一个工作项类型
          • 获取一个工作项类型方案
          • 获取工作项类型方案列表
          • 向工作项类型方案中添加一个工作项类型
          • 获取工作项类型方案中的一个工作项类型
          • 部分更新工作项类型方案中的工作项类型
          • 获取工作项类型方案中的工作项类型列表
          • 在工作项类型方案中移除一个工作项类型
          • 创建一个工作项状态
          • 获取一个工作项状态
          • 部分更新一个工作项状态
          • 获取全部工作项状态列表
          • 获取一个工作项状态方案
          • 获取工作项状态方案列表
          • 向状态方案中添加一个工作项状态
          • 获取一个状态方案中的工作项状态
          • 获取状态方案中的工作项状态列表
          • 在状态方案中移除一个工作项状态
          • 向状态方案中添加一个工作项状态流转
          • 获取状态方案中的一个工作项状态流转
          • 获取状态方案中的工作项状态流转列表
          • 在状态方案中移除一个工作项状态流转
          • 创建一个工作项属性
          • 获取一个工作项属性
          • 部分更新一个工作项属性
          • 获取全部工作项属性列表
          • 获取一个工作项属性方案
          • 获取工作项属性方案列表
          • 向属性方案中添加一个工作项属性
          • 获取属性方案中的一个工作项属性
          • 获取属性方案中的工作项属性列表
          • 在属性方案中移除一个工作项属性
          • 创建一个工作项标签
          • 获取一个工作项标签
          • 部分更新一个工作项标签
          • 获取全部工作项标签列表
          • 删除一个工作项标签
          • 获取一个工作项优先级
          • 开启工作项本地配置
    • 测试管理 Testhub
      • 测试库
        • 创建一个测试库
        • 部分更新一个测试库
        • 获取测试库列表
        • - 获取一个测试库
        • 向测试库中添加一个成员
        • 部分更新一个测试库内的成员
        • 获取测试库中的成员列表
        • - 在测试库中获取一个成员
        • 在测试库中移除一个成员
        • 向测试库中添加一个用例模块
        • 部分更新一个测试库中用例模块
        • 获取测试库中的用例模块列表
        • 在测试库中移除一个用例模块
      • 用例
        • 创建一个用例
        • 批量创建用例
        • - 获取一个用例
        • 部分更新一个用例
        • 批量部分更新用例
        • 获取用例列表
        • 搜索用例列表
        • 删除一个用例
        • 获取用例模块列表
        • - 获取一个用例模块
        • 获取用例属性列表
        • 获取用例状态列表
        • 获取用例类型列表
        • 获取用例的执行历史列表
        • 批量创建测试用例关联工作项
        • 批量删除测试用例关联工作项
      • 计划
        • 创建一个计划
        • 部分更新一个计划
        • 获取计划列表
        • 获取一个测试计划
        • 获取计划类型列表
        • 创建一个执行用例
        • 批量创建执行用例
        • 全量更新一个执行用例
        • 部分更新一个执行用例
        • 批量部分更新执行用例
        • 批量操作执行用例
        • 获取执行用例列表
        • 搜索执行用例列表
        • 获取执行用例的结果记录
        • 获取执行用例执行结果列表
      • 测试配置中心
        • 用例配置
          • 获取全部用例状态列表
          • 获取全部用例类型列表
          • 获取全部重要程度列表
          • 创建一个用例属性
          • 部分更新一个用例属性
          • 获取全部用例属性列表
          • 获取用例属性方案列表
          • 向属性方案中添加一个用例属性
          • 获取属性方案中的用例属性列表
          • 在属性方案中移除一个用例属性
        • 执行用例配置
          • 获取全部执行用例执行结果列表
        • 计划配置
          • 获取全部计划状态列表
    • 知识管理 Wiki
      • 页面关注人
      • 空间
        • 创建一个空间
        • 部分更新一个空间
        • 获取空间列表
        • - 获取一个空间
        • 删除一个空间
        • 向空间中添加一个成员
        • 获取空间中的成员列表
        • 在空间中移除一个成员
      • 页面
        • 创建一个页面
        • 部分更新一个页面
        • 更新一个文档正文
        • 获取一个文档正文
        • 获取一个页面的版本列表
        • 恢复一个页面到指定版本
        • 获取页面列表
        • 删除一个页面
      • 页面关注人(全局)
        • 获取一个页面关注人
        • 添加一个页面关注人
      • 页面附件(全局)
        • 获取一个页面附件列表
        • 添加一个页面附件
    • DevOps 数据集成
      • 代码
        • 托管平台
          • 创建一个托管平台
          • 全量更新一个托管平台
          • 部分更新一个托管平台
          • 获取一个托管平台
          • 获取托管平台列表
        • 托管平台用户
          • 创建一个托管平台用户
          • 全量更新一个托管平台用户
          • 部分更新一个托管平台用户
          • 获取托管平台用户列表
          • - 获取一个托管平台用户
        • 代码仓库
          • 创建一个代码仓库
          • 全量更新一个代码仓库
          • 部分更新一个代码仓库
          • 获取代码仓库列表
          • - 获取一个代码仓库
        • 代码分支
          • 创建一个代码分支
          • 部分更新一个代码分支
          • 获取代码分支列表
          • - 获取一个代码分支
          • 删除一个代码分支
        • 提交
          • 创建一个提交
          • 获取提交列表
          • - 获取一个提交
        • 提交引用
          • 创建一个提交引用
          • 获取提交引用列表
          • - 获取一个提交引用
        • 拉取请求
          • 创建一个拉取请求
          • 全量更新一个拉取请求
          • 部分更新一个拉取请求
          • 获取一个拉取请求
          • 获取拉取请求列表
        • 代码评审
          • 创建一个代码评审
          • 全量更新一个代码评审
          • 部分更新一个代码评审
          • 获取一个代码评审
          • 获取代码评审列表
      • 构建
        • 构建记录
          • 创建一条构建记录
          • 全量更新一条构建记录
          • 部分更新一条构建记录
          • 获取一条构建记录
          • 获取构建记录列表
          • 删除一条构建记录
      • 交付
        • 环境
          • 创建一个环境
          • 全量更新一个环境
          • 部分更新一个环境
          • 获取一个环境
          • 获取环境列表
          • 删除一个环境
        • 部署
          • 创建一个部署
          • 全量更新一个部署
          • 部分更新一个部署
          • 获取一个部署
          • 获取部署了列表
          • 删除一个部署

    概述

    欢迎使用#

    欢迎使用 PingCode Representational State Transfer APIs (简称PingCode REST API)。 PingCode REST API 用于通过 HTTP 与 PingCode 服务端进行远程交互,例如创建、修改、查询、删除PingCode的资源。

    接口调用流程#

    image.png

    URI结构#

    PingCode REST API 通过URI路径提供对资源的访问,使用 {} 将URI路径的一部分标记为可使用参数替换的部分,URI 路径遵循以下规则:
    https://rest_api_root/v1[/{area}]/{resource}
    例如:
    https://open.pingcode.com/v1/scm/products
    https://open.pingcode.com/v1/scm/products/{product_id}/repositories
    https://open.pingcode.com/v1/release/environments
    rest_api_root表示根路径,在不同的环境中根路径有所不同:
    公有云的REST API根路径:https://open.pingcode.com
    私有部署的REST API根路径:https://xxxxxx/open

    数据结构#

    PingCode REST API 使用 json 作为通讯格式,所有时间均使用 10 位数字组成的时间戳。 PingCode REST API 为每一种资源定义两种数据结构,全量结构和引用结构。 全量结构包含资源的所有属性,引用结构只包含必要属性。当获取单个资源或分页获取资源列表时,PingCode REST API 将返回全量结构; 当获取其他资源引用当前资源时,PingCode REST API 将返回引用结构。

    全量结构#

    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称",
         "desc": "资源简介",
         "created_at": 1578897962
    }

    引用结构#

    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称"
    }

    使用方式#

    PingCode REST API支持 OPTIONS/GET/PUT/PATCH/POST/DELETE 等标准的HTTP请求。 对于GET/DELETE请求,通过querystring传递参数;对于POST/PUT/PATCH请求,需要在headers中添加"content-type": "application/json",然后通过body传递参数。 PingCode REST API使用HTTP状态码指示已执行操作的状态; 使用response body传递数据。

    单个资源#

    当创建、更新、获取、删除单个资源成功时,会返回当前操作的资源。
    HTTP状态码:201
    Body:
    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称",
         "desc": "资源简介",
         "created_at": 1578897962
    }

    分页数据#

    当请求多条数据时,默认每一页返回30条,最大返回100条。 通过在querystring中设置page_size和page_index,指定每一页的数据量和第几页的数据(page_index为0时,表示第一页)。 在返回的数据结构中,page_size表示当前每页的数据量,page_index表示当前在第几页,total表示资源总数量,values表示资源的数组。
    HTTP状态码:200
    Body:
    {
         "page_size": 30,
         "page_index": 0,
         "total": 100,
         "values": [
             {
                 "id": "5e05d8448f8461dada9ba29c",
                 "url": "https://rest_api_root/v1/{resource}",
                 "name": "资源名称",
                 "desc": "资源简介",
                 "created_at": 1578897962
             },
             ...
         ]
    }

    错误#

    当请求失败时,会返回错误码和错误信息。
    HTTP状态码:500
    Body:
    {
         "code": "100000",
         "message": "Internal Server Error"
    }

    频率限制#

    为保证服务的稳定性,PingCode REST API 会对请求实施频率限制。公有云与私有部署环境采用不同策略。

    公有云#

    公有云同时启用两层限流,任一达到上限即触发限流:
    企业限流:按企业统计每分钟请求总数(RPM)
    单接口突发限流:按企业 + HTTP Method + Route 统计每秒请求总数(RPS)

    企业限流#

    按企业独立计数,每分钟重置一次。各版本配额如下:
    企业版本每分钟请求上限(RPM)说明
    免费版200固定配额,全企业共享
    付费版500 + 用户数 × 20固定 500,每增加 1 名成员额外增加 20

    单接口突发限流#

    按企业 + HTTP Method + Route 独立计数,每秒重置一次。默认配额如下:
    HTTP 方法请求上限(RPS)
    GET / POST / PATCH / PUT / DELETE30

    响应头#

    无论是否触发限流,公有云响应均会携带以下限流状态头:
    Header说明
    X-RateLimit-Team-Limit企业每分钟请求配额上限
    X-RateLimit-Team-Remaining当前周期内企业剩余可用请求数
    X-RateLimit-Team-Reset企业配额重置的 Unix 时间戳(秒,UTC)
    X-RateLimit-Burst-Limit当前路由每秒请求配额上限
    X-RateLimit-Burst-Remaining当前周期内路由剩余可用请求数
    X-RateLimit-Burst-Reset路由配额重置的 Unix 时间戳(秒,UTC)
    当返回 429 时,额外返回:
    Header说明
    X-RateLimit-Retry-After建议重试等待秒数
    X-RateLimit-Reason触发限流的原因。企业限流为 pingcode-team,单接口突发限流为 pingcode-burst
    HTTP状态码:429
    Headers:
    {
         "X-RateLimit-Team-Limit": 200,
         "X-RateLimit-Team-Remaining": 0,
         "X-RateLimit-Team-Reset": 1785023460,
         "X-RateLimit-Burst-Limit": 30,
         "X-RateLimit-Burst-Remaining": 20,
         "X-RateLimit-Burst-Reset": 1785023412,
         "X-RateLimit-Retry-After": 50,
         "X-RateLimit-Reason": "pingcode-team"
    }
    Body:
    {
         "code": "100038",
         "message": "请求频率过高"
    }

    私有部署#

    默认每人每分钟请求上限为 200,限流额度支持管理员配置。触发限流时,响应头仅返回 X-PC-Retry-After(建议重试等待秒数)。
    HTTP状态码:429
    Headers:
    {
         "X-PC-Retry-After": 50
    }
    Body:
    {
         "code": "100038",
         "message": "请求频率过高"
    }

    合理请求#

    由于存在频率限制,最小化请求十分必要,建议:
    1.
    合理规划请求频率:公有云按企业版本配额评估并发,私有部署结合实例配置评估并发。
    2.
    处理限流响应:收到 429 时,读取对应重试头设置延迟后再重试,避免立即重试导致持续限流。
    3.
    监控剩余配额:通过 X-RateLimit-Team-Remaining、X-RateLimit-Burst-Remaining 提前预判额度并主动降速。
    4.
    优先使用批量接口,减少请求次数。
    5.
    缓存不会轻易变更的数据。
    另外,使用 PingCode Flow 中的发送 Webhook 和发送 HTTP 请求,将变更数据推送给订阅者,也可以有效降低 REST API 请求量,从而降低触发频率限制的风险。
    修改于 2026-08-11 07:23:47
    下一页
    全局错误码
    Built with