400
invalid_request修正 JSON body 后再发送,不要原样重复请求。
Authorization: Bearer ecw_live_...
X-API-Key: ecw_live_...X-Quota-Limit: 1000
X-Quota-Remaining: 997
X-RateLimit-Limit: 30Idempotency-Key: order-sync-2026-06-14-001Scope: tools:gtin:generateECOMWITH_API_KEY=ecw_live_...错误响应使用 error.code 和 error.message。先按状态码和错误码处理,再决定是否等待或用同一个 Idempotency-Key 重试。
invalid_request修正 JSON body 后再发送,不要原样重复请求。
authentication_required / invalid_api_key检查 Authorization: Bearer 或 X-API-Key;不要把完整 key 写进错误日志。
membership_required / insufficient_scope检查当前套餐和 key 的 scope;scope 不能提升会员额度。
idempotency_conflict / idempotency_in_progress同一业务请求保持同一个 key;冲突先停止,处理中等待后用同 key 重试。
payload_too_large缩小请求体到当前套餐的 payload 限制以内,再重新发送。
quota_exceeded / rate_limited / concurrency_limited读取 X-Quota-*、X-RateLimit-* 和 Retry-After;额度为 0 时停止,限速或并发时等待。
| 状态 | error.code | 下一步 |
|---|---|---|
| 400 | invalid_request | 修正 JSON body 后再发送,不要原样重复请求。 |
| 401 | authentication_required / invalid_api_key | 检查 Authorization: Bearer 或 X-API-Key;不要把完整 key 写进错误日志。 |
| 403 | membership_required / insufficient_scope | 检查当前套餐和 key 的 scope;scope 不能提升会员额度。 |
| 409 | idempotency_conflict / idempotency_in_progress | 同一业务请求保持同一个 key;冲突先停止,处理中等待后用同 key 重试。 |
| 413 | payload_too_large | 缩小请求体到当前套餐的 payload 限制以内,再重新发送。 |
| 429 | quota_exceeded / rate_limited / concurrency_limited | 读取 X-Quota-*、X-RateLimit-* 和 Retry-After;额度为 0 时停止,限速或并发时等待。 |
错误响应结构
{"object":"tool_api.error","error":{"code":"invalid_request","message":"Request body must be a JSON object."}}额度按 API key 所属用户的当前会员等级计算。分钟限制按每个 API key 对每个工具分别计算;超过上限会返回 429 rate_limited。请让 Agent 顺序发送请求,并以每次响应里的 quota 和 rateLimit 为准。
| 会员 | API 调用 | 每天额度 | 单次请求 | 每分钟 | 使用说明 |
|---|---|---|---|---|---|
| Basic | 当前不包含 API 调用额度 | 不可用 | 不可用 | 不可用 | 如果接口返回 membership_required,请停止调用并检查当前账号套餐。 |
| Pro | 可调用 | 500 次请求 | 1 个二维码 | 60 次请求 | 一次请求生成一个二维码,不使用 quantity 字段。请在 quota.remaining 为 0 时停止请求。 |
| Max | 可调用 | 5,000 次请求 | 1 个二维码 | 200 次请求 | 一次请求生成一个二维码,不使用 quantity 字段。请在 quota.remaining 为 0 时停止请求。 |
请顺序调用
同一个 API key 对同一个工具一次只处理一个请求。如果返回 429 concurrency_limited,请等待上一个请求完成后,用同一个 Idempotency-Key 重试。
你是我的自动化 Agent。请使用 Ecomwith Tool API 调用 QR Code API,不要在日志、聊天记录或错误消息里输出完整 API key。
认证:
- 从环境变量 ECOMWITH_API_KEY 读取密钥。
- 请求头使用 Authorization: Bearer <ECOMWITH_API_KEY>。
请求:
- Endpoint: POST https://ecomwith.com/api/v1/tools/qrcode/generate
- Headers: Content-Type: application/json
- Body 示例: {"text":"https://example.com","format":"svg","size":300}
- 一次请求生成一个二维码,不使用 quantity 字段。
当前额度:
- Pro: 每天 500 次请求,单次生成 1 个二维码,每分钟最多 60 次请求。
- Max: 每天 5,000 次请求,单次生成 1 个二维码,每分钟最多 200 次请求。
- Basic 当前不包含 API 调用额度。如果返回 membership_required,请停止并提醒我检查套餐。
额度和限速处理:
- 每次响应都读取 quota.remaining 和 rateLimit.remaining。
- 如果 quota.remaining 为 0,停止请求。
- 不要并发调用同一个工具;请等待上一次请求完成后再发送下一次。
- 如果返回 429 concurrency_limited,请等待上一个请求完成后,用同一个 Idempotency-Key 重试。
- 如果返回 429 rate_limited,请等待后再试;如果返回 429 quota_exceeded,请停止并告诉我额度不足。
安全重试:
- 每一次业务任务生成一个稳定的 Idempotency-Key,例如 qr-product-page-123。
- 网络超时或 5xx 时,用同一个 Idempotency-Key 重试,不要换新 key。
- 400、401、403 不要自动重试。
- 如果返回 409 idempotency_conflict,说明同一个 key 搭配了不同请求体,请停止并让我确认。
成功后请返回 qrcode.dataUrl、format、quota.remaining 和 rateLimit.remaining。curl -X POST https://ecomwith.com/api/v1/tools/qrcode/generate \
-H "Authorization: Bearer $ECOMWITH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: qr-001" \
-d '{"text": "https://example.com", "format": "svg", "size": 300}'