Ender Docs

Error Codes

Complete list of API error codes and their meanings.

Error Response Format

All errors follow this format:

{
  "success": false,
  "data": {
    "error": "Human-readable error message",
    "code": "ERROR_CODE"
  }
}

Authentication Errors

CodeHTTPDescriptionSolution
INVALID_API_KEY401API key is invalid or malformedCheck key format and validity
API_KEY_INACTIVE401API key has been deactivatedActivate or use a different key
API_KEY_REVOKED401API key has been deletedCreate a new API key
MISSING_AUTH401No Authorization header providedAdd Authorization header

Credit Errors

CodeHTTPDescriptionSolution
INSUFFICIENT_CREDITS402Not enough credits for operationTop up your account
NO_CREDITS_AVAILABLE402No plan or balance creditsPurchase credits or subscribe

Rate Limit Errors

CodeHTTPDescriptionSolution
RATE_LIMIT_EXCEEDED429Too many requestsWait and retry with backoff
CONCURRENT_LIMIT429Too many concurrent requestsWait for previous requests to complete

Request Errors

CodeHTTPDescriptionSolution
INVALID_REQUEST400Request body is malformedCheck JSON syntax
MISSING_FIELD400Required field is missingInclude all required fields
INVALID_FIELD400Field value is invalidCheck field format/type
INVALID_CC_FORMAT400Card format is incorrectUse number|mm|yy|cvv format
INVALID_PROXY_FORMAT400Proxy format is incorrectCheck proxy URL format

Checker Errors

CodeHTTPDescriptionSolution
INVALID_GATE400Gate ID doesn't existUse valid gate from list
GATE_DISABLED503Gate is temporarily unavailableUse a different gate
GATE_RATE_LIMITED429Gate has been rate limitedWait or use different gate
CHECK_FAILED500Check couldn't be completedRetry with different proxy
PROXY_ERROR502Proxy connection failedUse a working proxy

Solver Errors

CodeHTTPDescriptionSolution
INVALID_SITEKEY400Sitekey is invalidVerify the sitekey from page
INVALID_URL400URL is malformedProvide full valid URL
SOLVE_FAILED500Couldn't solve captchaRetry or contact support
SOLVE_TIMEOUT504Solve took too longRetry the request

Account Errors

CodeHTTPDescriptionSolution
USER_NOT_FOUND404User doesn't existCheck user identifier
USER_SUSPENDED403Account has been suspendedContact support
PLAN_REQUIRED403Feature requires subscriptionSubscribe to a plan
PLAN_LIMIT_REACHED403Plan limit exceededUpgrade plan or wait for reset

Coupon Errors

CodeHTTPDescriptionSolution
COUPON_NOT_FOUND404Coupon code doesn't existCheck code spelling
COUPON_EXPIRED400Coupon has expiredUse a valid coupon
COUPON_REDEEMED400Coupon already usedCoupon can only be used once
COUPON_CANCELLED400Coupon was cancelledUse a different coupon
OWN_COUPON400Can't redeem own couponCoupons are for gifting

Payment Errors

CodeHTTPDescriptionSolution
PAYMENT_EXPIRED400Invoice has expiredCreate new payment
PAYMENT_FAILED400Payment couldn't be processedTry again
MIN_AMOUNT400Below minimum amountIncrease payment amount
MAX_AMOUNT400Above maximum amountDecrease payment amount

Shopify Gate Errors

CodeHTTPDescriptionSolution
GATE_EXISTS400Gate with this name existsUse a different name
INVALID_DOMAIN400Not a valid Shopify domainCheck domain format
MAX_GATES_REACHED403Gate limit reachedDelete unused gates
GATE_NOT_YOURS403Gate belongs to another userUse your own gate

Server Errors

CodeHTTPDescriptionSolution
INTERNAL_ERROR500Unexpected server errorRetry or contact support
SERVICE_UNAVAILABLE503Service temporarily downRetry later
GATEWAY_TIMEOUT504Upstream service timeoutRetry the request

Handling Errors

JavaScript Example

try {
  const response = await fetch("https://api.ender.black/v1/checkers/auth", {
    method: "POST",
    headers: {
      Authorization: "YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ gate: "gate-id", cc: "..." }),
  });
 
  const data = await response.json();
 
  if (!data.success) {
    switch (data.data.code) {
      case "INSUFFICIENT_CREDITS":
        console.error("Need more credits!");
        break;
      case "RATE_LIMIT_EXCEEDED":
        console.error("Too many requests, slowing down...");
        await sleep(5000);
        break;
      default:
        console.error("Error:", data.data.error);
    }
  }
} catch (error) {
  console.error("Network error:", error);
}

On this page