Backtest API & SDK
Run strategy backtests, browse the bot leaderboard, clone bots, and paper trade — all via API.
Quick Start
# Run a funding rate backtest
curl -X POST https://cymetica.com/api/v1/backtest-labs/run \
-H "Content-Type: application/json" \
-d '{"type":"funding_rate","params":{"coin":"BTC","days":30,"capital":10000,"leverage":1,"strategy":"cross_exchange"}}'
# Get bot leaderboard
curl https://cymetica.com/api/v1/backtest/leaderboard?sort=total_return&limit=10
from event_trader import EventTrader
client = EventTrader(api_key="evt_...")
# Run a backtest
result = await client.backtest.run_lab(
type="funding_rate",
params={"coin": "BTC", "days": 30, "capital": 10000}
)
# Get leaderboard
leaderboard = await client.backtest.leaderboard(sort="total_return", limit=10)
# Get bot profile
bot = await client.backtest.bot("alpha-momentum-v2")
import { EventTrader } from "@anthropic/event-trader";
const client = new EventTrader({ apiKey: "evt_..." });
// Run a backtest
const result = await client.backtest.runLab({
type: "funding_rate",
params: { coin: "BTC", days: 30, capital: 10000 }
});
// Get leaderboard
const leaderboard = await client.backtest.leaderboard({ sort: "total_return", limit: 10 });
// Get bot profile
const bot = await client.backtest.bot("alpha-momentum-v2");
# Python
pip install event-trader
# TypeScript / Node.js
npm install @anthropic/event-trader
Authentication
Most read endpoints are public (no auth required). Write operations (run backtest, clone, update settings) require a Bearer token.
# Authenticated request
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://cymetica.com/api/v1/backtest/bots/my-bot/run-backtest
Get your API key from /account → API Keys.
Backtest Labs
Run parameterized strategy backtests. Supports funding rate arbitrage, momentum, and mean reversion strategies. Max 20 concurrent backtests via Redis queue.
Request Body
funding_rate, momentum, mean_reversioncross_exchange)curl -X POST https://cymetica.com/api/v1/backtest-labs/run \
-H "Content-Type: application/json" \
-d '{
"type": "funding_rate",
"params": {
"coin": "BTC",
"days": 30,
"capital": 10000,
"leverage": 1,
"strategy": "cross_exchange"
}
}'
result = await client.backtest.run_lab(
type="funding_rate",
params={"coin": "BTC", "days": 30, "capital": 10000, "leverage": 1, "strategy": "cross_exchange"}
)
const result = await client.backtest.runLab({
type: "funding_rate",
params: { coin: "BTC", days: 30, capital: 10000, leverage: 1, strategy: "cross_exchange" }
});
Bot Leaderboard
Browse ranked AI trading bots with sorting and filtering. 60-second cache on leaderboard results.
Query Parameters
total_return, win_rate, sharpe, max_drawdown (default: total_return)all)all, red, bluecurl "https://cymetica.com/api/v1/backtest/leaderboard?sort=total_return&team=red&limit=10"
leaderboard = await client.backtest.leaderboard(sort="total_return", team="red", limit=10)
const lb = await client.backtest.leaderboard({ sort: "total_return", team: "red", limit: 10 });
Bot Profiles
Get bot details, equity curves, and trade history. 60-second cache on profile data.
Path Parameters
curl https://cymetica.com/api/v1/backtest/bots/alpha-momentum-v2
Returns time-series equity data for charting the bot's portfolio value over time.
curl https://cymetica.com/api/v1/backtest/bots/alpha-momentum-v2/equity
Query Parameters
curl "https://cymetica.com/api/v1/backtest/bots/alpha-momentum-v2/trades?limit=10"
Bot Operations
Run backtests and update settings. These endpoints require authentication.
Triggers a new backtest run for the specified bot. Returns a run ID that can be tracked via WebSocket.
curl -X POST https://cymetica.com/api/v1/backtest/bots/my-bot/run-backtest \
-H "Authorization: Bearer YOUR_TOKEN"
Request Body
curl -X PATCH https://cymetica.com/api/v1/backtest/bots/my-bot/settings \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Alpha Bot v3"}'
Bot Cloning
Clone bot species into new instances. Cloned bots get dedicated HD wallets (account 4 derivation path). Requires authentication.
Request Body
curl -X POST https://cymetica.com/api/v1/backtest/clone \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"species_slug": "momentum-species", "name": "My Momentum Clone"}'
Returns deposit address and minimum deposit required to activate a cloned bot.
curl https://cymetica.com/api/v1/backtest/clone/deposit-info/momentum-species \
-H "Authorization: Bearer YOUR_TOKEN"
Paper Trading
View paper trades and paper trading status for bots running in simulation mode.
Query Parameters
open, closed, allcurl "https://cymetica.com/api/v1/backtest/bots/alpha-bot/paper-trades?status=open&limit=20"
Returns current paper trading status including P&L, open positions, and account balance.
curl https://cymetica.com/api/v1/backtest/bots/alpha-bot/paper-status
WebSocket — Real-Time Backtest Updates
Stream real-time backtest progress and results via WebSocket.
Message Types
// JavaScript WebSocket example
const ws = new WebSocket("wss://cymetica.com/ws/backtest/bot-123?run_id=run-456");
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
switch (msg.type) {
case "progress":
console.log(`${msg.percent}% — ${msg.step}`);
break;
case "completed":
console.log("Results:", msg.results);
break;
case "failed":
console.error("Error:", msg.error);
break;
}
};
Rate Limits
MCP Tools
All backtest endpoints are available as MCP tools for AI integration. Install the EventTrader MCP server to use these tools with any MCP-compatible AI assistant.