为了方便用户灵活调用 GPU 资源,平台提供通过API调用方式使用实例相关功能,目前仅对企业用户开放。
企业体验:GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall
立即体验:https://gpumall.com/login?type=register&source=sifou
API概览
平台对外提供的API如下:
API
说明
获取平台GPU类型
查询平台当前可用显卡类型
获取镜像
查询当前账户可用的镜像,包括平台官方镜像和自定义镜像
创建实例
创建实例,根据平台推荐规则选择符合条件的最优机器执行创建计划。
查询操作结果
查询实例操作结果
查询实例
查询结果返回未释放实例
实例操作
API调用仅支持开机、关机、重启和释放,更多复杂操作请到网页端执行。
如何调用API
- 申请企业资质
API当前只针对企业用户开放,未开通企业资质请前往账户中心提交企业认证申请。
- 创建API密钥
API调用需要先创建API 密钥,可以在"账户中心 - OpenAPI 密钥"页面创建密钥,点击添加后即下载密钥到本地,后续无法再重复下载,请妥善保管,切勿泄露。
编辑
- 终端节点
终端节点即调用API的请求地址目前平台提供的服务器调用地址如下:
请求地址
协议类型
https://api.gpumall.com
HTTPS
- 认证鉴权
所有API接口须要通过在header中携带平台的 API 密钥来进行身份认证。 在 Header 中携带 API 密钥的消息头域格式如下:
{
"gm-api-token":"dWEwmaZxxxxxxxxx"
}
其中 gm-api-token 是平台自定义header key。
- 返回结果
API 请求返回统一使用 JSON (对应请求/响应header为Content-Type: application/json) 格式,通用结构如下:
{
"code": 0,
"message": "success",
"traceid": "180114fedf26b1177b44121fa5c1e5d9",
"data": {}
}
返回结果参数说明:
消息元素名
描述
code
请求响应码,请求成功时为 0,失败时为相应的错误码,具体错误码请参考附录错误码说明。
message
请求成功为 success, 请求失败为具体的业务错误信息
data
返回的业务数据
API详情
- 获取平台GPU类型
接口说明
请求URI:/api/v1/open-api/gpu/list
请求方法:GET
请求参数 无 返回结果
参数名称
类型
描述
gpus
Array<string>
显卡类型数组 ,与高可用云/社区云的显卡类型一致
返回值示例
{
"code": 0,
"message": "success",
"traceid": "180114fedf26b1177b44121fa5c1e5d9",
"data": {
"gpus": [
"RTX 3090",
"RTX 4090",
"RTX 2080 Ti",
]
}
}
- 获取镜像
接口说明
请求URI:/api/v1/open-api/image/list
请求方法:GET
请求参数 无 返回参数 Image参数描述
参数名称
类型
描述
type
String
镜像类型,user / official, user:备份镜像,official: 官方镜像
imageId
String
镜像Id,创建实例使用
name
String
镜像名称
返回示例
{
"code": 0,
"message": "success",
"traceid": "90223a7f6632b1176c74fa17445cfe0e",
"data": {
"images": [
{
"type": "official",
"name": "torch2.1.1-cuda12.1.0-py3.10",
"imageId": "torch2.1.1-cuda12.1.0-py3.10"
},
{
"type": "user",
"name": "AnythingV5-WebUI",
"imageId": "imgbgl8mu4msk375gdsd32smbogsuffm"
},
]
}
}
- 创建实例
接口说明
请求URI:/api/v1/open-api/instance/create
请求方法:POST
请求参数 Body
参数名称
类型
必填
描述
type
Integer
是
社区云: 1, 高可用云:2
gpuName
String
是
显卡类型,可通过获取显卡列表接口查询,或者从官网查询
skuName
String
是
支付方式, 取值范围: 按量付费(payg),竞价(bidding),包天(daily),包周(weekly),包月(monthly)
gpuNum
Integer
是
租用显卡数量
cpuNum
Integer
否
单卡分配cpu核心数
memory
Integer
否
单卡分配的内存
diskType
String
否
磁盘类型(SSD/NVME)
tags
Array<String>
否
查询符合某些标签的机器
imageId
String
是
创建实例使用的镜像ID,可通过查询可用镜像列表获取
autoRenew
Boolean
否
是否设置到期自动续费,按量付费默认为自动续费,其他预付费支付方式默认为false
duration
Integer
否
预付费实例租用周期,默认为 1
cmd
String
否
启动命令
env
String
否
环境变量
dryRun
Boole
否
空跑,为 true 时只做机器筛选和价格检查
返回参数 Data
参数名称
类型
描述
instanceId
Int64
实例ID, dryRun=true时为0
operationId
Int64
当前操作ID, dryRun=true时为 0
spec
Object<Spec>
实例规格
Spec
参数名称
类型
描述
gpuName
String
显卡名称
vram
String
单卡显存大小,单位:G
skuName
String
支付类型,取值范围:按量付费(payg),竞价(bidding),包天(daily),包周(weekly),包月(monthly)
price
String
单价
cpuName
String
cpu 型号
cpuCoreNum
int
cpu 核心数,根据租用卡数按比例分配
memorySize
int
内存大小,根据租用卡数按比例分配
payByVoucher
int
是否支持代金券支付, 支持:1, 不支持:0
regionName
String
所在区域
返回示例
{
"code": 0,
"message": "success",
"traceid": "905b8753fb3db11760f67138872918cb",
"data": {
"InstanceId": 512300905672709,
"operationId": 512303116840965,
"spec": {
"gpuName": "RTX 3080",
"vram": "10G",
"skuName": "payg",
"price": "10",
"cpuCoreNum": 16,
"cpuName": "Intel Xeon Processor (Skylake, IBRS)",
"memorySize": 17179869184,
"payByVoucher": 1,
"regionName": "华东"
}
}
}
- 查询操作状态
接口说明
请求URI:/api/v1/open-api/instance/op/result
请求方法:POST
请求参数 Body
参数名称
类型
必填
描述
ids
Array<int>
是
操作ID列表
返回参数 Operation
参数名称
类型
描述
instanceId
Int64
实例ID
status
int
操作完成状态 进行中:1,成功:2,失败:3
action
String
当前进行中的操作
operationId
String
当前操作ID
isCompleted
int
操作是否已完成, 已完成:1, 未完成: 0
startTime
String
开始时间
completeTime
String
完成时间
返回示例
{
"code": 0,
"message": "success",
"traceid": "287bfb0b8e3fb11797f57d7a4f92b05b",
"data": {
"operations": [
{
"instanceId": 512300905672709,
"operationId": 512303116840965,
"action": "stop",
"status": 2,
"isCompleted": 1,
"startTime": "2024-02-06 17:06:45",
"completeTime": "2024-02-06 17:06:47"
}
]
}
}
- 查询实例列表
接口说明
请求URI:/api/v1/open-api/instance/query
请求方法:GET
请求参数 Query
参数名称
类型
必填
描述
status
String
否
实例状态, 可选枚举值: stopd, running, creating
instanceId
Int
否
查询单个实例
pn
Integer
否
分页页码
ps
Integer
否
每页大小,默认为20
返回参数
参数名称
类型
描述
instances
Array<Instance>
实例数组
total
Integer
总数
Instance
参数名称
类型
描述
instanceId
int64
实例ID
name
String
自定义实例名称
imageId
String
镜像ID
status
String
实例状态
isPending
int
是否操作执行中, 1 为操作中
gpuName
String
显卡名称
gpuNum
Integer
显卡数量
skuName
String
租用方式: payg(按量付费), daily(包天), weekly(包周), monthly(包月),card_less(无卡启动)
createdAt
String
创建时间
cpuCoreNum
Int
cpu核心数
memorySize
int64
内存大小,单位 Byte
systemDiskSize
int64
系统盘分配空间(根目录/),单位byte
systemDiskUsedSize
int64
系统盘已用空间(根目录/), 单位byte
dataDiskSize
int64
数据盘分配空间(/gm-data),单位byte
dataDiskUsedSize
int64
数据盘已用空间(/gm-data), 单位 byte
sshCmd
String
ssh 登录命令
sshPwd
String
ssh 登录密码
notebookUrl
String
JupyterLab Notebook 访问地址
tensorboardUrl
String
Tensorboard 访问地址
customServices
Array<String>
自定义端口访问地址(数组,每个元素为一个端口的对应访问地址)
operationId
int64
实例最近一次操作id
返回示例
{
"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {
"instances": [
{
"instanceId": 504838617333765,
"name": "AnythingV5-WebUI",
"status": "stopd",
"imageId": "stable-diffusion-webui_v1.7.0",
"isPending": 0,
"gpuName": "RTX 3080",
"gpuNum": 0,
"skuName": "payg",
"operationId": 511642810499077,
"cpuCoreNum": 1,
"memorySize": 2147483648,
"systemDiskSize": 32212254720,
"systemDiskUsedSize": 4311059,
"dataDiskSize": 53687091200,
"dataDiskUsedSize": 0,
"sshCmd": "ssh -p 59064 root@xxxxx",
"sshPwd": "Q3rDHh7QEwgYsuPxYSdVbE9zzKQQW45e",
"notebookUrl": "http://xxxxx:42757/lab?token=f4jzygqwno3fecinx9arnetu",
"tensorboardUrl": "http://xxxxx:44634",
"customServices": [
"http://xxxxx:48548"
],
"createdAt": "2024-01-16 14:53:38"
}
],
"total": 1
}
}
- 实例操作
接口说明
请求URI:/api/v1/open-api/instance/action
请求方法:POST
请求参数 Body
参数名称
类型
必填
描述
instanceId
Int64
是
实例ID
action
String
是
实例操作名称,仅支持stop(实例关机), start(开机), restart(重启), release(释放)
返回参数
参数名称
类型
描述
operationId
Int64
操作ID
返回示例
{
"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {
"operationId": 511642810499077
}
}
附录
- 请求返回的通用结构
{
"code": 0,
"message": "success",
"traceid": "180114fedf26b1177b44121fa5c1e5d9",
"data": {}
}
- HTTP状态码
状态码
含义
描述
404
Not Found
请求URI不存在
403
Forbidden
请求未授权
200
OK
请求成功
500
Internal Server Error
服务器错误
- 常用错误码
错误码
错误信息
描述
10001
服务器内部错误
未定义的服务器内部错误, 可提供单反馈协助解决
10002
未登录或者登录已过期
一般是请求header 中缺少gm-api-token
10005
参数错误
参数校验错误
10135
实例操作错误
实例操作错误,错误信息在 message 中
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。