Get the list of API credentials for the AceDataCloud platform
List all API credentials (Credential) issued for the current account—this is the 32-bit Token used when calling the https://api.acedata.cloud/** business interface.
ℹ️ This interface belongs to the AceDataCloud platform management API, with a unified prefix of
https://platform.acedata.cloud/api/v1/. For a complete index of interfaces, see Get the AceDataCloud platform documentation list.
¶ API Credentials vs Account Token
Beginners often confuse these—let's emphasize again:
| Dimension | API Credentials (this document) | Account Token (Account Token) |
|---|---|---|
| Purpose | Call business interface https://api.acedata.cloud/** |
Call management interface https://platform.acedata.cloud/** |
| Format | 32-bit hexadecimal | platform-v1- + 64-bit hexadecimal (total 76 characters) |
| Quantity | Multiple can be issued for each Application | Usually 1-2 |
| Expiration Conditions | Can set quota limits / expiration time / bound IP | Only invalidated when actively deleted |
See Manage AceDataCloud platform account tokens for details.
¶ Interface Overview
| Item | Content |
|---|---|
| Method | GET |
| URL | https://platform.acedata.cloud/api/v1/credentials/ |
| Authentication | ✅ Requires account token |
¶ Authentication Instructions (How to obtain account token)
Request header:
Authorization: Bearer platform-v1-92eb****629c
How to obtain: Log in to AceDataCloud platform → Account Token Console → Click the "Create" button. See Manage AceDataCloud platform account tokens for details.
¶ Required Query Parameters
⚠️ Must include
?user_id=<your_user_id>. The list interface performs permission checks for each object; if not provided, the first non-self object will return403 permission_denied.
Get user_id: Open https://auth.acedata.cloud/user/profile.
¶ Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
user_id |
UUID | ✅ | — | Current account user ID |
application_id |
UUID | No | — | Filter by Application |
service_id |
UUID | No | — | Filter by service |
disabled |
boolean | No | — | true to see only disabled, false to see only enabled |
expired |
boolean | No | — | true to see only expired |
limit |
integer | No | 10 | Number of items per page |
offset |
integer | No | 0 | Offset |
ordering |
string | No | — | Sorting field, prefix - for descending. Commonly used -created_at, -used_at |
¶ Request Example
¶ cURL
USER_ID=89518d07-5560-4b05-92c1-667f3ddf6a4b
curl "https://platform.acedata.cloud/api/v1/credentials/?user_id=${USER_ID}&limit=20" \
-H 'accept: application/json' \
-H 'authorization: Bearer platform-v1-92eb****629c'
¶ Python
import requests
PLATFORM_TOKEN = "platform-v1-92eb****629c"
USER_ID = "89518d07-5560-4b05-92c1-667f3ddf6a4b"
resp = requests.get(
"https://platform.acedata.cloud/api/v1/credentials/",
headers={
"accept": "application/json",
"authorization": f"Bearer {PLATFORM_TOKEN}",
},
params={"user_id": USER_ID, "limit": 100},
timeout=10,
)
data = resp.json()
print(f"Total {data['count']} credentials")
for c in data["items"]:
print(f" {c['name']:30s} {c['token'][:8]}...{c['token'][-4:]} Last used: {c.get('used_at') or 'Never'}")
¶ Node.js
const USER_ID = '89518d07-5560-4b05-92c1-667f3ddf6a4b'
const url = new URL('https://platform.acedata.cloud/api/v1/credentials/')
url.searchParams.set('user_id', USER_ID)
const r = await fetch(url, {
headers: { authorization: 'Bearer platform-v1-92eb****629c' },
})
console.log(await r.json())
¶ Response Example (HTTP 200)
{
"count": 5,
"items": [
{
"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": "ac****ab",
"amount": null,
"used_amount": 12.34,
"remaining_amount": null,
"disabled": false,
"expired_at": null,
"tags": ["prod"],
"metadata": null,
"client_ip_allowlist": null,
"used_at": "2026-04-26T08:30:00Z",
"created_at": "2026-04-26T07:55:00Z",
"updated_at": "2026-04-26T08:30:00Z"
}
]
}
⚠️ The
tokenfield in the list interface is masked (first 2 +****+ last 2 characters). To obtain the complete Token, please go to the Create AceDataCloud platform API credentials interface and save it at the time of creation. If you forget to save it, you can only rotate or delete and recreate it.
¶ Response Field Description
| Field | Type | Description |
|---|---|---|
id |
UUID | Credential ID |
user_id |
UUID | Associated user |
application_id |
UUID | Related Application |
name |
string | User-defined name (for identification in the console) |
token |
string | Desensitized Token preview |
amount |
number | null |
used_amount |
number | Total consumed amount of this credential |
remaining_amount |
number | null |
disabled |
boolean | Whether it is disabled |
expired_at |
string | null |
tags |
array | null |
metadata |
object | null |
client_ip_allowlist |
array | null |
used_at |
string | null |
created_at |
string | Creation time |
updated_at |
string | Last modified time |
¶ Error Handling
| HTTP | Code | Meaning |
|---|---|---|
| 401 | not_authenticated |
Missing account token |
| 403 | permission_denied |
?user_id= not provided or provided another's user_id |
¶ Practical Tips
tokendesensitization is irreversible—it is only returned in full plaintext once at the moment of creation or rotation, so be sure to store it in a password manager on the spot.- It is strongly recommended to set
amountlimits in production environments: specify when creating credentials to avoid unlimited charges after credential leakage. - Zombie credential cleanup: can be batch deleted if
used_atisnullor has not been updated for a long time.
