为某个 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
|
如何获取账户令牌:
- 控制台一键创建(推荐):登录 AceDataCloud 平台 → Account Token 控制台 → 点「创建」即可。
- 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, }, 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 限制、无过期”的凭证:把
amount、expired_at、client_ip_allowlist 都不传即可,但强烈不建议在公网项目里这样做。
相关接口