Apify Key Rotator
Get a rotating Apify API key from the ColdCore database. Keys are rotated by least-recently-used with balance checking.
Usage
Get next available API key:
python3 ~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py
Get key as JSON (for piping to other scripts):
python3 ~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py --json
Check balance on a specific key:
python3 ~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py --check-balance --key "apify_api_xxxxx"
List all available keys with balances:
python3 ~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py --list
How It Works
- Connects to ColdCore MySQL database
- Queries
scrape_sm_accountsfor active Apify accounts - Returns the account with the oldest
last_usedtimestamp (least recently used) - Updates
last_usedto current timestamp after selection - Skips accounts with zero balance
Environment Variables
The script reads database credentials from these environment variables (falls back to defaults):
COLDCORE_HOST— MySQL hostCOLDCORE_USER— MySQL usernameCOLDCORE_PASS— MySQL passwordCOLDCORE_DB— Database name (default:lead_generator)
Output
Default mode: prints just the API key string (for easy piping)
apify_api_xxxxx
JSON mode (--json):
{"id": 68, "api_key": "apify_api_xxxxx", "email": "user@example.com", "balance": 4.95}
Integration with Other Skills
Other skills that need Apify access should call this script to get a key:
APIFY_KEY=$(python3 ~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py)
# Then use $APIFY_KEY in your API calls
Or in Python:
import subprocess
result = subprocess.run(
["python3", os.path.expanduser("~/.openclaw/workspace/skills/apify-keys/scripts/get_key.py"), "--json"],
capture_output=True, text=True
)
key_data = json.loads(result.stdout)
api_key = key_data["api_key"]