Deepwick API
全エンドポイントは HTTPS 上の JSON です。認証: セッションクッキー(ダッシュボードと同じ)、または `Authorization: Bearer <token>` での個人アクセストークン。トークンは「設定 → API トークン」で作成し、秘密は1度だけ表示されます。
ベース URL
https://deepwick.comcurl の例
# List your alerts with a session cookie curl https://deepwick.com/api/platform/alerts \ -H "Cookie: dw_session=…" # Same call with a personal access token curl https://deepwick.com/api/platform/alerts \ -H "Authorization: Bearer dw_at_…" -H "Content-Type: application/json"
バックテスト
/api/platform/backtestssessionRun a new backtest against the cached bars for a symbol+interval.
Request body
{
"name": "BTC SMA cross (test)",
"symbol": "BTCUSDT",
"interval": "1h",
"exchange": "binance",
"bars": 2000,
"source": "strategy(\"t\", initial_capital=10000)\nif (ta.crossover(ta.sma(close,10), ta.sma(close,30)))\n strategy.entry(\"L\", strategy.long)\nelse\n strategy.close(\"L\")",
"inputs": {}
}Response
{ "ok": true, "id": "<backtest-id>", "result": { "report": { … }, "tracks": […] } }/api/platform/backtests/[id]/replay?exchange=binancesessionConvert a stored backtest into a /replay session (bars + trades).
アラート
/api/platform/alertssessionList the user's alerts.
/api/platform/alertssessionCreate an alert.
Request body
{
"symbol": "BTCUSDT",
"exchange": "binance",
"interval": "1h",
"kind": "price",
"op": "above",
"price": 75000,
"channels": ["email", "webhook"]
}アイデア
/api/platform/ideassessionPublish a new idea.
Request body
{ "title": "Range trade memory", "body": "…", "tags": ["btc","memory"], "visibility": "unlisted" }ウォッチリスト
/api/platform/watchlists/importsessionPaste a CSV and create a new watchlist with the parsed rows.
Request body
{
"name": "Imported watchlist",
"items": [
{ "symbol": "BTCUSDT", "exchange": "binance", "note": "btc" },
{ "symbol": "ETHUSDT", "exchange": "binance", "note": null }
]
}リプレイ
/api/platform/replay?symbol=X&interval=Y&start=ISO&end=ISO&userId=ZnoneFetch a replay session. `userId` is only honoured for the owner.
/api/platform/replay/resumeapi-tokenRead the user's saved cursor for (symbol, interval).
/api/platform/replay/resumeapi-tokenUpsert the cursor. Body: { symbol, interval, exchange?, cursorBar, speed, start, end }.
/api/platform/replay/resume?symbol=X&interval=Yapi-tokenClear the saved cursor.
/api/platform/replay/bookmarks?symbol=X&interval=Yapi-tokenList bookmarks.
/api/platform/replay/bookmarks?bar=N&symbol=X&interval=Yapi-tokenUpsert a bookmark at bar N.
Webhook
/api/platform/webhookssessionRegister a webhook URL.
Request body
{ "name": "My receiver", "url": "https://example.com/dw", "events": ["backtest.reportReady"] }検索
/api/search?q=XnoneCross-content search. Anonymous gets public scripts + ideas; signed-in also gets their private backtests + watchlists.
サポート
/api/support/contactnoneOpen a support ticket. Body: { email, subject, body }.
/api/support/chatnoneKeyword-match a query against the support corpus. Body: { query }.
/api/errorsnoneReport a client-side error.
トークン
/api/platform/tokenssessionCreate a long-lived API token. Secret returned ONCE.
/api/platform/tokenssessionList tokens (no secrets).
/api/platform/tokens?id=XsessionRevoke a token.
Webhook
Receivers get a POST with a JSON body and an X-Deepwick-Signature: sha256=<hex> header. The hex is HMAC-SHA256 of the raw body keyed with the secret shown at webhook creation. The receiver verifies HMAC-SHA256(raw_body, secret).hex() == header.
event: "backtest.reportReady" delivered_at: "2026-01-05T12:00:00Z" data: backtestId: "abc-123" name: "BTC SMA cross" symbol: "BTCUSDT" interval: "1h" trades: 14 netProfit: 234.56 netProfitPct: 0.0234 winRate: 0.57 profitFactor: 1.83 maxDrawdownPct: 0.05 sharpe: 1.42
エラー報告
The dashboard layout mounts window.onerror + unhandledrejection listeners that POST to /api/errors. Same endpoint is open if you want to send errors from your own integrations.