客户 API 文档
API 端点与身份验证
所有客户 API 调用均使用一个 <strong>HTTP POST</strong> 端点。通过 <code>key</code> 或 <code>apikey</code>(来自您的个人资料 API 密钥页面)以及 <code>action</code> 进行身份验证以选择操作。路径位于 <strong>站点根目录</strong>,格式为 <code>/api/v2</code> — 无语言前缀(例如,<code>/api</code> 前没有 <code>/en/</code>)。
以 <code>application/x-www-form-urlencoded</code>(例如 <code>curl -d</code>)或 JSON 格式(设置 <code>Content-Type: application/json</code>)发送参数。
{
"key": "YOUR_API_KEY",
"action": "categories"
}
<strong>注意:</strong> 将 <code>YOUR_API_KEY</code> 替换为您自己的密钥。切勿将 API 密钥放在 URL、客户端代码或公共存储库中。支持的 <code>action</code> 值:<code>categories</code>、<code>services</code>、<code>inventory</code>、<code>add</code>、<code>status</code>、<code>balance</code>。
测试 API
选择一个操作,输入任何必需的参数,然后点击 <strong>发送请求</strong> 以调用实时 API。如果您使用 API 密钥登录,它会在下方自动填入(已遮盖)。
响应
客户 API v2
获取分类
所有父分类及其子分类名称(用于筛选<strong>服务列表</strong>)。
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | categories | 是 |
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=categories"
响应示例
{
"categories": [
{
"category": "Social",
"subcategories": ["Premium", "Standard"]
},
{
"category": "Digital goods",
"subcategories": []
}
]
}
服务列表
可用的产品(服务)及库存。可选筛选条件使用 <strong>分类/子分类名称</strong>(由“获取分类”返回),或传递 <code>service</code> 以按 ID(<code>business_id</code> 或 MongoDB ID)获取单个产品。参数 <code>language</code> 控制 <code>name</code>、<code>description</code>、<code>category</code> 和 <code>subcategory</code> 的本地化(见下表)。<code>limit=0</code> 表示一次返回所有项目。
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | services | 是 |
page | 数字 | 页码(默认 <code>1</code>),当 <code>limit</code> > 0 时 | No |
limit | 数字 | 每页项目数;<code>0</code> = 返回全部(默认 <code>0</code>) | No |
category | 字符串 | 父分类名称(来自获取分类) | No |
subcategory | 字符串 | 子类别名称(来自获取类别) | No |
service | 字符串 | 仅返回此服务/产品 ID(与列表项中的 ID 相同) | No |
language | 字符串 | 响应语言 — 使用下方支持的语言代码(默认 <code>en</code>) | No |
支持的语言代码 (language)
传递以下值之一(匹配时不区分大小写)。如果省略或设置为 <code>en</code>,字段将保持<strong>英文</strong>(存储的源文本)。任何其他代码将在配置了 <code>AITRANSLATOR_BASE_URL</code> 时通过 Aitranslator 解析翻译;缺失的翻译将回退为英文,直到排队的翻译完成。
| 代码 | 语言 | 本地名称 |
|---|---|---|
en |
English | English |
zh |
Chinese | 中文 |
es |
Spanish | Español |
fr |
French | Français |
de |
German | Deutsch |
ja |
Japanese | 日本語 |
ko |
Korean | 한국어 |
pt |
Portuguese | Português |
pt-BR |
Portuguese (Brazil) | Português (Brasil) |
ru |
Russian | Русский |
ar |
Arabic | العربية |
hi |
Hindi | हिन्दी |
vi |
Vietnamese | Tiếng Việt |
ur |
Urdu | اردو |
th |
Thai | ไทย |
tr |
Turkish | Türkçe |
bn-BD |
Bengali (Bangladesh) | বাংলা |
也接受(别名)
这些字符串会被规范化为上述主代码(同一翻译桶):
| 您可以发送 | 解析为 |
|---|---|
zh-hans |
zh |
zh-cn |
zh |
zh-sg |
zh |
zh-hant |
zh |
zh-tw |
zh |
zh-hk |
zh |
zh-mo |
zh |
pt-br |
pt-BR |
pt_br |
pt-BR |
ptbr |
pt-BR |
bn-bd |
bn-BD |
bd |
bn-BD |
en-us |
en |
en-gb |
en |
<strong>不支持:</strong> 任何其他 <code>language</code> 值将被视为英文(不进行翻译)。请使用此处列出的确切主代码或别名。
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "page=1" \
-d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "category=Instagram"
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "service=10042" \
-d "language=zh"
响应示例
<strong>默认</strong>(<code>limit</code> 省略或为 <code>0</code>):一次响应返回所有服务。
{
"services": [
{
"service": 10042,
"name": "Example product A",
"description": "Product description (may be HTML)",
"type": "Default",
"category": "Social",
"subcategory": "Instagram",
"rate": "9.99",
"min": 1,
"max": 100,
"refill": false,
"cancel": false,
"stock": 100,
"entityType": "product",
"autoDelivery": true
}
],
"total": 2,
"page": 1,
"limit": 0,
"total_pages": 1
}
<strong>service</strong> 是产品的数字 <code>business_id</code>(如果已设置);否则是 MongoDB ID 的字符串形式。在<strong>检查库存</strong>和<strong>添加订单</strong>中使用相同的值。<strong>category</strong>/<strong>subcategory</strong> 与<strong>获取分类</strong>返回的名称匹配(当产品仅附加到顶级分类时,<code>subcategory</code> 为空)。<strong>description</strong> 是完整的产品描述(可能包含来自供应商编辑器的 HTML)。
检查库存
单个服务的库存(与服务列表中的 <code>service</code> ID 相同)。
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | inventory | 是 |
service | 字符串 | 服务列表中的服务/产品 ID | 是 |
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=inventory" \
-d "service=10042"
响应示例
{
"service": 10042,
"stock": 42,
"available": true,
"entityType": "product",
"autoDelivery": true
}
添加订单
创建订单并从<strong>账户余额</strong>支付。可选的 <code>link</code> 参数为兼容性而接受,但不会存储在订单上。
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | add | 是 |
service | 字符串 | 服务列表中的服务/产品 ID | 是 |
quantity | 数字 | 数量(默认 <code>1</code>) | No |
link | 字符串 | 可选(保留/未来使用) | No |
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=10042" \
-d "quantity=1"
响应示例
HTTP 状态 <code>201 Created</code>。
{
"order": "000000000000000000000001"
}
<code>order</code> 值是 MongoDB <code>ObjectId</code>(字符串)。将其用于<strong>订单状态</strong>(<code>action=status</code>)。
订单状态
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | status | 是 |
order | 字符串 | 由 <code>add</code> 返回的订单 ID | 是 |
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=000000000000000000000001"
响应示例
{
"status": "In progress",
"charge": "75.00",
"start_count": 3,
"remains": 1,
"delivered_units": 2,
"currency": "USD",
"autoDelivery": true,
"entityType": "product"
}
{
"status": "Completed",
"charge": "50.00",
"start_count": 2,
"remains": 0,
"delivered_units": 2,
"currency": "USD",
"autoDelivery": true,
"entityType": "product",
"accounts": ["example_user:redacted", "example_user_2:redacted"]
}
平衡
请求参数
| 参数 | 类型 | 描述 | 必需 |
|---|---|---|---|
key / apikey | 字符串 | 您的 API 密钥 | 是 |
action | 字符串 | balance | 是 |
示例请求
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
响应示例
{
"balance": "100.00",
"currency": "USD"
}
余额是您的<strong>用户</strong>钱包(用于购买)。
错误响应
错误使用单个 <code>error</code> 字符串。错误的或缺失的 API 凭据通常返回 HTTP <code>401</code>,内容为 <code>{"error": "Invalid API key"}</code>;验证问题通常返回 <code>400</code>。
{"error": "Invalid API key"}
{"error": "Invalid action"}
{"error": "Service ID is required"}
{"error": "Service not found"}
{"error": "Product not found."}
{"error": "This product is not available for purchase."}
{"error": "Invalid quantity."}
{"error": "Minimum quantity is 2."}
{"error": "Insufficient stock. Available: 10."}
{"error": "Insufficient balance. Please recharge your account."}
{"error": "Order not found"}
{"error": "Category not found"}
{"error": "Subcategory not found"}
{"error": "Subcategory not found in category"}