API Documentation
Complete reference for the MyCryptoSignal API
Overview
MyCryptoSignal provides free AI-powered cryptocurrency trading signals. The API is free forever with attribution required. Rate limited. No guarantees on availability or timing.
What You Get
BUY/HOLD/RISK signals via REST API
Free forever (attribution required)
Rate limited for fair usage
JSON responses
No Guarantees:
- Signal availability, timing, or frequency not guaranteed
- API may be throttled or temporarily unavailable
- No SLA or uptime commitments
- Not financial advice - informational only
https://mycryptosignal.axiopistis-systems.workers.dev
Authentication
All API requests (except /api/health) require an API key in the X-API-Key header:
curl -H "X-API-Key: mcs_your_api_key_here" \
https://mycryptosignal.axiopistis-systems.workers.dev/api/signals
- Never commit API keys to version control
- Use environment variables for keys
- Rotate keys periodically
- Restrict keys to specific IP addresses (Enterprise only)
Rate Limits
Rate limits apply to all API keys. Limits may change without notice.
Current Limits (Subject to Change):
- Requests per minute: Rate limited
- Requests per day: Rate limited
- Limits enforced to ensure fair usage
- Violations may result in key suspension
Rate Limit Headers
Every response includes rate limit information:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1642684800
X-Quota-Limit: 300000
X-Quota-Remaining: 275432
X-Quota-Reset: 1643673600
Endpoints
Check API availability
{
"status": "ok",
"timestamp": 1642684800000
}
Get the list of 60 tracked cryptocurrencies
{
"coins": [
{
"id": "bitcoin",
"symbol": "BTC",
"name": "Bitcoin",
"chain": "Bitcoin"
},
...
]
}
Get latest market snapshots for all coins (updated every 30 minutes)
{
"data": [
{
"coin_id": "bitcoin",
"symbol": "BTC",
"name": "Bitcoin",
"price": 42500.50,
"market_cap": 805000000000,
"volume_24h": 32500000000,
"price_change_24h": 2.5,
"price_change_7d": -1.2,
"price_change_30d": 8.7,
"timestamp": 1642684800
},
...
],
"count": 60,
"attribution": "Data provided by MyCryptoSignal"
}
Get latest on-chain metrics (updated every 30 minutes)
{
"data": [
{
"coin_id": "ethereum",
"symbol": "ETH",
"name": "Ethereum",
"transaction_count": 1250000,
"active_addresses": 450000,
"gas_used": 12500000000000,
"network_utilization": 0.75,
"timestamp": 1642684800
},
...
],
"count": 60,
"attribution": "Data provided by MyCryptoSignal"
}
Get current trading signals for all coins (updated daily at 08:00 UTC)
{
"signals": [
{
"coin_id": "bitcoin",
"symbol": "BTC",
"name": "Bitcoin",
"action": "BUY",
"confidence": 78.5,
"explanation": "Strong bullish momentum with increasing on-chain activity...",
"signal_date": "2026-01-20",
"timestamp": 1642665600
},
...
],
"count": 60,
"attribution": "Data provided by MyCryptoSignal"
}
- BUY - Bullish signal, consider buying
- HOLD - Neutral, maintain current position
- RISK - Bearish signal, consider selling/avoiding
Get signal history for a specific coin (up to 365 days)
Query Parameters
coin_id(required) - Coin identifier (e.g., "bitcoin")days(optional) - Number of days (default: 30, max: 365)
curl -H "X-API-Key: YOUR_KEY" \
"https://mycryptosignal.axiopistis-systems.workers.dev/api/signals/history?coin_id=bitcoin&days=30"
{
"coin_id": "bitcoin",
"history": [
{
"coin_id": "bitcoin",
"action": "BUY",
"confidence": 78.5,
"explanation": "Strong bullish momentum...",
"signal_date": "2026-01-20",
"timestamp": 1642665600
},
...
],
"count": 30,
"attribution": "Data provided by MyCryptoSignal"
}
Code Examples
JavaScript / Node.js
const API_KEY = 'mcs_your_api_key_here';
const BASE_URL = 'https://mycryptosignal.axiopistis-systems.workers.dev';
async function getSignals() {
const response = await fetch(`${BASE_URL}/api/signals`, {
headers: {
'X-API-Key': API_KEY
}
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const signals = await response.json();
console.log('Signals:', signals);
return signals;
}
getSignals();
Python
import requests
API_KEY = 'mcs_your_api_key_here'
BASE_URL = 'https://mycryptosignal.axiopistis-systems.workers.dev'
def get_signals():
headers = {'X-API-Key': API_KEY}
response = requests.get(f'{BASE_URL}/api/signals', headers=headers)
response.raise_for_status()
return response.json()
signals = get_signals()
print(f"Total signals: {len(signals)}")
cURL
# Get current signals
curl -H "X-API-Key: mcs_your_api_key_here" \
https://mycryptosignal.axiopistis-systems.workers.dev/api/signals
# Get history for Bitcoin
curl -H "X-API-Key: mcs_your_api_key_here" \
"https://mycryptosignal.axiopistis-systems.workers.dev/api/signals/history?coin_id=bitcoin&days=7"
Error Handling
All errors return appropriate HTTP status codes and JSON error messages:
401 Unauthorized
Invalid or missing API key
{
"error": "Invalid or missing API key"
}
429 Too Many Requests
Rate limit exceeded
{
"error": "Rate limit exceeded: 60 requests per minute. Retry after 42s"
}
500 Internal Server Error
Server error (rare, contact support if persistent)
{
"error": "Internal server error"
}
Best Practices
Caching Strategy
- Coins: Cache for 24 hours (static data)
- Market/On-Chain: Cache for 30 minutes (update frequency)
- Signals: Cache for 23 hours (updates daily at 08:00 UTC)
Rate Limit Management
- Monitor rate limit headers in responses
- Implement exponential backoff for 429 errors
- Batch requests when possible
- Use webhooks when available (coming soon)
Legal Disclaimer
IMPORTANT: MyCryptoSignal provides informational data only. Signals are NOT financial advice. Trading cryptocurrencies carries significant risk. Always do your own research and consult with qualified financial advisors before making investment decisions. Past performance does not guarantee future results.