「申请(Application)」表示当前账户对某个服务的订阅关系——必须先申请,才能再为这个申请创建 API 凭证、调用业务接口。首次申请一个服务会自动获得该服务设定的免费额度(如 1 Credit),可立即试用。
ℹ️ 本接口属于 AceDataCloud 平台管理 API,统一前缀 https://platform.acedata.cloud/api/v1/。完整接口索引见获取 AceDataCloud 平台文档列表。
完整的对接流程
新用户从注册到调通第一个业务接口,通常走这 5 步:
- 拿到账户令牌 → 管理 AceDataCloud 平台账户令牌
- 挑选服务 → 获取 AceDataCloud 平台服务列表
- 创建申请(本文档) → 自动获得免费额度
- 创建 API 凭证 → 创建 AceDataCloud 平台 API 凭证
- 调用业务接口 → 用得到的 32 位 Token 调
https://api.acedata.cloud/<path>
接口概览
| 项 |
内容 |
| 方法 |
POST |
| URL |
https://platform.acedata.cloud/api/v1/applications/ |
| 鉴权 |
✅ 需要账户令牌 |
| Content-Type |
application/json |
鉴权说明(如何获取账户令牌)
请求头:
1
|
Authorization: Bearer platform-v1-92eb****629c
|
账户令牌(Account Token)是开发者通过 API 管理自己账户资源的”账号级密钥”。获取方式:
- 控制台一键创建(推荐):登录 AceDataCloud 平台 → Account Token 控制台 → 点「创建」即可获得
platform-v1- 开头的令牌。
- API 创建:用已有的账户令牌或浏览器登录态 JWT 调用
POST /api/v1/platform-tokens/,详见管理 AceDataCloud 平台账户令牌。
⚠️ 账户令牌与密码同等敏感,禁止写入前端代码或公开仓库。一旦泄露立即在控制台删除并重建。
请求体
| 参数 |
类型 |
必填 |
说明 |
service_id |
UUID |
✅ |
要申请的服务 ID。可从服务列表的 items[].id 获取 |
请求示例
cURL
1 2 3 4 5
|
curl -X POST 'https://platform.acedata.cloud/api/v1/applications/' \ -H 'accept: application/json' \ -H 'authorization: Bearer platform-v1-92eb****629c' \ -H 'content-type: application/json' \ -d '{"service_id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452"}'
|
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
|
import requests
PLATFORM_TOKEN = "platform-v1-92eb****629c" SERVICE_ID = "38ecf158-36f2-42f2-8e7f-6786cdfc2452"
resp = requests.post( "https://platform.acedata.cloud/api/v1/applications/", headers={ "accept": "application/json", "authorization": f"Bearer {PLATFORM_TOKEN}", "content-type": "application/json", }, json={"service_id": SERVICE_ID}, timeout=10, )
if resp.status_code == 201: app = resp.json() print(f"申请成功!application_id={app['id']}") print(f"赠送免费额度:{app['remaining_amount']} {app.get('unit', '')}") elif resp.status_code == 400 and resp.json().get("code") == "duplication": print("⚠️ 已经申请过此服务,请到 /applications/ 列表里找到现成的 application_id") else: print(f"申请失败:HTTP {resp.status_code} - {resp.text}")
|
Node.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
const PLATFORM_TOKEN = 'platform-v1-92eb****629c' const SERVICE_ID = '38ecf158-36f2-42f2-8e7f-6786cdfc2452'
const resp = await fetch('https://platform.acedata.cloud/api/v1/applications/', { method: 'POST', headers: { accept: 'application/json', authorization: `Bearer ${PLATFORM_TOKEN}`, 'content-type': 'application/json', }, body: JSON.stringify({ service_id: SERVICE_ID }), })
if (resp.status === 201) { const app = await resp.json() console.log('application_id =', app.id) } else { console.error(await resp.text()) }
|
响应示例
成功(HTTP 201)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
{ "id": "82f57141-2323-4453-8730-60f7d833a2da", "service_id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452", "remaining_amount": 1.0, "used_amount": 0.0, "paid": false, "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b", "disabled": false, "allow_consume_global": false, "scope": "Individual", "type": "Usage", "expired_at": null, "tags": null, "metadata": null, "client_ip": null, "client_fingerprint": null, "created_at": "2026-04-26T07:52:27.462400Z", "updated_at": "2026-04-26T07:52:27.462400Z" }
|
返回字段结构与获取 AceDataCloud 平台服务申请详情一致。
已申请过(HTTP 400)
1 2 3 4 5
|
{ "detail": "Item already exists.", "code": "duplication", "trace_id": "1a87524f8cbba0b790b2951e2e43117e" }
|
这是设计上的硬限制:每个用户对每个服务只能有一个 Application。已存在时通过获取 AceDataCloud 平台服务申请列表查找现成的。
服务不存在(HTTP 404)
1 2 3 4 5
|
{ "detail": "Service not found.", "code": "not_found", "trace_id": "..." }
|
服务需要审核(HTTP 403)
1 2 3 4 5
|
{ "detail": "This service requires manual verification.", "code": "need_verify", "trace_id": "..." }
|
如果服务的 need_verify=true(在服务列表里可看到该字段),需走工单流程申请白名单。
错误处理
| HTTP |
code |
含义 |
| 400 |
duplication |
该服务已被当前账户申请过 |
| 400 |
invalid |
service_id 缺失或格式错误 |
| 401 |
not_authenticated |
缺少账户令牌或令牌已被删除 |
| 403 |
need_verify |
服务需要审核,请走工单流程 |
| 404 |
not_found |
服务不存在或已下线 |
错误响应统一格式:
1 2 3 4 5
|
{ "detail": "...", "code": "...", "trace_id": "..." }
|
实用提示
- 申请是免费操作:仅在创建 Application 时赠送一次性免费额度,不会扣余额。免费额度用完后调用业务接口才会失败,提示需要充值。
- 是否需要付费看
paid 字段:刚申请时 paid=false,调用创建 AceDataCloud 平台充值订单 完成支付后变为 true。
disabled=true 表示被暂时禁用——比如风控触发、欠费等。被禁用时业务接口会返回 403。
- 批量申请 N 个服务:先调
services/?limit=100 拿到所有 service_id,然后并发调本接口,遇到 duplication 跳过即可。
相关接口