0%

创建 AceDataCloud 平台 API 凭证

为某个 Application 签发一枚 API 凭证(Credential)——即调用 https://api.acedata.cloud/** 业务接口(OpenAI、Midjourney、Suno、Veo 等)时用的 32 位 Token。

⚠️ 完整 Token 明文只在本接口的响应中返回一次。列表 / 详情接口都是脱敏的。请务必当场保存到密码管理器、环境变量或机密配置系统里。

ℹ️ 本接口属于 AceDataCloud 平台管理 API,统一前缀 https://platform.acedata.cloud/api/v1/。完整接口索引见获取 AceDataCloud 平台文档列表

接口概览

内容
方法 POST
URL https://platform.acedata.cloud/api/v1/credentials/
鉴权 ✅ 需要账户令牌
Content-Type application/json

鉴权说明(如何获取账户令牌)

请求头:

1
Authorization: Bearer platform-v1-92eb****629c

如何获取账户令牌:

  1. 控制台一键创建(推荐):登录 AceDataCloud 平台Account Token 控制台 → 点「创建」即可。
  2. API 创建:详见管理 AceDataCloud 平台账户令牌

请求体

字段 类型 必填 默认 说明
application_id UUID 该凭证所属的 Application ID(先通过创建申请拿到)
name string 凭证显示名,便于辨认(如 prod-server-01
amount number null 单凭证额度上限。null = 无上限(可用 Application 全部余额)
expired_at datetime null 过期时间(ISO8601 字符串),如 2026-12-31T23:59:59Z
tags array 用户自定义标签
metadata object 用户自定义元数据
client_ip_allowlist array\ null 允许调用此凭证的 IP 白名单,CIDR 格式(如 ["1.2.3.4/32", "10.0.0.0/8"]

请求示例

cURL

1
2
3
4
5
6
7
8
9
10
11
curl -X POST 'https://platform.acedata.cloud/api/v1/credentials/' \
-H 'accept: application/json' \
-H 'authorization: Bearer platform-v1-92eb****629c' \
-H 'content-type: application/json' \
-d '{
"application_id": "82f57141-2323-4453-8730-60f7d833a2da",
"name": "production-server-01",
"amount": 50.0,
"expired_at": "2026-12-31T23:59:59Z",
"client_ip_allowlist": ["203.0.113.7/32"]
}'

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import requests

PLATFORM_TOKEN = "platform-v1-92eb****629c"
APPLICATION_ID = "82f57141-2323-4453-8730-60f7d833a2da"

resp = requests.post(
"https://platform.acedata.cloud/api/v1/credentials/",
headers={
"accept": "application/json",
"authorization": f"Bearer {PLATFORM_TOKEN}",
"content-type": "application/json",
},
json={
"application_id": APPLICATION_ID,
"name": "production-server-01",
"amount": 50.0, # 此凭证最多消耗 50 Credit
},
timeout=10,
)

if resp.status_code == 201:
cred = resp.json()
print("✅ 完整 Token(请立即保存):", cred["token"])
print("ID =", cred["id"])
else:
print(resp.status_code, resp.text)

Node.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const PLATFORM_TOKEN = 'platform-v1-92eb****629c'

const r = await fetch('https://platform.acedata.cloud/api/v1/credentials/', {
method: 'POST',
headers: {
authorization: `Bearer ${PLATFORM_TOKEN}`,
'content-type': 'application/json',
},
body: JSON.stringify({
application_id: '82f57141-2323-4453-8730-60f7d833a2da',
name: 'production-server-01',
amount: 50.0,
}),
})

const cred = await r.json()
console.log('完整 Token(仅此一次!):', cred.token)

响应示例(HTTP 201)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"id": "df3e1b1b-9e72-4c4f-9a83-1e23f7c8b4d6",
"user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b",
"application_id": "82f57141-2323-4453-8730-60f7d833a2da",
"name": "production-server-01",
"token": "ac1234567890abcdef1234567890abcdef",
"amount": 50.0,
"used_amount": 0.0,
"remaining_amount": 50.0,
"disabled": false,
"expired_at": "2026-12-31T23:59:59Z",
"tags": null,
"metadata": null,
"client_ip_allowlist": ["203.0.113.7/32"],
"used_at": null,
"created_at": "2026-04-26T07:55:00Z",
"updated_at": "2026-04-26T07:55:00Z"
}

⚠️ 这是 token 完整明文唯一会出现的地方。再次列表 / 详情查询会变成 ac****ef 这种脱敏格式。

使用刚创建的凭证

token 放到 Authorization: Bearer ... 头里调用业务接口:

1
2
3
4
curl 'https://api.acedata.cloud/v1/chat/completions' \
-H 'authorization: Bearer ac1234567890abcdef1234567890abcdef' \
-H 'content-type: application/json' \
-d '{"model":"gpt-4.1","messages":[{"role":"user","content":"Hello"}]}'

错误处理

HTTP code 含义
400 invalid application_id 缺失 / 格式错误 / amount 为负数
401 not_authenticated 缺少账户令牌
403 permission_denied 指定的 application_id 不属于你
404 not_found Application 不存在或已删除

实用提示

  • 生产环境必设 amount:凭证一旦泄露,限额能让损失限定在指定金额内。50 Credit 是个不错的起点。
  • expired_at 用于临时凭证:演示账号、临时活动、与外包合作时设个短期过期,避免遗忘清理。
  • client_ip_allowlist 是最强保险:把凭证锁定在生产服务器 IP 上,泄露到 GitHub 也无法使用。
  • name 一定要起有意义:未来你可能有几十枚凭证,没好名字根本认不出哪个是哪个。
  • 要拿”无限额、无 IP 限制、无过期”的凭证:把 amountexpired_atclient_ip_allowlist 都不传即可,但强烈不建议在公网项目里这样做。

相关接口