异步生成包含所选时间段内全部业务接口调用流水的 CSV 文件,并返回下载 URL。适合月度对账、给财务出 BI 报表、给第三方审计师交付明细等场景。
📌 调用记录数量超过 1 万条时强烈建议用本接口而不是分页拉取调用记录列表——服务端生成 CSV 更快。
ℹ️ 本接口属于 AceDataCloud 平台管理 API,统一前缀 https://platform.acedata.cloud/api/v1/。
接口概览
| 项 |
内容 |
| 方法 |
POST |
| URL |
https://platform.acedata.cloud/api/v1/usages/export/ |
| 鉴权 |
✅ 需要账户令牌 |
| Content-Type |
application/json |
鉴权说明(如何获取账户令牌)
请求头:
1
|
Authorization: Bearer platform-v1-92eb****629c
|
获取方式见管理 AceDataCloud 平台账户令牌。
请求体
| 字段 |
类型 |
必填 |
说明 |
user_id |
UUID |
✅ |
当前账户用户 ID(同样在 Body 里,不在 query 里) |
start_at |
datetime |
✅ |
起始时间(ISO8601) |
end_at |
datetime |
✅ |
结束时间(ISO8601)。单次导出窗口建议 ≤ 90 天 |
application_id |
UUID |
否 |
按 Application 过滤 |
service_id |
UUID |
否 |
按服务过滤 |
credential_id |
UUID |
否 |
按凭证过滤 |
status_code |
integer |
否 |
按 HTTP 状态码过滤 |
请求示例
cURL
1 2 3 4 5 6 7 8 9
|
curl -X POST 'https://platform.acedata.cloud/api/v1/usages/export/' \ -H 'accept: application/json' \ -H 'authorization: Bearer platform-v1-92eb****629c' \ -H 'content-type: application/json' \ -d '{ "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b", "start_at": "2026-04-01T00:00:00Z", "end_at": "2026-04-30T23:59:59Z" }'
|
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 27 28 29 30 31 32 33 34 35
|
import requests import time
PLATFORM_TOKEN = "platform-v1-92eb****629c" USER_ID = "89518d07-5560-4b05-92c1-667f3ddf6a4b"
resp = requests.post( "https://platform.acedata.cloud/api/v1/usages/export/", headers={ "authorization": f"Bearer {PLATFORM_TOKEN}", "content-type": "application/json", }, json={ "user_id": USER_ID, "start_at": "2026-04-01T00:00:00Z", "end_at": "2026-04-30T23:59:59Z", }, timeout=30, ) task = resp.json() print(f"导出任务已创建:{task['id']}, 状态: {task['state']}")
while task["state"] in ("Pending", "Processing"): time.sleep(2) task = requests.get( f"https://platform.acedata.cloud/api/v1/usages/export/{task['id']}", headers={"authorization": f"Bearer {PLATFORM_TOKEN}"}, ).json()
if task["state"] == "Completed": print(f"✅ 导出完成,下载 URL: {task['file_url']}") else: print(f"❌ 导出失败:{task.get('error')}")
|
Node.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
const r = await fetch('https://platform.acedata.cloud/api/v1/usages/export/', { method: 'POST', headers: { authorization: 'Bearer platform-v1-92eb****629c', 'content-type': 'application/json', }, body: JSON.stringify({ user_id: '89518d07-5560-4b05-92c1-667f3ddf6a4b', start_at: '2026-04-01T00:00:00Z', end_at: '2026-04-30T23:59:59Z', }), }) const task = await r.json() console.log('任务 ID:', task.id)
|
响应示例(HTTP 202)
1 2 3 4 5 6 7 8 9 10
|
{ "id": "exp-9c8b7a6d5e4f3a2b1c0d", "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b", "state": "Pending", "start_at": "2026-04-01T00:00:00Z", "end_at": "2026-04-30T23:59:59Z", "file_url": null, "expires_at": null, "created_at": "2026-04-26T08:30:00Z" }
|
完成后 state 变为 Completed 且 file_url 包含 CSV 下载链接(一般 24h 内有效)。
响应字段说明
| 字段 |
类型 |
说明 |
id |
string |
导出任务 ID |
state |
string |
Pending / Processing / Completed / Failed |
file_url |
string \ |
null |
完成后的 CSV 下载 URL(一般 24h 内有效) |
expires_at |
string \ |
null |
下载 URL 失效时间 |
start_at |
string |
导出窗口起始 |
end_at |
string |
导出窗口结束 |
error |
string \ |
null |
失败原因(仅 state=Failed 时返回) |
CSV 列定义
file_url 下载的 CSV 文件含以下列(首行为表头):
1
|
created_at, application_id, service_id, credential_id, api_id, method, path, status_code, consumption, duration_ms, client_ip, request_id
|
字段含义同调用记录列表。
错误处理
| HTTP |
code |
含义 |
| 400 |
invalid |
user_id / start_at / end_at 缺失或格式错误 |
| 400 |
window_too_large |
时间窗口超过限制(默认 90 天) |
| 401 |
not_authenticated |
缺少账户令牌 |
| 403 |
permission_denied |
user_id 不是你的 |
实用提示
- 大窗口分段导出:跨年导出建议按月分多次任务。
- 下载 URL 有时效:一般 24 小时;过期需重新发起导出任务。
- 不要把
file_url 写在前端代码里:URL 含签名,应在后端转存到自己的存储再分发给用户。
- CSV 编码 UTF-8 BOM:Excel 直接打开中文不乱码。
相关接口