View Markdown

Migrating from v1/v2/v3

How every current endpoint maps onto the unified surface.

The current API grew as an engine×venue matrix: /v1 (legacy freqtrade), /v2 (freqtrade·Hyperliquid), /v3 (Nautilus·Polymarket/Lighter) — about 138 endpoints once aliases are counted. The unified surface is ~30. Old prefixes keep accepting their established operations until a separately announced sunset. New integrations should use the Unified contract and inspect its live capability state; compatibility acceptance does not prove that every Unified runtime or native signing family is operational.

The mapping#

Equivalent operations across the previous API surfaces are grouped together. For Superior Skills, these legacy paths are comparison-only: an agent must not fall back to them when the Unified API has no public equivalent.

OperationPrevious APIUnified APIChange
Health checkGET /healthGET /healthDirect
Request API accessPOST /auth/sign-in/magic-linkPOST /account/register, then POST /account/verifyReplaced by an OTP flow
List API keysGET /auth/api-keyGET /account/keysDirect
Create API keyPOST /auth/api-keyPOST /account/keysDirect
Delete API keyDELETE /auth/api-key/{id}DELETE /account/keys/{id}Direct
Rename API keyPATCH /auth/api-key/{id}—No public equivalent
Read account identityNo dedicated equivalentGET /accountNew account, plan, limits, and usage view
Read account usageNo dedicated equivalentGET /account/usageNew
List/read trading accountsGET /v2/account, GET /v3/accountGET /account/{venue} and GET /account/{venue}/{id}Explicit venue scope; IDs are Unified-owned
Create managed trading walletPOST /v2/account, POST /v3/accountNo public Unified API equivalentUnified API exposes existing venue accounts only
Rename trading accountPATCH /v2/account/{address}, PATCH /v3/account/{address}PATCH /account/{venue}/{id}Explicit venue and ownership scope
Read a trading-account walletVenue balance readsGET /account/{venue}/{id}/walletFull managed-wallet overview for the selected account
Read venue availabilityGET /v2/account/{address}/status/{exchange}, GET /v3/account/{address}/status/{exchange}GET /context/venues, GET /walletConsolidated capability and wallet-readiness checks
Set up a venue walletPOST /v3/account/{address}/hyperliquid, /polymarket, or /lighterPOST /wallet/venues/{venue}/setupExplicit $50 managed-wallet allocation; poll GET /wallet
List backtestsGET /v1/backtesting, GET /v2/backtestingGET /runtime/backtestsDirect
Create backtestPOST /v1/backtesting, POST /v2/backtesting, POST /v3/backtestPOST /runtime/backtestsCreation automatically queues the run
Get backtestVersioned GET by IDGET /runtime/backtests/{id}Direct
Read backtest status/resultVersioned /status and /result readsGET /runtime/backtests/{id}Embedded in the resource
Start backtestVersioned status update—Removed; creation queues the run
Update backtestPATCH /v2/backtesting/{id}—No public equivalent
Delete or cancel backtestVersioned DELETE by IDDELETE /runtime/backtests/{id}Direct
Read backtest logsVersioned GET logs by IDGET /runtime/backtests/{id}/logsDirect
Check dataset availabilityGET /v2/backtesting-data/hyperliquid, /binance, or /aerodromeGET /context/datasets, GET /runtime/backtests/datasetCatalog plus exact-market lookup
Scan intelligenceGET /v2/intelligence/scanGET /context/scanNew parameters and response schema
Read symbol setupGET /v2/intelligence/setup/{pair}GET /context/setup/{symbol}Renamed identifier and response model
Search marketsPOST /v3/markets/searchGET /context/markets?query=…&limit=…New integrations use only query and limit
Read leaderboardGET /v2/leaderboard-strategiesGET /context/leaderboardAvailable; reads the apps/api-owned strategy leaderboard
List/read tracked tradersGET /v2/copy-trading/traders, GET /v2/copy-trading/traders/{wallet}GET /context/traders, GET /context/traders/{wallet}Planned; currently 501 feature_not_available
Read candlesNo dedicated equivalentGET /context/candlesNew
Read fundingNo dedicated equivalentGET /context/fundingNew
List runtime frameworksNo dedicated equivalentGET /runtime/frameworksNew
List deploymentsVersioned deployment listsGET /runtime/deploymentsConsolidated
Create deploymentVersioned live and paper creationPOST /runtime/deploymentsframework, venue, and mode are request fields
Get deploymentVersioned GET by IDGET /runtime/deployments/{id}Direct
Update deployment metadataPATCH /v2/deployment/{id}PATCH /runtime/deployments/{id}Direct
Delete deploymentVersioned DELETE by IDDELETE /runtime/deployments/{id}Direct
Read deployment statusVersioned /status readsGET /runtime/deployments/{id}Embedded in the resource
Start or stop deploymentVersioned status operationsPUT /runtime/deployments/{id}/statusStandardized lifecycle action
Attach deployment credentialsVersioned POST credentials operationsPUT /runtime/deployments/{id}/credentialsMethod and contract changed
Read deployment credentialsGET /v2/deployment/{id}/credentials—No standalone secret read; safe metadata may appear on the deployment
Read deployment logsVersioned GET logs by IDGET /runtime/deployments/{id}/logsDirect
Read deployment metricsPaper profit and pod-proxy readsGET /runtime/deployments/{id}/metricsNormalized across frameworks
Paper deployment/v2/paper-deployment resource treePOST /runtime/deployments with mode: "paper"Mode becomes a field, not a separate resource
Deployment historyGET /v2/deployment-historyGET /runtime/deploymentsNo dedicated history resource
Exit all positionsVersioned deployment and portfolio /exit operations—No public equivalent
Deposit to a venueVersioned Hyperliquid, Polymarket, and Lighter deposit operationsPOST /wallet/venues/{venue}/setup after funding GET /walletExplicit, idempotent $50 minimum allocation; no extra venue or operation GET routes
Read deposit historyVenue reconciliation readsGET /wallet/depositsRead-only history, not a transfer action
Withdraw Hyperliquid fundsPOST /v3/portfolio/hyperliquid/withdraw plus v2 withdrawal authorization endpointsPOST /wallet/withdraw/otp then POST /wallet/withdrawEmail-login accounts only; two-step OTP-authorized, tracked withdrawal
Withdraw Lighter fundsPOST /v3/portfolio/lighter/withdraw—No public equivalent
Read withdrawal history/statusVenue reconciliation readsGET /wallet/withdrawals, GET /wallet/withdrawals/{id}Unified wallet withdrawals only
Hyperliquid one-time actionPOST /v2/authorize-and-send/hyperliquidPOST /runtime/executionsNative { venue, action } envelope; existing request shapes stay compatible
Polymarket one-time actionPOST /v3/authorize-and-send/polymarketPOST /runtime/executionsNative { venue, action } envelope; existing request shapes stay compatible
Lighter signed actionPOST /v3/authorize-and-send/lighter—No public equivalent
List/read execution recordsNo dedicated equivalentGET /runtime/executions, GET /runtime/executions/{id}New durable, sanitized records
Hyperliquid brackets/v2/bracket resource tree—No bracket-resource equivalent
Hyperliquid wallet transferPOST /v2/portfolio/hyperliquid/transfer—No public equivalent
Discover the HTTP contractVersioned OpenAPI documentsGET /openapi.jsonOne authoritative contract
Discover or call MCPNo dedicated equivalentGET /.well-known/mcp.json, POST /mcpNew

Existing account-owned legacy v2 Freqtrade backtests on Hyperliquid have a narrower compatibility boundary than newly created Unified API backtests. GET /runtime/backtests/{id} can read their persisted terminal finished or error record by known ID, including only the summary fields originally stored by the previous API; missing canonical result fields are not synthesized. DELETE /runtime/backtests/{id} can tombstone those terminal records without contacting the retired runtime workload. This path does not expand list behavior, and active queued/running status, logs, cancellation, and lifecycle ownership do not migrate through it.

Native execution migration#

Use a trade-scoped API key and Idempotency-Key:

json
{
  "venue": "polymarket",
  "action": {
    "type": "placeMarketOrder",
    "tokenID": "1234567890",
    "side": "BUY",
    "amount": "10",
    "orderType": "FOK"
  }
}

The public schema has no action-type allowlist. Execution still requires an operational provider family, an execution-ready managed wallet, and a supported native signing family. Unsupported families return native_action_unsupported; incomplete runtime configuration returns execution_provider_unavailable. Superior owns credentials, signing, nonce, timestamp, headers, method, path, and endpoint. Never copy signed or credential-bearing fields from a versioned request into the Unified action.

Market search for new integrations is:

http
GET /context/markets?query=BTC%20perpetual&limit=20

Deployment lifecycle changes use PUT /runtime/deployments/{id}/status; PATCH /runtime/deployments/{id} updates metadata only.

Slimmed from the public surface#

The remaining custody plumbing — /v2|v3/portfolio transfer/exit variants, /v2|v3/authorize-and-send/*, /v2/bracket, /v3/account/:address/{hyperliquid,polymarket,lighter} bootstrap, /v2/account/login-wallet — remains available only for compatibility or Terminal-owned flows. Do not adopt it in a new integration. The Unified surface replaces it with the managed trading wallet, BYOK, and the native execution envelope.

Timeline#

  1. Now — Unified ships alongside v1/v2/v3; established versioned operations remain compatible.
  2. Runtime rollout — each Unified capability reports whether its required backend is configured. One-time execution submits supported signing families when operational and otherwise fails closed.
  3. Deprecation — old prefixes marked deprecated in their OpenAPI spec with Sunset headers on responses; migration window announced with dates, per-endpoint.
  4. Sunset — old prefixes return 410 with a docs_url pointing at this page.

Existing st_live_ keys work on both surfaces throughout — migration never requires re-registering.