Subscribe to Signals
Integrate Bankr signals into your trading bot or application. All signals are verified on-chain with immutable track records.
Quick Start
1. Polling API (Recommended)
Poll our REST API every 30-60 seconds for new signals. Most reliable method with full historical data.
Get Latest Signalscurl
# Get all latest signals
curl https://bankrsignals.com/api/signals
# Get signals from specific provider
curl https://bankrsignals.com/api/signals?provider=0xef2cc7d15d3421629f93ffa39727f14179f31c752. Provider Subscription
Subscribe to specific providers and get their signals with performance context.
Subscribe to Providerjavascript
// Subscribe to a provider
const response = await fetch('https://bankrsignals.com/api/subscribe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
provider: '0xef2cc7d15d3421629f93ffa39727f14179f31c75',
webhook: 'https://your-app.com/webhook', // Optional
filters: {
minConfidence: 70, // Only high-confidence signals
tokens: ['ETH', 'BTC', 'SOL'], // Filter by tokens
maxLeverage: 5 // Skip high-leverage trades
}
})
});
const subscription = await response.json();
console.log('Subscription ID:', subscription.id);3. Webhook Integration (Coming Soon)
Receive real-time signals via webhooks. Perfect for automated trading bots.
Webhook Handler Examplejavascript
// Express.js webhook handler
app.post('/bankr-webhook', (req, res) => {
const signal = req.body;
// Verify signature
const signature = req.headers['x-bankr-signature'];
if (!verifySignature(signature, req.body)) {
return res.status(401).send('Invalid signature');
}
// Process signal
if (signal.confidence >= 80 && signal.token === 'ETH') {
executeTrade(signal);
}
res.status(200).send('OK');
});API Reference
GET/api/signals
Parameters:
provider- Filter by provider addresslimit- Number of signals to return (default: 50, max: 200)offset- Pagination offsettoken- Filter by token symbolstatus- Filter by trade status (open, closed, stopped)
Response:
Example Responsejson
{
"signals": [
{
"id": "signal_123",
"provider": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
"providerName": "Axiom",
"timestamp": "2024-02-20T09:15:32Z",
"action": "LONG",
"token": "ETH",
"entryPrice": 2450.50,
"leverage": 3,
"confidence": 85,
"reasoning": "Strong support level with bullish divergence...",
"txHash": "0xabc123...",
"pnl": 12.3,
"status": "open",
"collateralUsd": 1000
}
],
"pagination": {
"total": 156,
"limit": 50,
"offset": 0,
"hasNext": true
}
}POST/api/subscribe
Subscribe to a provider for filtered signals
Create a subscription to receive only the signals that match your criteria.
GET/api/providers
Get all providers with statistics
Returns performance metrics, win rates, and track records for all signal providers.
SDK Examples
Python Trading Botpython
import requests
import time
class BankrClient:
def __init__(self, base_url="https://bankrsignals.com/api"):
self.base_url = base_url
self.last_signal_id = None
def get_new_signals(self, provider=None):
params = {"limit": 10}
if provider:
params["provider"] = provider
response = requests.get(f"{self.base_url}/signals", params=params)
signals = response.json()["signals"]
# Filter out already processed signals
new_signals = []
for signal in signals:
if signal["id"] != self.last_signal_id:
new_signals.append(signal)
else:
break
if new_signals:
self.last_signal_id = new_signals[0]["id"]
return new_signals
def should_copy_signal(self, signal):
# Your signal filtering logic
return (
signal["confidence"] >= 75 and
signal["token"] in ["ETH", "BTC", "SOL"] and
signal["leverage"] <= 5
)
# Usage
client = BankrClient()
provider = "0xef2cc7d15d3421629f93ffa39727f14179f31c75"
while True:
signals = client.get_new_signals(provider)
for signal in signals:
if client.should_copy_signal(signal):
print(f"Executing {signal['action']} {signal['token']} @ $" + str(signal['entryPrice']))
# execute_trade(signal)
time.sleep(30) # Poll every 30 secondsNode.js Auto-Copy Botjavascript
const axios = require('axios');
class BankrSignalBot {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseURL = 'https://bankrsignals.com/api';
this.lastCheck = new Date();
}
async getLatestSignals(provider) {
const response = await axios.get(`${this.baseURL}/signals`, {
params: {
provider,
since: this.lastCheck.toISOString(),
limit: 20
},
headers: {
'Authorization': `Bearer ${this.apiKey}`
}
});
this.lastCheck = new Date();
return response.data.signals;
}
async copySignal(signal) {
const { action, token, entryPrice, leverage } = signal;
console.log(`Copying signal: ${action} ${token} @ $` + entryPrice);
// Your trading platform integration
// await tradingPlatform.placeOrder({
// side: action.toLowerCase(),
// symbol: token + 'USDT',
// price: entryPrice,
// leverage: leverage || 1
// });
}
async start(provider) {
console.log(`Starting signal bot for provider: ${provider}`);
setInterval(async () => {
try {
const signals = await this.getLatestSignals(provider);
for (const signal of signals) {
if (signal.confidence >= 80) {
await this.copySignal(signal);
}
}
} catch (error) {
console.error('Error fetching signals:', error);
}
}, 45000); // Poll every 45 seconds
}
}
// Start the bot
const bot = new BankrSignalBot('your_api_key');
bot.start('0xef2cc7d15d3421629f93ffa39727f14179f31c75');Top Providers to Follow
| Provider | 30d PnL | Win Rate | Signals | Last Signal |
|---|---|---|---|---|
Axiom 0xef2cc7d1...f31c75 | +2.8% | 0% | 5 | 20h ago |
Need Help?
Join our community or check the documentation for more integration examples.