Ender Docs

Authentication

Learn how to authenticate your API requests with Ender.

Overview

All Ender API endpoints require authentication via API key, except these public endpoints:

  • GET /v1/health — API health check
  • GET /v1/coupons/validate/:code — Validate coupon code
  • GET /v1/webshare/health — Webshare service health

Using Your API Key

Include your API key in the Authorization header of every request:

curl -X POST https://api.ender.black/v1/checkers/auth \
  -H "Authorization: ender_a1b2c3d4e5f6789012345678abcdef01" \
  -H "Content-Type: application/json" \
  -d '{"gate": "stripe", "cc": "4111111111111111|12|25|123"}'

Getting Your API Key

Your API key is automatically generated when you create an account. Find it in your dashboard under Account Settings.

Each user has a single API key that remains the same for your account.

Security Best Practices

Never Expose Your Keys

Never share your API keys or commit them to version control.

Recommendations

  1. Use environment variables to store API keys
  2. Keep your key secure — never share it publicly
  3. Monitor usage through the dashboard for suspicious activity

Example: Using Environment Variables

// .env
// ENDER_API_KEY=ender_a1b2c3d4e5f6789012345678abcdef01
 
const API_KEY = process.env.ENDER_API_KEY;
 
if (!API_KEY) {
  throw new Error('ENDER_API_KEY environment variable is not set');
}

Rate Limiting

API requests are rate limited based on your subscription plan. Limits are applied per minute using a sliding window algorithm.

Rate Limits by Plan

PlanRequests/Minute
Free50
Lite100
Basic150
Premium300
Black300

Rate Limit Headers

Every response includes rate limit headers:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 295
X-RateLimit-Reset: 1703592000
HeaderDescription
X-RateLimit-LimitMaximum requests allowed per minute
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the rate limit resets

When Rate Limited

If you exceed your rate limit, you'll receive a 429 Too Many Requests response:

{
  "success": false,
  "data": {
    "error": "Rate limit exceeded. Please try again later."
  }
}

The response includes a Retry-After header indicating how many seconds to wait.

Plan Changes

Rate limits update immediately when you upgrade your plan.

Error Responses

Missing API Key

{
  "success": false,
  "data": {
    "error": "API Key is required"
  }
}

Invalid API Key

{
  "success": false,
  "data": {
    "error": "Invalid API Key"
  }
}

Rate Limit Exceeded

{
  "success": false,
  "data": {
    "error": "Rate limit exceeded. Please try again later."
  }
}

Next Steps

On this page