Skip to main content

API Key Authentication

All Range Data API requests require authentication using an API key passed in the request header.

Getting Your API Key

1

Sign Up

Create a free account at app.range.org
2

Generate API Key

Navigate to your dashboard and generate a new API key
3

Copy & Secure

Copy your API key and store it securely. Treat it like a password—never commit it to version control.

Making Authenticated Requests

Include your API key in the X-API-KEY header with every request:
curl -X GET "https://api.range.org/v1/address?address=YOUR_ADDRESS&network=solana" \
  -H "X-API-KEY: your_api_key_here"

Rate Limits

API rate limits vary by plan tier:
PlanRate LimitMonthly Quota
Free10 requests/minute100 requests/month
Pro100 requests/minute10,000 requests/month
EnterpriseCustomCustom
Rate limit headers are included in every API response to help you track usage:
  • X-RateLimit-Limit: Your rate limit ceiling - X-RateLimit-Remaining: Requests remaining in current window - X-RateLimit-Reset: Time when the rate limit resets (Unix timestamp)

Error Responses

401 Unauthorized

Missing or invalid API key:
{
  "statusCode": 401,
  "message": "Unauthorized",
  "error": "Invalid or missing API key"
}
Solution: Verify your API key is correct and included in the X-API-KEY header.

429 Too Many Requests

Rate limit exceeded:
{
  "statusCode": 429,
  "message": "Too Many Requests",
  "error": "Rate limit exceeded. Please try again later."
}
Solution: Wait for the rate limit window to reset (check X-RateLimit-Reset header) or upgrade your plan.

Best Practices

Store your API key in environment variables, never hardcode it:
export RANGE_API_KEY="your_api_key_here"
const apiKey = process.env.RANGE_API_KEY;
Never expose your API key in client-side code (frontend JavaScript, mobile apps). Make API calls from your backend server.
Rotate your API keys periodically and immediately if you suspect they’ve been compromised. You can generate new keys in your dashboard.
Track your API usage in the Range dashboard to avoid hitting rate limits and optimize your integration.

Need Help?