Get AceDataCloud Platform Service List

The AceDataCloud platform abstracts all callable functional modules as "services" — for example, Midjourney image generation, OpenAI conversation, Suno song creation, Veo video production, web scraping, SERP search, etc. This interface returns the complete list of all available services on the platform, with each record containing full information such as name, pricing rules, free quota, optional packages, associated API/Proxy endpoints, etc.

Through this interface, you can:

  • Embed a "service marketplace" page in your own product, allowing users to choose from it.
  • Provide a capability list to the LLM Agent, allowing it to decide which service to call.
  • Write scheduled scripts to monitor price/package changes.

ℹ️ 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.

Interface Overview

Item Content
Method GET
URL https://platform.acedata.cloud/api/v1/services/
Authentication ❌ Public
Cache The server has a short cache of 60 seconds, safe for high-frequency calls

Authentication Description

This interface is completely public, anyone can call it, no account token or login state is required.

💡 However: If you include an account token, the applied field in the response will change to true/false (indicating whether you have applied for the service), rather than always being false. This is very convenient for the front-end "applied / apply now" button's two-state switching.

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

For information on obtaining an account token, see Manage AceDataCloud Platform Account Token.

Query Parameters

Parameter Type Required Default Description
id UUID No Service ID. Supports multiple values: ?id=xxx&id=yyy
alias string No Service alias (short English code), such as midjourney, openai, webextrator
type string No Service type, values: Api, Proxy, Integration, Dataset, Introduction, Agent
private bool No true returns only private services (visible only to yourself); false returns only public services; if not provided, returns all
tag string No Filter by tag, such as image, video, llm
limit integer No 10 Number of items per page, maximum 100
offset integer No 0 Offset
ordering string No rank Sorting, prefix - indicates descending order. Commonly used -rank, -applied_count, -updated_at

Request Examples

cURL

# Without authentication, get the first 2 Api type services
curl 'https://platform.acedata.cloud/api/v1/services/?type=Api&limit=2' \
  -H 'accept: application/json'

# With authentication, check applied status
curl 'https://platform.acedata.cloud/api/v1/services/?type=Api&limit=5' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

# Precise query by alias
curl 'https://platform.acedata.cloud/api/v1/services/?alias=midjourney' \
  -H 'accept: application/json'

Python

import requests

resp = requests.get(
    "https://platform.acedata.cloud/api/v1/services/",
    headers={"accept": "application/json"},
    params={"type": "Api", "limit": 20, "ordering": "-applied_count"},
    timeout=10,
)
data = resp.json()
print(f"Total {data['count']} Api services, sorted by popularity in descending order")
for svc in data["items"]:
    print(f"  {svc['title']:30s}  {svc['applied_count']:>6} people applied  {svc['free_amount']} {svc['unit']} free")

Node.js

const params = new URLSearchParams({ type: 'Api', limit: '20', ordering: '-applied_count' })
const r = await fetch(`https://platform.acedata.cloud/api/v1/services/?${params}`)
const { count, items } = await r.json()
console.log(`Total ${count} services`)
items.forEach((s) => console.log(`${s.title} (${s.alias})  Free ${s.free_amount} ${s.unit}`))

Response Example (HTTP 200)

{
  "count": 42,
  "items": [
    {
      "id": "8efa1d83-9b75-4562-b44a-af95ce563d05",
      "alias": "face-transform",
      "title": "Face Transformation",
      "description": "Services for face recognition, replacement, and style transfer.",
      "introduction": "",
      "type": "Api",
      "applied": false,
      "applied_count": 281,
      "free_amount": 1.0,
      "unit": "Credit",
      "private": false,
      "need_verify": false,
      "rank": 0,
      "tags": [],
      "metadata": null,
      "thumbnail": "https://cdn.acedata.cloud/qrd7gw.png/thumb_600x300",
      "doc_url": null,
      "demo_url": null,
      "api_ids": [
        "e4fbc3b6-4f44-48fb-a049-40f5c27c7cd3",
        "2c7f6468-58d9-4611-885b-1e34664d49e9"
      ],
      "proxy_ids": [],
      "cost": [
        { "conditions": { "==": [1, 1] }, "consumption": 0.0025 }
      ],
      "packages": [
        {
          "id": "4add61f2-61db-4d1c-85b6-d4876ac122f0",
          "type": "Usage",
          "price": 63.2,
          "amount": 530.0,
          "duration": null,
          "private": false,
          "tags": [],
          "metadata": null,
          "created_at": "2024-12-19T13:57:46.525377Z",
          "updated_at": "2024-12-19T13:57:46.525394Z"
        }
      ],
      "created_at": "2024-06-11T00:41:29.255614Z",
      "updated_at": "2026-04-26T16:12:40.481154Z"
    }
  ]
}

Response Field Description

Field Type Description
count integer Total number of items that meet the criteria
items array List of services (single page)
id UUID Unique identifier for the service
alias string Service alias (short English code), may be null
title string Service title (automatically localized according to Accept-Language)
description string A brief description
introduction string Detailed long text in Markdown, may be empty
type string Api / Proxy / Integration / Dataset / Introduction / Agent
applied boolean Meaningful only with authentication: Whether the current account has applied for this service
applied_count integer Total number of users who have applied for this service
free_amount number Free quota automatically granted after application
unit string Measurement unit: Credit (points), Count (times), Token, MB, GB
private boolean Whether it is a private service (private services generally do not appear in the public list and require login to view)
need_verify boolean Whether manual review is required before allowing application
rank integer Sorting weight (the larger the number, the higher the priority)
tags array Tags, such as ["image","ai"]
metadata object Extended metadata
thumbnail string Thumbnail URL
doc_url string External document link (e.g., developer center), may be null
demo_url string Demo page link
api_ids array List of associated API IDs
proxy_ids array List of associated Proxy IDs
cost array Pricing rules in JsonLogic format, conditions expressions match request parameters and consumption is billed
packages array List of purchasable packages, see Create AceDataCloud platform recharge order
created_at string Service launch time
updated_at string Last update time of service information (package / pricing changes)

Error Handling

Public APIs rarely encounter errors. Common non-200 situations:

HTTP Meaning
400 Invalid parameter values such as ?limit= or ?type=
502 / 503 / 504 Gateway or backend temporarily unavailable, it is recommended to retry with exponential backoff 1–3 times

Error response format:

{
  "detail": "Invalid value for parameter 'type'.",
  "code": "invalid",
  "trace_id": "5b0f15d6e9c34c9c93d6d0f4f3a8c8d7"
}

Practical Tips

  • The most efficient way to filter services is by alias, not id: Service ID is a UUID, which is not convenient for hardcoding in the code.
  • type=Api is the most commonly used filter: 90% of users only care about Api types; Integration is for composite workflows, Dataset is for read-only datasets, and Proxy is for OpenAI compatible forwarding.
  • The packages field returns prices but does not include discounts: The actual order amount will be recalculated when using X402 cryptocurrency payment or holding $ACE tokens during order creation. See Create AceDataCloud platform recharge order and Query AceDataCloud platform $ACE token holdings and discounts.
  • This interface has a large amount of data (each record may contain several KB of introduction Markdown): It is recommended to pass limit=20 for paginated loading when making long lists on the client side, rather than pulling everything at once.