下单
使用熟悉的 reseller 面板格式提交订单。旧客户端可省略幂等字段;同一账户的相同请求体在 60 秒内映射到同一订单。精确重试时请复用 request_id 或 idempotency_key。普通订单发送前会保留 15 秒。
POST
https://notpanel.com/api/v3action=add需要 API key受速率限制(共享账户 + IP + action)请求体:
application/x-www-form-urlencodedrequest_id 和 idempotency_key 均为可选。两者都没有时,同一账户的相同请求体受保护 60 秒;窗口内故意提交相同订单会返回第一个订单。若要立即创建重复订单,请等待 60 秒或发送唯一 request_id。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
| key必需 | string | 你的 API key。 |
| action必需 | string | 必须是字面字符串 “add”。 |
| service必需 | integer | 来自服务列表的服务 ID。提交时该服务必须处于有效状态。 |
| request_id | string | 建议使用的可选键,每个逻辑订单唯一,最长 128 个字符。精确重试时复用;两个别名都提供时以 request_id 为准。 |
| idempotency_key | string | request_id 的可选别名。两者都不存在时,服务器会对相同请求体应用 60 秒保护。 |
| link视情况 | string (URL) | 目标 URL — 个人资料、帖子、视频或频道。所选服务要求链接时必填。最多 1000 个字符;必须使用 http(s)。 |
| quantity视情况 | integer | 要交付的单位数量,须在服务的最小值与最大值之间。 |
| runs视情况 | integer | 仅当 dripfeed=true 时须与 interval 一起提供。使用验证结果所示有效配置上限内的正整数;绝对上限为 1000。quantity × runs 不得超过服务上限。 |
| interval视情况 | integer | 仅当 dripfeed=true 时须与 runs 一起提供。使用验证结果所示有效配置上限内的正整数分钟数;绝对上限为 2880 分钟。非滴灌服务会拒绝这两个字段。 分批投放计划:最长 48 小时(批次数 × 间隔)。 |
| coupon | string | 要使用的优惠券代码,受优惠券的单用户、全局和服务限制约束。 |
| delay | integer | 可选的开始延迟。如果所选服务支持此字段,请使用 1 到 86400 秒之间的整数。 |
| lpost_count | integer | 适用于兼容普通服务的可选最近帖子数量。使用 1 至 500 的整数,除非服务将其定义为自己的规范字段。 |
| reactions | string (map) | 适用于兼容普通服务的可选表情映射。发送 JSON 或受支持的 PHP 风格单引号格式,最多 50 个表情 key。值必须全部为 R 以随机分配,或全部为不超过 1000000 的正整数;不要混用模式。精确数量模式下,总和会成为有效 quantity 并决定已提交的扣费。 |
请求示例
将 YOUR_API_KEY 替换为在你仪表盘 API 页面下生成的 key。
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=add&service=1&request_id=550e8400-e29b-41d4-a716-446655440000&link=https://instagram.com/example&quantity=1000"const res = await fetch("https://notpanel.com/api/v3", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
action: "add",
service: "1",
request_id: "550e8400-e29b-41d4-a716-446655440000",
link: "https://instagram.com/example",
quantity: "1000",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "add",
"service": "1",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"link": "https://instagram.com/example",
"quantity": "1000",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => '1',
'request_id' => '550e8400-e29b-41d4-a716-446655440000',
'link' => 'https://instagram.com/example',
'quantity' => '1000',
]);
$response = file_get_contents('https://notpanel.com/api/v3', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $body,
'ignore_errors' => true,
],
]));
print_r(json_decode($response, true));
响应示例
{
"order": 7001,
"status": "Pending",
"status_key": "pending",
"charge": "0.50",
"currency": "USD",
"cancel_available": true,
"cancel_window_seconds": 15,
"cancel_before": "2026-08-25T10:30:15.000Z"
}常见错误
| 状态 | 响应体 | 原因 |
|---|---|---|
| 400 | {"error":"Service not found"} | 服务 ID 不存在。请重新获取服务列表并使用当前 ID。 |
| 400 | {"error":"Service has been discontinued and is no longer available"} | 该服务存在,但已停用、归档或不再接受订单。请刷新目录并选择可用服务。 |
| 400 | {"error":"Insufficient balance"} | 账户余额低于该订单的总扣费。请通过控制台充值。 |
| 400 | {"error":"Quantity must be a positive integer"} | 数量为零、负数或非整数。请在提交前进行校验。 |
| 409 | {"error":"request_id was already used with different parameters"} | 请求与现有状态冲突,例如为不同逻辑订单复用 add 的 request_id。请根据情况使用原请求或新的唯一标识符。 |