Create AceDataCloud Platform Service Application
"Application" indicates the current account's subscription relationship to a service—an application must be made before creating API credentials or calling business interfaces for that application. The first application for a service will automatically receive the free quota set for that service (e.g., 1 Credit), allowing immediate trial use.
ℹ️ This interface belongs to the AceDataCloud Platform Management API, with a unified prefix of
https://platform.acedata.cloud/api/v1/. For the complete interface index, see Get AceDataCloud Platform Documentation List.
¶ Complete Integration Process
New users typically go through these 5 steps from registration to successfully calling the first business interface:
- Obtain Account Token → Manage AceDataCloud Platform Account Token
- Select Service → Get AceDataCloud Platform Service List
- Create Application (this document) → Automatically receive free quota
- Create API Credentials → Create AceDataCloud Platform API Credentials
- Call Business Interface → Use the obtained 32-bit Token to call
https://api.acedata.cloud/<path>
¶ Interface Overview
| Item | Content |
|---|---|
| Method | POST |
| URL | https://platform.acedata.cloud/api/v1/applications/ |
| Authentication | ✅ Requires Account Token |
| Content-Type | application/json |
¶ Authentication Description (How to Obtain Account Token)
Request Header:
Authorization: Bearer platform-v1-92eb****629c
The Account Token is a "account-level key" that developers use to manage their account resources via the API. Methods to obtain it:
- One-click Creation in Console (Recommended): Log in to AceDataCloud Platform → Account Token Console → Click "Create" to obtain a token starting with
platform-v1-. - API Creation: Use an existing account token or browser login JWT to call
POST /api/v1/platform-tokens/, see Manage AceDataCloud Platform Account Token for details.
⚠️ The account token is as sensitive as a password; it is prohibited to write it in front-end code or public repositories. If leaked, delete and recreate it immediately in the console.
¶ Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
service_id |
UUID | ✅ | The ID of the service to apply for. Can be obtained from the Service List items[].id |
¶ Request Example
¶ cURL
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
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 successful! application_id={app['id']}")
print(f"Free quota granted: {app['remaining_amount']} {app.get('unit', '')}")
elif resp.status_code == 400 and resp.json().get("code") == "duplication":
print("⚠️ This service has already been applied for, please find the existing application_id in the /applications/ list")
else:
print(f"Application failed: HTTP {resp.status_code} - {resp.text}")
¶ Node.js
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())
}
¶ Response Example
¶ Success (HTTP 201)
{
"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"
}
The returned field structure is consistent with Get AceDataCloud Platform Service Application Details.
¶ Already Applied (HTTP 400)
{
"detail": "Item already exists.",
"code": "duplication",
"trace_id": "1a87524f8cbba0b790b2951e2e43117e"
}
This is a design limitation: Each user can only have one Application for each service. If it already exists, find the existing application_id through Get AceDataCloud Platform Service Application List.
¶ Service Not Found (HTTP 404)
{
"detail": "Service not found.",
"code": "not_found",
"trace_id": "..."
}
¶ Service Requires Review (HTTP 403)
{
"detail": "This service requires manual verification.",
"code": "need_verify",
"trace_id": "..."
}
If the service's need_verify=true (this field can be seen in the service list), a ticket process must be followed to apply for a whitelist.
¶ Error Handling
| HTTP | code | Meaning |
|---|---|---|
| 400 | duplication |
This service has already been applied for by the current account |
| 400 | invalid |
service_id is missing or in the wrong format |
| 401 | not_authenticated |
Missing account token or the token has been deleted |
| 403 | need_verify |
The service requires review, please follow the ticket process |
| 404 | not_found |
The service does not exist or has been taken offline |
Error response unified format:
{
"detail": "...",
"code": "...",
"trace_id": "..."
}
¶ Practical Tips
- Application is a free operation: Only when creating an Application is a one-time free quota given, it will not deduct from the balance. After the free quota is used up, calling the business interface will fail, prompting the need to recharge.
- Whether payment is required depends on the
paidfield: When first applied,paid=false, after calling Create AceDataCloud platform recharge order and completing the payment, it changes totrue. disabled=truemeans temporarily disabled—for example, triggered by risk control, arrears, etc. When disabled, the business interface will return403.- Batch apply for N services: First call
services/?limit=100to get allservice_ids, then concurrently call this interface, skipping if encounteringduplication.
¶ Related Interfaces
- Get AceDataCloud platform service list — First select services
- Get AceDataCloud platform service application list — View all applied
- Get AceDataCloud platform service application details — View a single application
- Create AceDataCloud platform API credentials — Next step after successful application
- Create AceDataCloud platform recharge order — Recharge after free quota is used up
