RELIABILITY
Errors, retries and charges
Understand free failures, billable empty results, safe replay and bounded retries.
Start with status
ok has results. empty is a completed, billable lookup with no results. error, timeout and not_supported carry zero cost. In a fanout, each platform is settled separately.
The six public error codes are rate_limited, insufficient_balance, upstream_error, not_supported, invalid_params and timeout. Read retryable and the error's specific guidance.
Choose the matching recovery
rate_limited: respect retry_after. insufficient_balance: inspect the wallet and top up if needed. invalid_params: correct the input before another request. not_supported: choose a documented alternative without describing it as equivalent.
For upstream_error or timeout, follow retryable. Ambiguous timeouts are not automatically retried. Do not add a blind retry loop to a paid tool call.
Preserve the logical request
Use an Idempotency-Key for HTTP paid calls. Reuse it with the identical input and same Key when recovering that logical request; do not reuse it for a different question. Replays are bounded by the server's retention window, not a forever cache.
MCP also has short-window fingerprint deduplication. It does not make repeated intentional research calls free. Inspect billing on every result.
Payment confirmation comes from settlement
A Stripe Checkout URL starts payment. A return to the console is not proof of payment. Only a verified settlement updates purchased credits; inspect Balance and its transaction list.
Failed data calls are not charged. Credit purchases are non-refundable. Top-ups are charged in CNY, from ¥50 to ¥10,000 per purchase.