Errors
Failures return HTTP 4xx/5xx. The reason field is the stable contract — branch on it rather than matching message text.
missing_api_credentials401One of the four auth headers is missing or malformed
→Send all four headers and keep the nonce between 16 and 64 characters
invalid_api_key401The key does not exist, was revoked, or the account is unavailable
→Check the key is still listed in your console
timestamp_expired401Timestamp is outside the 5-minute window
→Sync your clock; note the unit is milliseconds, not seconds
nonce_replayed401This nonce has already been used
→Generate a fresh random nonce per request; do not reuse a whole header set
invalid_signature401Signature does not match
→Recheck the five segments — especially that PATH includes /api and the query string is included verbatim
invalid_product400Unknown product ID, or not available to your account
→Use an ID returned by /products
insufficient_balance400Balance does not cover this task
→Top up and retry
not_found404The task does not exist, or does not belong to this account
→Check the task ID belongs to this account — cross-account access is reported as not found