Get AceDataCloud Platform Service Application List

Returns all services applied for by the current account along with their remaining quota, payment status, whether disabled, and other core statuses. The frontend pages "My Subscriptions" and "My Services" as well as scheduled balance monitoring scripts are based on this API.

ℹ️ This API belongs to the AceDataCloud Platform Management API, with the unified prefix https://platform.acedata.cloud/api/v1/. For the complete API index, see Get AceDataCloud Platform Document List.

API Overview

Item Content
Method GET
URL https://platform.acedata.cloud/api/v1/applications/
Auth ✅ Requires account token

Authentication Instructions (How to Obtain Account Token)

Request header:

Authorization: Bearer platform-v1-92eb****629c

How to obtain the account token:

  1. One-click creation in Console: Log in to AceDataCloud PlatformAccount Token Console → Click the "Create" button.
  2. API Creation: See Manage AceDataCloud Platform Account Tokens.

Required Query Parameters

⚠️ The list API performs permission checks per object on paginated results. For a normal account, if ?user_id= is not provided, the first object not belonging to you will be rejected with a 403 permission_denied. It is recommended to directly pass ?user_id=me (the server will automatically expand it to the current account's UUID), or explicitly pass a UUID. Super administrators can omit user_id to view the entire table or pass other users' UUIDs to view their applications.

How to get an explicit user_id:

  1. Open https://auth.acedata.cloud/user/profile in a browser; the full UUID is displayed at the top of the page.
  2. Or obtain it from the user_id field in the response when creating an account token.

Query Parameters

Parameter Type Required Default Description
user_id UUID or me ⚠️ Whose applications to view. Required for normal accounts; me means current account; super admins can omit. Can be passed multiple times.
affiliation string No owner Effective only when user_id is provided. owner (default) shows only those created by self; granted shows those created by others and granted you Credential; can pass both affiliation=owner&affiliation=granted to view all.
service_id UUID No Filter by service
paid boolean No true to view only paid; false to view unpaid (including free trial)
disabled boolean No true to view only disabled; false to view enabled
scope string No Individual / Team
type string No Usage (pay-as-you-go) / Subscription
tag string No Filter by tag
expired boolean No true to view only expired (subscription type)
low_balance boolean No true to view only those with low balance alerts
limit integer No 10 Number of items per page, max 100
offset integer No 0 Offset
ordering string No Sort field, prefix - for descending. Commonly used: -created_at, -remaining_amount

Request Examples

cURL

# Recommended usage: user_id=me represents the current account, no need to look up UUID in advance
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=me&limit=20' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

# View only paid services
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=me&paid=true' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

# Low balance alerts
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=me&low_balance=true' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

# View only applications shared by others to me (I have Credential but am not the Owner)
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=me&affiliation=granted' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

# View both my own and those shared to me
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=me&affiliation=owner&affiliation=granted' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

Python

import requests

PLATFORM_TOKEN = "platform-v1-92eb****629c"

resp = requests.get(
    "https://platform.acedata.cloud/api/v1/applications/",
    headers={
        "accept": "application/json",
        "authorization": f"Bearer {PLATFORM_TOKEN}",
    },
    # user_id=me is syntactic sugar for the current account; default affiliation=owner.
    # To view those shared to me, pass affiliation=granted;
    # To view all, pass ["owner", "granted"].
    params={"user_id": "me", "limit": 100},
    timeout=10,
)
data = resp.json()
print(f"You have applied for {data['count']} services")
for app in data["items"]:
    status = "✅" if app["paid"] else ("🆓" if app["remaining_amount"] > 0 else "❌")
    print(f"  {status} {app.get('service', {}).get('title', app['service_id']):30s}  "
          f"Balance {app['remaining_amount']:.4f}")

Node.js

const url = new URL('https://platform.acedata.cloud/api/v1/applications/')
url.searchParams.set('user_id', 'me')
url.searchParams.set('limit', '100')
// Multiple values: url.searchParams.append('affiliation', 'owner'); url.searchParams.append('affiliation', 'granted')

const r = await fetch(url, {
  headers: { authorization: 'Bearer platform-v1-92eb****629c' },
})
const { count, items } = await r.json()
console.log(`Total applied services: ${count}`)

Response Example (HTTP 200)

{
  "count": 14,
  "items": [
    {
      "id": "82f57141-2323-4453-8730-60f7d833a2da",
      "service_id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452",
      "remaining_amount": 100.0,
      "used_amount": 12.34,
      "paid": true,
      "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-26T08:42:13.123456Z",
      "service": {
        "id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452",
        "alias": "openai",
        "title": "OpenAI",
        "type": "Api",
        "unit": "Credit"
      }
    }
  ]
}

Response Fields Description

Field Type Description
id UUID Application ID
service_id UUID Associated service ID
service object Simplified associated service object (id/alias/title/type/unit)
remaining_amount number Remaining available quota (unit as per service.unit, e.g., Credit, Count, Token)
used_amount number Total consumed quota
paid boolean Whether the initial payment is completed. Free quota granted on first application does not count as paid
user_id UUID Owner user ID
disabled boolean Whether disabled. When true, business APIs return 403
allow_consume_global boolean Whether allowed to consume from the account's global balance pool (if enabled, even if this Application's balance is exhausted, global recharge balance can still be consumed)
scope string Individual / Team
type string Usage (pay-as-you-go) / Subscription (expires at expired_at)
expired_at string | null Expiration time for subscription type
tags array | null User-defined tags
metadata object | null User-defined metadata
client_ip string | null Application source IP
client_fingerprint string | null Browser fingerprint
created_at string Creation time
updated_at string Last balance change time

Error Handling

HTTP code Meaning
401 not_authenticated Missing account token
403 permission_denied Normal account did not pass ?user_id=, or passed another user's user_id without being a super administrator

Useful Tips

  • user_id=me is the preferred usage — no need to look up UUID in advance; the server automatically expands it to the current account.
  • affiliation only takes effect when user_id is passed; super administrators can see the entire table without passing user_id.
  • paid=false but remaining_amount>0 means you are still using the free quota granted on first application and have not recharged; you must recharge after it is used up.
  • Balance monitoring: use ?user_id=me&low_balance=true to quickly fetch all services needing recharge; combined with webhook or email, automatic alerts can be implemented.
  • If a service does not appear in the list, it means it has not been applied for yet — first call Create AceDataCloud Platform Service Application.