参考
错误
每个错误都有固定的错误码、HTTP 状态,以及说明重试是否有帮助的标志。请根据 error_code 和 retryable 分支处理,而不是根据消息文本。
错误结构
失败的请求会返回一个带有该错误 HTTP 状态的 JSON 对象。error 文本是用类型化的值填充的固定英文句子;绝不包含来自其他系统的文本。
{
"error": "Minimum quantity is 100",
"error_code": "MINIMUM_QUANTITY",
"retryable": false,
"details": {
"n": 100
}
}错误字段
errorstring- 给人看的固定英文消息。只读取
error的旧脚本仍可继续工作。 error_codestring- 下方列表中的错误码。可安全地据此分支。
retryableboolean- 稍后再次发送相同请求可能成功时为
true。 detailsobject- 填入消息的值,按名称给出,例如
param、rule、n或time。仅在有值时出现。 retry_afterinteger- 再次尝试前需要等待的秒数。在等待时间已知时出现,并同步在
Retry-After响应头中。
HTTP 状态
以下是 API 使用的状态。HTTP 原因短语是协议名称,保持英文。
- 400
Bad Request
请求无效。请修正后再重新发送。
- 401
Unauthorized
API 密钥无效。
- 402
Payment Required
钱包余额过低。
- 403
403
该账户目前无法使用 API。
- 404
Not Found
未找到服务、订单、补充或 webhook。
- 405
405
只接受 POST。
- 409
Conflict
请求与某个服务、订单或之前的请求 ID 的状态冲突。
- 410
410
该服务已停用。
- 413
413
请求正文过大。
- 429
Too Many Requests
达到速率限制。请等待后重试。
- 500
500
我们这边出了故障。重复请求是安全的。
- 503
503
API 或下单功能暂时暂停。请按 Retry-After 等待。
安全重试
当 retryable 为 true 时,等待 retry_after 或 Retry-After 响应头指定的时间,加上一些随机抖动,然后重新发送请求。为 false 时,请先修改请求。如果对 add 的调用超时,或因 INTERNAL_ERROR 失败,请用相同的 request_id(最多 128 个字符)再发送一次:你会拿回原订单,绝不会得到第二个订单。
示例
key=YOUR_API_KEY&action=add&service=7&link=https://instagram.com/example&quantity=10{
"error": "Minimum quantity is 100",
"error_code": "MINIMUM_QUANTITY",
"retryable": false,
"details": {
"n": 100
}
}key=YOUR_API_KEY&action=add&service=7&link=https://instagram.com/example&quantity=10000{
"error": "Insufficient balance",
"error_code": "INSUFFICIENT_BALANCE",
"retryable": false
}key=YOUR_API_KEY&action=balance{
"error": "Rate limit exceeded",
"error_code": "API_RATE_LIMITED",
"retryable": true,
"retry_after": 12
}key=YOUR_API_KEY&action=add&link=https://instagram.com/example&quantity=100{
"error": "Missing required parameter: service",
"error_code": "MISSING_PARAMETER",
"retryable": false,
"details": {
"param": "service"
}
}全部错误码
消息是固定模板;其占位符从 details 填入。每个错误码都显示其 HTTP 状态以及重试是否有帮助。
请求与账户
- 401
INVALID_KEY
Invalid API key密钥缺失、错误或已被撤销。 请先修正请求。
- 405
METHOD_NOT_ALLOWED
Use POST请求不是 POST。 请先修正请求。
- 413
BODY_TOO_LARGE
Request body too large请求正文过大。 请先修正请求。
- 400
INVALID_ACTION
Invalid action该操作不是文档中列出的操作之一。 请先修正请求。
- 400
MISSING_PARAMETER
Missing required parameter: {param}缺少必填参数。details.param 指明了它。 请先修正请求。
- 400
INVALID_PARAMETER
Invalid {param}: {rule}某个参数的值无效。details.param 和 details.rule 说明是哪个以及原因。 请先修正请求。
- 400
TOO_MANY_IDS
Maximum 100 IDs per request某个列表包含的 ID 超过一次请求所能承载的数量。 请先修正请求。
- 403
INACTIVE_ACCOUNT
Account suspended账户已被暂停。 请先修正请求。
- 403
EMAIL_UNVERIFIED
Email verification required账户的电子邮箱尚未验证。 请先修正请求。
可用性与限制
- 503
API_DISABLED
The API is temporarily disabledAPI 暂时关闭。Retry-After 会说明何时重试。 重试可能有帮助。
- 429
API_RATE_LIMITED
Rate limit exceeded达到速率限制。见速率限制。 重试可能有帮助。
- 500
INTERNAL_ERROR
Internal server error我们这边出了问题。用相同的 request_id 重复 add 是安全的。 重试可能有帮助。
服务与下单
- 404
SERVICE_NOT_FOUND
Service not found没有此 ID 的服务,或该服务对你不可用。 请先修正请求。
- 410
SERVICE_DISCONTINUED
Service has been discontinued该服务已停用。 请先修正请求。
- 409
SERVICE_PAUSED
Service is temporarily unavailable该服务暂时暂停。请稍后重试。 重试可能有帮助。
- 503
ORDER_PLACEMENT_PAUSED
Ordering is temporarily paused下单功能对所有人暂时暂停。Retry-After 会说明何时重试。 重试可能有帮助。
- 400
INVALID_LINK
Link is invalid for this service该链接不适用于此服务。 请先修正请求。
- 400
LINK_BLOCKED
This link is blocked. Contact support if this is a mistake.该链接已被封锁。如果你认为这是误判,请联系客服。 请先修正请求。
- 409
LINK_BUSY
An order for this link is still running. Wait until it finishes.此链接之前的订单仍在进行中。请等待其完成。 重试可能有帮助。
- 400
MINIMUM_QUANTITY
Minimum quantity is {n}数量低于服务的最小值。 请先修正请求。
- 400
MAXIMUM_QUANTITY
Maximum quantity is {n}数量高于服务的最大值。 请先修正请求。
- 400
QUANTITY_STEP
Quantity must be a multiple of {step}数量不是服务步长的倍数。 请先修正请求。
- 400
QUANTITY_MISMATCH
quantity must equal the number of items in {param} ({count})数量与列表或反应字段中的项目数不一致。 请先修正请求。
- 400
MINIMUM_ORDER_AMOUNT
Minimum order amount is ${amount}订单金额低于最低订单金额。 请先修正请求。
- 402
INSUFFICIENT_BALANCE
Insufficient balance钱包余额低于应扣费用。 请先修正请求。
- 400
INVALID_OPTION
Invalid {param}: {rule}某个额外字段的值无效。details.param 和 details.rule 说明是哪个以及原因。 请先修正请求。
- 400
OPTION_NOT_SUPPORTED
This service does not accept {param}该服务不接受你发送的某个字段。 请先修正请求。
- 400
DRIP_FEED_NOT_AVAILABLE
Drip-feed is not available for this service该服务没有细水长流,或不支持此数量。 请先修正请求。
- 400
DRIP_FEED_CONFLICT
Send runs and interval, or drip_feed_total_minutes, not both同一请求中发送了两种细水长流形式。 请先修正请求。
- 400
DRIP_FEED_INVALID
{rule}细水长流的值不符合限制。消息会说明是哪项限制。 请先修正请求。
- 429
ORDER_LIMIT_REACHED
Too many orders. Try again later.同时下单或处于开启状态的订单过多。请稍后重试。 重试可能有帮助。
- 409
SERVICE_CHANGED
Service settings changed while placing the order. Retry.下单期间服务设置发生了变化。请重新发送请求。 重试可能有帮助。
- 409
REQUEST_ID_CONFLICT
request_id was already used with different parameters该 request_id 已经用不同的参数下过单。 请先修正请求。
订单与取消
- 404
ORDER_NOT_FOUND
Order not found你的账户下没有此编号的订单。 请先修正请求。
- 409
ORDER_FINISHED
Order is already {status}订单已经结束。 请先修正请求。
- 409
CANCEL_NOT_AVAILABLE
Cancel is not available for this order此订单无法取消。 请先修正请求。
- 409
CANCEL_REFUSED
The order could not be canceled. You can ask again after {time}.取消请求被拒绝。你可以在 details.time 给出的时间之后再次询问。 重试可能有帮助。
补充
- 409
REFILL_NOT_AVAILABLE
Refill is not available for this order此订单无法补充。 请先修正请求。
- 409
REFILL_NOT_COMPLETED
Refill is available after the order is completed订单完成后才可补充。 重试可能有帮助。
- 409
REFILL_COOLDOWN
You can request a refill again after {time}此订单最近已申请过补充。请在 details.time 之后再试。 重试可能有帮助。
- 409
REFILL_ALREADY_PENDING
A refill request is already in progress for this order此订单已有补充在进行中。 重试可能有帮助。
- 404
REFILL_NOT_FOUND
Refill not found你的账户下没有此 ID 的补充。 请先修正请求。
Webhook
- 409
WEBHOOK_LIMIT
Maximum {limit} webhook endpoints per account该账户的 webhook 端点数量已达上限。 请先修正请求。
- 404
WEBHOOK_NOT_FOUND
Webhook not found你的账户中不存在此 ID 的 webhook 端点。 请先修正请求。
- 400
INVALID_WEBHOOK_URL
Invalid webhook URL该 URL 不是公开的 https 地址。 请先修正请求。