SDKs & Libraries
Code examples and patterns for integrating Ender API into your applications.
Overview
While you can use Ender API directly with HTTP requests, we provide code examples in multiple languages to get you started quickly.
Official SDKs are in development. For now, use the examples below.
Quick Start Examples
Node.js
class EnderClient {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = "https://api.ender.black/v1";
}
async request(endpoint, options = {}) {
const response = await fetch(`${this.baseUrl}${endpoint}`, {
...options,
headers: {
Authorization: this.apiKey,
"Content-Type": "application/json",
...options.headers,
},
});
return response.json();
}
// Checkers
async authCheck(gate, cc, proxy) {
return this.request("/checkers/auth", {
method: "POST",
body: JSON.stringify({ gate, cc, proxy }),
});
}
async chargeCheck(gateId, cc, amount, proxy) {
return this.request("/checkers/charge", {
method: "POST",
body: JSON.stringify({ gateId, cc, amount, proxy }),
});
}
async shopifyCheck(gateId, cc, proxy) {
return this.request("/checkers/shopify", {
method: "POST",
body: JSON.stringify({ gateId, cc, proxy }),
});
}
// Solvers
async solveRecaptchaV2(sitekey, url) {
return this.request("/solvers/recaptcha_v2", {
method: "POST",
body: JSON.stringify({ sitekey, url }),
});
}
async solveRecaptchaV3(sitekey, url, action) {
return this.request("/solvers/recaptcha_v3", {
method: "POST",
body: JSON.stringify({ sitekey, url, action }),
});
}
async solveTurnstile(sitekey, url) {
return this.request("/solvers/cloudflare_turnstile", {
method: "POST",
body: JSON.stringify({ sitekey, url }),
});
}
// User
async getMe() {
return this.request("/me", { method: "POST" });
}
}
// Usage
const client = new EnderClient("YOUR_API_KEY");
// Check a card
const result = await client.authCheck("stripe", "4111...|12|25|123");
console.log(result);
// Solve a captcha
const captcha = await client.solveRecaptchaV2("6Le...", "https://example.com");
console.log(captcha.data.token);Python
import requests
from typing import Optional, Dict, Any
class EnderClient:
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = 'https://api.ender.black/v1'
def _request(self, endpoint: str, method: str = 'GET',
json: Optional[Dict] = None) -> Dict[str, Any]:
headers = {
'Authorization': self.api_key,
'Content-Type': 'application/json'
}
response = requests.request(
method,
f'{self.base_url}{endpoint}',
headers=headers,
json=json
)
return response.json()
# Checkers
def auth_check(self, gate: str, cc: str, proxy: Optional[str] = None):
return self._request('/checkers/auth', 'POST', {
'gate': gate,
'cc': cc,
'proxy': proxy
})
def charge_check(self, gate_id: str, cc: str,
amount: float = None, proxy: Optional[str] = None):
return self._request('/checkers/charge', 'POST', {
'gateId': gate_id,
'cc': cc,
'amount': amount,
'proxy': proxy
})
def shopify_check(self, gate_id: str, cc: str, proxy: Optional[str] = None):
return self._request('/checkers/shopify', 'POST', {
'gateId': gate_id,
'cc': cc,
'proxy': proxy
})
# Solvers
def solve_recaptcha_v2(self, sitekey: str, url: str):
return self._request('/solvers/recaptcha_v2', 'POST', {
'sitekey': sitekey,
'url': url
})
def solve_recaptcha_v3(self, sitekey: str, url: str, action: str = None):
return self._request('/solvers/recaptcha_v3', 'POST', {
'sitekey': sitekey,
'url': url,
'action': action
})
def solve_turnstile(self, sitekey: str, url: str):
return self._request('/solvers/cloudflare_turnstile', 'POST', {
'sitekey': sitekey,
'url': url
})
# User
def get_me(self):
return self._request('/me', 'POST')
# Usage
client = EnderClient('YOUR_API_KEY')
# Check a card
result = client.auth_check('stripe', '4111...|12|25|123')
print(result)
# Solve a captcha
captcha = client.solve_recaptcha_v2('6Le...', 'https://example.com')
print(captcha['data']['token'])Error Handling
Both examples can be extended with proper error handling:
Node.js with Error Handling
async function safeRequest(client, method, ...args) {
try {
const result = await client[method](...args);
if (!result.success) {
console.error(`API Error: ${result.data.error}`);
return null;
}
return result.data;
} catch (error) {
console.error(`Network Error: ${error.message}`);
return null;
}
}
// Usage
const data = await safeRequest(client, 'authCheck', 'stripe', '4111...|12|25|123');
if (data) {
console.log('Card result:', data);
}Community SDKs
If you've built an SDK for Ender, contact us to have it listed here.
API Reference
For complete API documentation, see: