开放服务接口
鉴权
开放服务使用API Token鉴权,API Token的帮助文档
开放接口
服务域名
https://api.cfgpu.com
响应体
参数名 | 类型 | 说明 |
---|---|---|
success | boolean |
是否成功 |
errorCode | string |
如果不成功,这里填充错误码 |
errorMsg | string |
如果不成功,这里填充错误信息 |
content | Object |
如果成功,这里填充返回内容 |
响应体样例
{
"success": true,
"errorCode": "",
"errorMsg": "",
"content": null
}
错误码
errorCode | errorMsg |
---|---|
10001 | 请求参数错误 |
50001 | 余额不足 |
51001 | 资源不足 |
51002 | GPU不足 |
52001 | 余额不足1小时 |
52002 | 实例正在开机中 |
52003 | 实例正在运行中 |
52004 | 实例正在关机中 |
52005 | 实例已关机 |
52006 | 实例正在释放中 |
52007 | 实例需要关机 |
52008 | 实例已到期 |
52009 | 未到期包年包月实例暂不支持释放 |
获取区域
获取平台支持的区域列表。
请求
GET /userapi/v1/region/list
响应内容
参数名 | 类型 | 说明 |
---|---|---|
code | string |
区域code |
name | string |
区域名称 |
请求样例
curl --location --request GET 'https://api.cfgpu.com/userapi/v1/region/list' \
--header 'Authorization: 您创建的API Token'
响应内容样例
[
{
"code": "hz",
"name": "杭州"
}
]
获取GPU类型
获取平台已有的GPU类型列表。
请求
GET /userapi/v1/gpu/list
响应内容
参数名 | 类型 | 说明 |
---|---|---|
code | string |
GPU类型code |
name | string |
GPU类型名称 |
请求样例
curl --location --request GET 'https://api.cfgpu.com/userapi/v1/gpu/list' \
--header 'Authorization: 您创建的API Token'
响应内容样例
[
{
"code": "qnid2x6c",
"name": "RTX 4090"
}
]
获取用户镜像
获取用户自定义镜像。
请求
GET /userapi/v1/image/privateList?adaptType=VM
adaptType枚举值:
参数名 | 类型 | 说明 |
---|---|---|
CONTAINER | string |
容器 |
VM | string |
虚拟机 |
响应内容
参数名 | 类型 | 说明 |
---|---|---|
code | string |
镜像的code |
name | string |
镜像的名称 |
sysDiskLimitMinSize | long |
系统盘限制最低容量大小(单位:byte) |
请求样例
curl --location --request GET 'https://api.cfgpu.com/userapi/v1/image/privateList?adaptType=CONTAINER' \
--header 'Authorization: 您创建的API Token'
响应内容样例
[
{
"code": "image_gzo9zvxs",
"name": "ComfyUI定制版",
"sysDiskLimitMinSize": 0
}
]
获取系统镜像
获取平台提供的系统镜像。
请求
GET /userapi/v1/image/systemList?adaptType=VM
adaptType枚举值:
参数名 | 类型 | 说明 |
---|---|---|
CONTAINER | string |
容器 |
VM | string |
虚拟机 |
响应内容
参数名 | 类型 | 说明 |
---|---|---|
name | string |
节点名称 |
childrenName | string |
子节点名称 |
children | Array |
子节点内容 |
code | string |
最终叶子节点,镜像的code |
sysDiskLimitMinSize | string |
系统盘限制最低容量大小(单位:byte) |
请求样例
curl --location --request GET 'https://api.cfgpu.com/userapi/v1/image/systemList?adaptType=CONTAINER' \
--header 'Authorization: 您创建的API Token'
响应内容样例
[
{
"name": "Tensorflow",
"childrenName": "版本",
"children": [
{
"name": "2.15.0",
"childrenName": "Python版本",
"children": [
{
"name": "3.11(ubuntu20.04)",
"childrenName": "Cuda版本",
"children": [
{
"name": "12.2",
"code": "image_exc6f72b",
"sysDiskLimitMinSize": 0
}
]
}
]
},
{
"name": "2.9.0",
"childrenName": "Python版本",
"children": [
{
"name": "3.8(ubuntu20.04)",
"childrenName": "Cuda版本",
"children": [
{
"name": "11.2",
"code": "image_l2pzbic1",
"sysDiskLimitMinSize": 0
}
]
}
]
},
{
"name": "2.4.0",
"childrenName": "Python版本",
"children": [
{
"name": "3.8(ubuntu20.04)",
"childrenName": "Cuda版本",
"children": [
{
"name": "11.0",
"code": "image_gsspby9w",
"sysDiskLimitMinSize": 0
}
]
}
]
}
]
}
]
实例创建
根据指定的区域、GPU类型、GPU数据、数据盘扩容大小自动选择主机,按照指定购买时长和镜像创建实例。
请求
POST /userapi/v1/instance/create
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
regionCode | string |
必填 | 区域Code |
gpuType | string |
必填 | GPU类型 |
gpuNum | int |
必填 | GPU数量 |
sysDiskExpandSize | int |
非必填 | 系统盘扩容大小(GB) |
expandSize | int |
非必填 | 数据盘扩容大小(GB) |
imageId | string |
必填 | 镜像code |
priceType | PriceTypeEnum |
必填 | 计费周期 |
serviceTime | int |
priceType为Usage时非必填,其余必填 | 购买时长(购买时长 = serviceTime * 计费周期) |
instanceName | string |
非必填 | 实例名称(长度不超过50) |
PriceTypeEnum枚举值:
参数名 | 类型 | 说明 |
---|---|---|
Usage | string |
按量 |
Day | string |
按天 |
Week | string |
按周 |
Month | string |
按月 |
默认免费系统盘大小: 30GB
默认免费数据盘大小: 50GB
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/create' \
--header 'Authorization: 您创建的API Token' \
--data '{
"priceType": "Day",
"regionCode": "xxx",
"gpuType": "xxxx",
"gpuNum": 1,
"expandSize": 1,
"imageId": "xxx",
"serviceTime": 1,
"instanceName": "test"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
string |
实例id |
响应内容样例
{
"instance_rjzohhrv"
}
实例状态
获取实例当前运行状态。
请求
POST /userapi/v1/instance/status
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
instanceId | string |
必填 | 实例id |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/status' \
--header 'Authorization: 您创建的API Token' \
--data '{
"instanceId": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
string |
状态 |
实例状态:
参数名 | 类型 | 说明 |
---|---|---|
CREATING | string |
创建中 |
STARTING | string |
开机中 |
RUNNING | string |
运行中 |
CLOSING | string |
关机中 |
CLOSED | string |
已关机 |
RELEASING | string |
释放中 |
IMAGE_CHANGING | string |
更换镜像中 |
RESETTING | string |
重置中 |
RELEASED | string |
已释放 |
LOCKING_BY_CLONE | string |
克隆锁定中 |
LOCKING_BY_DATA_COPY | string |
拷贝锁定中 |
响应内容样例
{
"RUNNING"
}
所有实例状态
获取所有实例状态列表
请求
POST /userapi/v1/instance/statusList
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/statusList' \
--header 'Authorization: 您创建的API Token'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
instanceId | string |
状态 |
status | string |
状态 |
实例状态:
参数名 | 类型 | 说明 |
---|---|---|
CREATING | string |
创建中 |
STARTING | string |
开机中 |
RUNNING | string |
运行中 |
CLOSING | string |
关机中 |
CLOSED | string |
已关机 |
RELEASING | string |
释放中 |
IMAGE_CHANGING | string |
更换镜像中 |
RESETTING | string |
重置中 |
RELEASED | string |
已释放 |
LOCKING_BY_CLONE | string |
克隆锁定中 |
LOCKING_BY_DATA_COPY | string |
拷贝锁定中 |
响应内容样例
[
{
"instanceId": "xxxx",
"status": "RUNNING"
}
]
实例关机
对“运行中”状态的实例,进行关机。
请求
POST /userapi/v1/instance/shutdown
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
instanceId | string |
必填 | 实例id |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/shutdown' \
--header 'Authorization: 您创建的API Token' \
--data '{
"instanceId": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
boolean |
是否成功 |
响应内容样例
{
true
}
实例开机
对“已关机”状态的实例,重新开机。
请求
POST /userapi/v1/instance/start
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
instanceId | string |
必填 | 实例id |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/start' \
--header 'Authorization: 您创建的API Token' \
--data '{
"instanceId": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
boolean |
是否成功 |
响应内容样例
{
true
}
实例释放
对“已关机”状态的实例,释放实例。
请求
POST /userapi/v1/instance/release
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
instanceId | string |
必填 | 实例id |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/release' \
--header 'Authorization: 您创建的API Token' \
--data '{
"instanceId": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
boolean |
是否成功 |
响应内容样例
{
true
}
实例更换镜像
对已关机实例进行更换镜像
请求
POST /userapi/v1/instance/imageChange
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
instanceId | string |
必填 | 实例id |
imageId | string |
必填 | 镜像id |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/imageChange' \
--header 'Authorization: 您创建的API Token' \
--data '{
"instanceId": "xxxxx",
"imageId": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
boolean |
是否成功 |
响应内容样例
{
true
}
实例分页查询
查询用户所有实例。
请求
POST /userapi/v1/instance/page
请求参数
参数名 | 类型 | 属性 | 说明 |
---|---|---|---|
currentPage | int |
非必填 | 当前页码 |
pageSize | int |
非必填 | 每页数量 |
keyWord | string |
非必填 | 实例名称或实例id |
status | string |
非必填 | 状态 |
请求样例
curl --location --request POST 'https://api.cfgpu.com/userapi/v1/instance/page' \
--header 'Authorization: 您创建的API Token' \
--data '{
"keyWord": "xxxxx",
"status": "xxxxx"
}'
响应内容
参数名 | 类型 | 说明 |
---|---|---|
total | int |
总数量 |
pageSize | int |
每页数量 |
currentPage | int |
当前页码 |
pages | int |
页数 |
empty | boolean |
空记录 |
notEmpty | boolean |
非空记录 |
instanceId | string |
实例id |
instanceName | string |
实例名称 |
regionCode | string |
区域code |
region | string |
区域 |
statusCode | string |
实例状态code |
status | string |
实例状态 |
imageId | string |
镜像 |
imageName | string |
镜像名称 |
gpuType | string |
GPU型号 |
gpuName | string |
GPU型号 |
gpus | int |
GPU数量 |
cpuCode | string |
CPU型号 |
cpuName | string |
CPU型号 |
cpus | double |
CPU数量 |
memory | long |
内存大小(单位:byte) |
createTime | long |
创建时间 |
sysDiskSize | long |
系统盘大小(单位:byte) |
sysDiskUsedSize | long |
系统盘已使用大小(单位:byte) |
sysDiskSizeFree | long |
系统盘免费大小(单位:byte) |
sysDiskSizePaid | long |
系统盘付费大小(单位:byte) |
dataDiskSize | long |
数据盘大小(单位:byte) |
dataDiskUsedSize | long |
数据盘已使用大小(单位:byte) |
dataDiskSizeFree | long |
数据盘免费大小(单位:byte) |
dataDiskSizePaid | long |
数据盘付费大小(单位:byte) |
gpuMemory | long |
显存(单位:byte) |
consumeTypeCode | string |
付费方式code |
consumeType | string |
付费方式 |
expireTime | long |
释放时间 |
stopTime | long |
停机时间 |
toBeExpiredCode | int |
即将到期code |
toBeExpired | string |
即将到期 |
expiredCode | int |
已到期code |
expired | string |
已到期 |
toBeReleasedCode | int |
即将释放code |
toBeReleased | string |
即将释放 |
响应内容样例
{
"total": 1,
"pageSize": 10,
"currentPage": 1,
"pages": 1,
"empty": false,
"notEmpty": true,
"records": [
{
"instanceId": "instance-xxxxx",
"instanceName": "test",
"regionCode": "xx",
"region": "杭州xxx",
"statusCode": "CLOSED",
"status": "已关机",
"imageId": "image_xxxxxx",
"imageName": "Tensorflow 版本:xxx Python版本:xxx(ubuntu xxxx) Cuda版本:xxx",
"gpuType": "xxxxxx",
"gpuName": "RTX 4090",
"gpus": 1,
"cpuCode": "xxxx",
"cpuName": "Intel Xeon E5-2680 v2",
"cpus": 14.0,
"memory": 15032385536,
"createTime": 1741254108397,
"sysDiskSize": 10737418240,
"sysDiskUsedSize": 41410560,
"sysDiskSizeFree": 10737418240,
"sysDiskSizePaid": 0,
"dataDiskSize": 10737418240,
"dataDiskUsedSize": 0,
"dataDiskSizeFree": 10737418240,
"dataDiskSizePaid": 0,
"gpuMemory": 12079595520,
"consumeTypeCode": "Prepaid",
"consumeType": "预付费",
"expireTime": 1742463708398,
"stopTime": 1741858908398,
"toBeExpiredCode": 0,
"toBeExpired": "否",
"expiredCode": 0,
"expired": "否",
"toBeReleasedCode": 0,
"toBeReleased": "否"
}
]
}