Download OpenAPI specification:
Canonical public API contract for Trade Nexus.
Rules:
| X-Request-Id | string Caller-provided request id for trace correlation. |
| assetClasses required | Array of strings non-empty Items Enum: "crypto" "stocks" "forex" "etf" "commodities" |
| capital required | number >= 0 |
object |
{- "assetClasses": [
- "crypto",
- "stocks"
], - "capital": 25000,
- "constraints": {
- "maxPositionPct": 25,
- "maxDrawdownPct": 12
}
}{- "requestId": "req-research-001",
- "regimeSummary": "Risk-on momentum with elevated volatility clusters.",
- "strategyIdeas": [
- {
- "name": "BTC Trend Follow",
- "assetClass": "crypto",
- "description": "Long breakouts with trailing stop.",
- "rationale": "Momentum persists while breadth remains positive."
}
]
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| assetClasses required | Array of strings non-empty Items Enum: "crypto" "stocks" "forex" "etf" "commodities" |
| capital required | number >= 0 |
object |
{- "assetClasses": [
- "crypto"
], - "capital": 0,
- "constraints": {
- "maxPositionPct": 100,
- "maxDrawdownPct": 100
}
}{- "requestId": "string",
- "regimeSummary": "string",
- "strategyIdeas": [
- {
- "name": "string",
- "assetClass": "string",
- "description": "string",
- "rationale": "string"
}
], - "knowledgeEvidence": [
- {
- "kind": "string",
- "id": "string",
- "title": "string",
- "summary": "string",
- "score": 0,
- "evidence": { }
}
], - "dataContextSummary": "string"
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| query required | string non-empty |
| assets | Array of strings |
| limit | integer [ 1 .. 100 ] Default: 10 |
{- "query": "momentum sideways",
- "assets": [
- "BTCUSDT"
], - "limit": 5
}{- "requestId": "string",
- "items": [
- {
- "kind": "string",
- "id": "string",
- "title": "string",
- "summary": "string",
- "score": 0,
- "evidence": { }
}
]
}| type | string |
| asset | string |
| limit | integer [ 1 .. 100 ] |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "string",
- "items": [
- {
- "id": "string",
- "name": "string",
- "type": "string",
- "description": "string",
- "suitableRegimes": [
- "string"
], - "assets": [
- "string"
], - "timeframes": [
- "string"
], - "confidenceScore": 0,
- "sourceRef": "string",
- "schemaVersion": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| asset required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "string",
- "regime": {
- "id": "string",
- "asset": "string",
- "regime": "string",
- "volatility": "string",
- "indicators": {
- "property1": 0,
- "property2": 0
}, - "startAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "notes": "string",
- "schemaVersion": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| channel required | string (ConversationChannel) Enum: "cli" "web" "openclaw" |
| topic | string non-empty |
object |
{- "channel": "openclaw",
- "topic": "risk-aware deployment",
- "metadata": {
- "source": "openclaw-skill"
}
}{- "requestId": "req-conversation-session-001",
- "session": {
- "id": "conv-0001",
- "channel": "openclaw",
- "status": "active",
- "topic": "risk-aware deployment",
- "metadata": {
- "source": "openclaw-skill"
}, - "createdAt": "2026-02-14T23:00:00Z",
- "updatedAt": "2026-02-14T23:00:00Z",
- "lastTurnAt": null
}
}| sessionId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-conversation-session-get-001",
- "session": {
- "id": "conv-0001",
- "channel": "openclaw",
- "status": "active",
- "topic": "risk-aware deployment",
- "metadata": {
- "source": "openclaw-skill"
}, - "createdAt": "2026-02-14T23:00:00Z",
- "updatedAt": "2026-02-14T23:01:00Z",
- "lastTurnAt": "2026-02-14T23:01:00Z"
}
}| sessionId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| role required | string (ConversationRole) Enum: "user" "assistant" "system" |
| message required | string non-empty |
object |
{- "role": "user",
- "message": "deploy my strategy after backtest",
- "metadata": {
- "source": "cli"
}
}{- "requestId": "req-conversation-turn-001",
- "sessionId": "conv-0001",
- "turn": {
- "id": "turn-0001",
- "sessionId": "conv-0001",
- "role": "user",
- "message": "deploy my strategy after backtest",
- "suggestions": [
- "Review latest backtest metrics and drawdown before deployment."
], - "metadata": {
- "source": "cli"
}, - "createdAt": "2026-02-14T23:01:00Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-run-list-001",
- "runs": [
- {
- "id": "valrun-20260217-0002",
- "status": "completed",
- "profile": "STANDARD",
- "schemaVersion": "validation-run.v1",
- "finalDecision": "pass",
- "createdAt": "2026-02-17T10:30:00Z",
- "updatedAt": "2026-02-17T10:35:00Z"
}, - {
- "id": "valrun-20260217-0001",
- "status": "queued",
- "profile": "STANDARD",
- "schemaVersion": "validation-run.v1",
- "finalDecision": "pending",
- "createdAt": "2026-02-17T10:20:00Z",
- "updatedAt": "2026-02-17T10:20:00Z"
}
]
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| strategyId required | string |
| providerRefId | string |
| prompt | string |
| requestedIndicators required | Array of strings non-empty |
| datasetIds required | Array of strings non-empty |
| backtestReportRef required | string |
required | object (ValidationPolicyProfile) |
{- "strategyId": "strat-001",
- "providerRefId": "lona-strategy-123",
- "prompt": "Build zig-zag strategy for BTC 1h with trend filter",
- "requestedIndicators": [
- "zigzag",
- "ema"
], - "datasetIds": [
- "dataset-btc-1h-2025"
], - "backtestReportRef": "blob://validation/candidate/backtest-report.json",
- "policy": {
- "profile": "STANDARD",
- "blockMergeOnFail": true,
- "blockReleaseOnFail": true,
- "blockMergeOnAgentFail": true,
- "blockReleaseOnAgentFail": false,
- "requireTraderReview": false,
- "hardFailOnMissingIndicators": true,
- "failClosedOnEvidenceUnavailable": true
}
}{- "requestId": "req-validation-run-001",
- "run": {
- "id": "valrun-20260217-0001",
- "status": "queued",
- "profile": "STANDARD",
- "schemaVersion": "validation-run.v1",
- "finalDecision": "pending",
- "createdAt": "2026-02-17T10:30:00Z",
- "updatedAt": "2026-02-17T10:30:00Z"
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-run-get-001",
- "run": {
- "id": "valrun-20260217-0001",
- "status": "completed",
- "profile": "STANDARD",
- "schemaVersion": "validation-run.v1",
- "finalDecision": "pass",
- "createdAt": "2026-02-17T10:30:00Z",
- "updatedAt": "2026-02-17T10:35:00Z"
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-artifact-001",
- "artifactType": "validation_run",
- "artifact": {
- "schemaVersion": "validation-run.v1",
- "runId": "valrun-20260217-0001",
- "createdAt": "2026-02-17T10:30:00Z",
- "requestId": "req-validation-run-001",
- "tenantId": "tenant-001",
- "userId": "user-001",
- "strategyRef": {
- "strategyId": "strat-001",
- "provider": "lona",
- "providerRefId": "lona-strategy-123"
}, - "inputs": {
- "prompt": "Build zig-zag strategy for BTC 1h with trend filter",
- "requestedIndicators": [
- "zigzag",
- "ema"
], - "datasetIds": [
- "dataset-btc-1h-2025"
], - "backtestReportRef": "blob://validation/valrun-20260217-0001/backtest-report.json"
}, - "outputs": {
- "strategyCodeRef": "blob://validation/valrun-20260217-0001/strategy.py",
- "backtestReportRef": "blob://validation/valrun-20260217-0001/backtest-report.json",
- "tradesRef": "blob://validation/valrun-20260217-0001/trades.json",
- "executionLogsRef": "blob://validation/valrun-20260217-0001/execution.log",
- "chartPayloadRef": "blob://validation/valrun-20260217-0001/chart-payload.json"
}, - "deterministicChecks": {
- "indicatorFidelity": {
- "status": "pass",
- "missingIndicators": [ ]
}, - "tradeCoherence": {
- "status": "pass",
- "violations": [ ]
}, - "metricConsistency": {
- "status": "pass",
- "driftPct": 0.8
}
}, - "agentReview": {
- "status": "pass",
- "summary": "No indicator/render drift detected.",
- "findings": [ ],
- "budget": {
- "profile": "STANDARD",
- "limits": {
- "maxRuntimeSeconds": 1.2,
- "maxTokens": 2400,
- "maxToolCalls": 4,
- "maxFindings": 6
}, - "usage": {
- "runtimeSeconds": 0.12,
- "tokensUsed": 512,
- "toolCallsUsed": 0
}, - "withinBudget": true,
- "breachReason": null
}
}, - "traderReview": {
- "required": false,
- "status": "not_requested",
- "comments": [ ]
}, - "policy": {
- "profile": "STANDARD",
- "blockMergeOnFail": true,
- "blockReleaseOnFail": true,
- "blockMergeOnAgentFail": true,
- "blockReleaseOnAgentFail": false,
- "requireTraderReview": false,
- "hardFailOnMissingIndicators": true,
- "failClosedOnEvidenceUnavailable": true
}, - "finalDecision": "pass"
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| reviewerType required | string Enum: "agent" "trader" |
| decision required | string (ValidationDecision) Enum: "pass" "conditional_pass" "fail" |
| summary | string |
Array of objects (ValidationReviewFinding) | |
| comments | Array of strings |
{- "reviewerType": "agent",
- "decision": "pass",
- "summary": "Indicator fidelity and metric checks are within policy tolerance.",
- "findings": [ ],
- "comments": [ ]
}{- "requestId": "req-validation-review-001",
- "runId": "valrun-20260217-0001",
- "reviewAccepted": true
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| format required | string (ValidationRenderFormat) Enum: "html" "pdf" |
{- "format": "html"
}{- "requestId": "req-validation-render-001",
- "render": {
- "runId": "valrun-20260217-0001",
- "format": "html",
- "status": "queued",
- "artifactRef": null
}
}| status | string (ValidationRunStatus) Enum: "queued" "running" "completed" "failed" |
| finalDecision | string (ValidationRunDecision) Enum: "pending" "pass" "conditional_pass" "fail" |
| cursor | string |
| limit | integer [ 1 .. 100 ] Default: 25 |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-review-list-001",
- "items": [
- {
- "id": "valrun-20260217-0001",
- "status": "completed",
- "profile": "STANDARD",
- "finalDecision": "conditional_pass",
- "traderReviewStatus": "requested",
- "commentCount": 1,
- "pendingDecision": true,
- "createdAt": "2026-02-17T10:30:00Z",
- "updatedAt": "2026-02-17T10:35:00Z"
}
], - "nextCursor": null
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-review-run-001",
- "artifact": {
- "schemaVersion": "validation-review.v1",
- "run": {
- "id": "valrun-20260217-0001",
- "status": "completed",
- "profile": "STANDARD",
- "schemaVersion": "validation-run.v1",
- "finalDecision": "conditional_pass",
- "createdAt": "2026-02-17T10:30:00Z",
- "updatedAt": "2026-02-17T10:40:00Z"
}, - "artifact": {
- "schemaVersion": "validation-run.v1",
- "runId": "valrun-20260217-0001",
- "createdAt": "2026-02-17T10:30:00Z",
- "requestId": "req-validation-run-001",
- "tenantId": "tenant-001",
- "userId": "user-001",
- "strategyRef": {
- "strategyId": "strat-001",
- "provider": "lona",
- "providerRefId": "lona-strategy-123"
}, - "inputs": {
- "prompt": "Build zig-zag strategy for BTC 1h with trend filter",
- "requestedIndicators": [
- "zigzag",
- "ema"
], - "datasetIds": [
- "dataset-btc-1h-2025"
], - "backtestReportRef": "blob://validation/valrun-20260217-0001/backtest-report.json"
}, - "outputs": {
- "strategyCodeRef": "blob://validation/valrun-20260217-0001/strategy.py",
- "backtestReportRef": "blob://validation/valrun-20260217-0001/backtest-report.json",
- "tradesRef": "blob://validation/valrun-20260217-0001/trades.json",
- "executionLogsRef": "blob://validation/valrun-20260217-0001/execution.log",
- "chartPayloadRef": "blob://validation/valrun-20260217-0001/chart-payload.json"
}, - "deterministicChecks": {
- "indicatorFidelity": {
- "status": "pass",
- "missingIndicators": [ ]
}, - "tradeCoherence": {
- "status": "pass",
- "violations": [ ]
}, - "metricConsistency": {
- "status": "pass",
- "driftPct": 0.8
}
}, - "agentReview": {
- "status": "pass",
- "summary": "No indicator/render drift detected.",
- "findings": [ ]
}, - "traderReview": {
- "required": true,
- "status": "requested",
- "comments": [ ]
}, - "policy": {
- "profile": "STANDARD",
- "blockMergeOnFail": true,
- "blockReleaseOnFail": true,
- "blockMergeOnAgentFail": true,
- "blockReleaseOnAgentFail": false,
- "requireTraderReview": true,
- "hardFailOnMissingIndicators": true,
- "failClosedOnEvidenceUnavailable": true
}, - "finalDecision": "conditional_pass"
}, - "comments": [
- {
- "id": "valcomment-001",
- "runId": "valrun-20260217-0001",
- "tenantId": "tenant-001",
- "userId": "user-001",
- "body": "Investigated drawdown drift; acceptable with tighter controls.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
], - "createdAt": "2026-02-17T10:36:00Z"
}
], - "decision": {
- "runId": "valrun-20260217-0001",
- "action": "approve",
- "decision": "conditional_pass",
- "reason": "Approved with caution and tighter production risk limits.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
], - "decidedByTenantId": "tenant-001",
- "decidedByUserId": "user-001",
- "createdAt": "2026-02-17T10:40:00Z"
}, - "renders": [
- {
- "runId": "valrun-20260217-0001",
- "format": "html",
- "status": "completed",
- "artifactRef": "blob://validation/valrun-20260217-0001/review.html",
- "checksumSha256": "5d41402abc4b2a76b9719d911017c592ad8846f8d1b522f11f2e6f64044f16f8",
- "expiresAt": "2026-02-17T11:40:00Z",
- "requestedAt": "2026-02-17T10:37:00Z",
- "updatedAt": "2026-02-17T10:38:00Z"
}
]
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| body required | string non-empty |
| evidenceRefs | Array of strings |
{- "body": "Indicator fidelity is acceptable, but monitor drawdown during rollout.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
]
}{- "requestId": "req-validation-review-comment-001",
- "runId": "valrun-20260217-0001",
- "commentAccepted": true,
- "comment": {
- "id": "valcomment-001",
- "runId": "valrun-20260217-0001",
- "tenantId": "tenant-001",
- "userId": "user-001",
- "body": "Indicator fidelity is acceptable, but monitor drawdown during rollout.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
], - "createdAt": "2026-02-17T10:36:00Z"
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| action required | string (ValidationReviewDecisionAction) Enum: "approve" "reject" |
| decision required | string (ValidationDecision) Enum: "pass" "conditional_pass" "fail" |
| reason required | string non-empty |
| evidenceRefs | Array of strings |
{- "action": "approve",
- "decision": "conditional_pass",
- "reason": "Approved with caution and tighter production risk limits.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
]
}{- "requestId": "req-validation-review-decision-001",
- "runId": "valrun-20260217-0001",
- "decisionAccepted": true,
- "decision": {
- "runId": "valrun-20260217-0001",
- "action": "approve",
- "decision": "conditional_pass",
- "reason": "Approved with caution and tighter production risk limits.",
- "evidenceRefs": [
- "blob://validation/valrun-20260217-0001/backtest-report.json"
], - "decidedByTenantId": "tenant-001",
- "decidedByUserId": "user-001",
- "createdAt": "2026-02-17T10:40:00Z"
}
}| runId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| format required | string (ValidationRenderFormat) Enum: "html" "pdf" |
{- "format": "html"
}{- "requestId": "req-validation-review-render-001",
- "render": {
- "runId": "valrun-20260217-0001",
- "format": "html",
- "status": "queued",
- "artifactRef": null,
- "downloadUrl": null,
- "checksumSha256": null,
- "expiresAt": null,
- "requestedAt": "2026-02-17T10:37:00Z",
- "updatedAt": "2026-02-17T10:37:00Z"
}
}| runId required | string |
| format required | string (ValidationRenderFormat) Enum: "html" "pdf" |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-validation-review-render-get-001",
- "render": {
- "runId": "valrun-20260217-0001",
- "format": "html",
- "status": "completed",
- "artifactRef": "blob://validation/valrun-20260217-0001/review.html",
- "checksumSha256": "5d41402abc4b2a76b9719d911017c592ad8846f8d1b522f11f2e6f64044f16f8",
- "expiresAt": "2026-02-17T11:40:00Z",
- "requestedAt": "2026-02-17T10:37:00Z",
- "updatedAt": "2026-02-17T10:38:00Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| runId required | string |
| name required | string non-empty |
| notes | string |
{- "runId": "valrun-20260217-0001",
- "name": "btc-1h-zigzag-baseline",
- "notes": "Gate baseline approved for regression replay."
}{- "requestId": "req-validation-baseline-001",
- "baseline": {
- "id": "valbase-001",
- "runId": "valrun-20260217-0001",
- "name": "btc-1h-zigzag-baseline",
- "profile": "STANDARD",
- "createdAt": "2026-02-17T10:40:00Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| baselineId required | string |
| candidateRunId required | string |
object |
{- "baselineId": "valbase-001",
- "candidateRunId": "valrun-20260217-0099"
}{- "requestId": "req-validation-replay-001",
- "replay": {
- "id": "valreplay-001",
- "baselineId": "valbase-001",
- "candidateRunId": "valrun-20260217-0099",
- "status": "completed",
- "decision": "pass",
- "mergeBlocked": false,
- "releaseBlocked": false,
- "mergeGateStatus": "pass",
- "releaseGateStatus": "pass",
- "baselineDecision": "pass",
- "candidateDecision": "pass",
- "metricDriftDeltaPct": 0.18,
- "metricDriftThresholdPct": 0.5,
- "thresholdBreached": false,
- "reasons": [ ],
- "summary": "Replay comparison passed without regression."
}
}| status | string (StrategyStatus) Enum: "draft" "testing" "tested" "deployable" "archived" "failed" |
| cursor | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-strategy-list-001",
- "items": [
- {
- "id": "strat-001",
- "name": "BTC Trend Follow",
- "description": "Breakout strategy for BTCUSD.",
- "status": "tested",
- "provider": "lona",
- "providerRefId": "lona-strategy-123",
- "tags": [
- "momentum",
- "crypto"
], - "createdAt": "2026-02-10T10:00:00Z",
- "updatedAt": "2026-02-13T19:00:00Z"
}
], - "nextCursor": null
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| name | string |
| description required | string >= 10 characters |
| provider | string Default: "xai" Value: "xai" |
{- "name": "Mean Reversion ETH",
- "description": "Mean-reversion strategy for ETH using 20-period z-score bands.",
- "provider": "xai"
}{- "requestId": "req-strategy-create-001",
- "strategy": {
- "id": "strat-002",
- "name": "Mean Reversion ETH",
- "description": "Mean-reversion strategy for ETH using z-score bands.",
- "status": "draft",
- "provider": "lona",
- "providerRefId": "lona-strategy-456",
- "tags": [
- "mean-reversion",
- "crypto"
], - "createdAt": "2026-02-13T21:20:00Z",
- "updatedAt": "2026-02-13T21:20:00Z"
}
}| strategyId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-strategy-get-001",
- "strategy": {
- "id": "strat-001",
- "name": "BTC Trend Follow",
- "description": "Breakout strategy for BTCUSD.",
- "status": "tested",
- "provider": "lona",
- "providerRefId": "lona-strategy-123",
- "tags": [
- "momentum",
- "crypto"
], - "createdAt": "2026-02-10T10:00:00Z",
- "updatedAt": "2026-02-13T19:00:00Z"
}
}| strategyId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| name | string |
| description | string |
| status | string (StrategyStatus) Enum: "draft" "testing" "tested" "deployable" "archived" "failed" |
| tags | Array of strings |
{- "status": "deployable",
- "tags": [
- "momentum",
- "approved"
]
}{- "requestId": "req-strategy-update-001",
- "strategy": {
- "id": "strat-001",
- "name": "BTC Trend Follow",
- "description": "Breakout strategy for BTCUSD.",
- "status": "deployable",
- "provider": "lona",
- "providerRefId": "lona-strategy-123",
- "tags": [
- "momentum",
- "approved"
], - "createdAt": "2026-02-10T10:00:00Z",
- "updatedAt": "2026-02-13T21:00:00Z"
}
}| strategyId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| dataIds required | Array of strings non-empty |
| datasetIds | Array of strings non-empty |
| startDate required | string <date> |
| endDate required | string <date> |
| initialCash | number >= 0 Default: 100000 |
{- "dataIds": [
- "dataset-btc-1h-2025"
], - "startDate": "2025-01-01",
- "endDate": "2025-12-31",
- "initialCash": 100000
}{- "requestId": "req-backtest-create-001",
- "backtest": {
- "id": "bt-001",
- "strategyId": "strat-001",
- "status": "queued",
- "startedAt": null,
- "completedAt": null,
- "metrics": { },
- "error": null,
- "createdAt": "2026-02-13T21:25:00Z"
}
}| backtestId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-backtest-get-001",
- "backtest": {
- "id": "bt-001",
- "strategyId": "strat-001",
- "status": "completed",
- "startedAt": "2026-02-13T21:25:30Z",
- "completedAt": "2026-02-13T21:27:00Z",
- "metrics": {
- "sharpeRatio": 1.48,
- "maxDrawdownPct": 9.2,
- "winRatePct": 57.3,
- "totalReturnPct": 24.5
}, - "error": null,
- "createdAt": "2026-02-13T21:25:00Z"
}
}| status | string (DeploymentStatus) Enum: "queued" "running" "paused" "stopping" "stopped" "failed" |
| cursor | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-deployment-list-001",
- "items": [
- {
- "id": "dep-001",
- "strategyId": "strat-001",
- "mode": "paper",
- "status": "running",
- "capital": 20000,
- "engine": "live-engine",
- "providerRefId": "live-abc",
- "latestPnl": 150.25,
- "createdAt": "2026-02-13T20:00:00Z",
- "updatedAt": "2026-02-13T21:10:00Z"
}
], - "nextCursor": null
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| strategyId required | string |
| mode required | string (DeploymentMode) Enum: "paper" "live" |
| capital required | number >= 0 |
{- "strategyId": "strat-001",
- "mode": "paper",
- "capital": 20000
}{- "requestId": "req-deployment-create-001",
- "deployment": {
- "id": "dep-001",
- "strategyId": "strat-001",
- "mode": "paper",
- "status": "queued",
- "capital": 20000,
- "engine": "live-engine",
- "providerRefId": "live-abc",
- "latestPnl": null,
- "createdAt": "2026-02-13T21:30:00Z",
- "updatedAt": "2026-02-13T21:30:00Z"
}
}| deploymentId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-deployment-get-001",
- "deployment": {
- "id": "dep-001",
- "strategyId": "strat-001",
- "mode": "paper",
- "status": "running",
- "capital": 20000,
- "engine": "live-engine",
- "providerRefId": "live-abc",
- "latestPnl": 150.25,
- "createdAt": "2026-02-13T20:00:00Z",
- "updatedAt": "2026-02-13T21:10:00Z"
}
}| deploymentId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| reason | string |
{- "reason": "Risk policy drawdown threshold breached."
}{- "requestId": "req-deployment-stop-001",
- "deployment": {
- "id": "dep-001",
- "strategyId": "strat-001",
- "mode": "paper",
- "status": "stopping",
- "capital": 20000,
- "engine": "live-engine",
- "providerRefId": "live-abc",
- "latestPnl": 120,
- "createdAt": "2026-02-13T20:00:00Z",
- "updatedAt": "2026-02-13T21:15:00Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-portfolio-list-001",
- "items": [
- {
- "id": "portfolio-paper-001",
- "mode": "paper",
- "cash": 12450.75,
- "totalValue": 20891.12,
- "pnlTotal": 891.12,
- "positions": [
- {
- "symbol": "BTCUSDT",
- "quantity": 0.3,
- "avgPrice": 62000,
- "currentPrice": 64800,
- "unrealizedPnl": 840
}
]
}
]
}| portfolioId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-portfolio-get-001",
- "portfolio": {
- "id": "portfolio-paper-001",
- "mode": "paper",
- "cash": 12450.75,
- "totalValue": 20891.12,
- "pnlTotal": 891.12,
- "positions": [
- {
- "symbol": "BTCUSDT",
- "quantity": 0.3,
- "avgPrice": 62000,
- "currentPrice": 64800,
- "unrealizedPnl": 840
}
]
}
}| status | string (OrderStatus) Enum: "pending" "filled" "cancelled" "failed" |
| cursor | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-order-list-001",
- "items": [
- {
- "id": "ord-001",
- "symbol": "BTCUSDT",
- "side": "buy",
- "type": "limit",
- "quantity": 0.1,
- "price": 64500,
- "status": "pending",
- "deploymentId": "dep-001",
- "createdAt": "2026-02-13T21:31:00Z"
}
], - "nextCursor": null
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| Idempotency-Key required | string >= 8 characters Required for idempotent write operations. |
| type required | string Enum: "market" "limit" |
| symbol required | string non-empty |
| side required | string (OrderSide) Enum: "buy" "sell" |
| quantity required | number >= 1e-8 |
| price | number >= 0 |
| deploymentId | string non-empty |
{- "symbol": "BTCUSDT",
- "side": "buy",
- "type": "limit",
- "quantity": 0.1,
- "price": 64500,
- "deploymentId": "dep-001"
}{- "requestId": "req-order-create-001",
- "order": {
- "id": "ord-001",
- "symbol": "BTCUSDT",
- "side": "buy",
- "type": "limit",
- "quantity": 0.1,
- "price": 64500,
- "status": "pending",
- "deploymentId": "dep-001",
- "createdAt": "2026-02-13T21:31:00Z"
}
}| orderId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-order-get-001",
- "order": {
- "id": "ord-001",
- "symbol": "BTCUSDT",
- "side": "buy",
- "type": "limit",
- "quantity": 0.1,
- "price": 64500,
- "status": "pending",
- "deploymentId": "dep-001",
- "createdAt": "2026-02-13T21:31:00Z"
}
}| orderId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-order-cancel-001",
- "order": {
- "id": "ord-001",
- "symbol": "BTCUSDT",
- "side": "buy",
- "type": "limit",
- "quantity": 0.1,
- "price": 64500,
- "status": "cancelled",
- "deploymentId": "dep-001",
- "createdAt": "2026-02-13T21:31:00Z"
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| filename required | string non-empty |
| contentType required | string non-empty |
| sizeBytes required | integer >= 1 |
{- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048
}{- "requestId": "req-dataset-init-001",
- "datasetId": "dataset-001",
- "status": "uploading"
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| uploadToken | string |
{- "uploadToken": "upload-token-001"
}{- "requestId": "req-dataset-complete-001",
- "dataset": {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "uploaded",
- "providerDataId": null,
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:01:00Z"
}
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
object |
{- "columnMapping": {
- "timestamp": "timestamp",
- "close": "close"
}
}{- "requestId": "req-dataset-validate-001",
- "dataset": {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "validated",
- "providerDataId": null,
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:02:00Z"
}
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| frequency required | string non-empty |
{- "frequency": "1h"
}{- "requestId": "req-dataset-transform-001",
- "dataset": {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "ready",
- "providerDataId": null,
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:03:00Z"
}
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
| mode | string (DatasetPublishMode) Enum: "explicit" "just_in_time" |
{- "mode": "explicit"
}{- "requestId": "req-dataset-publish-001",
- "dataset": {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "published_lona",
- "providerDataId": "lona-symbol-001",
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:04:00Z"
}
}| cursor | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-dataset-list-001",
- "items": [
- {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "published_lona",
- "providerDataId": "lona-symbol-001",
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:04:00Z"
}
], - "nextCursor": null
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-dataset-get-001",
- "dataset": {
- "id": "dataset-001",
- "filename": "btc-1h-2025.csv",
- "contentType": "text/csv",
- "sizeBytes": 2048,
- "status": "published_lona",
- "providerDataId": "lona-symbol-001",
- "createdAt": "2026-02-14T09:00:00Z",
- "updatedAt": "2026-02-14T09:04:00Z"
}
}| datasetId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "req-dataset-quality-001",
- "qualityReport": {
- "datasetId": "dataset-001",
- "status": "validated",
- "summary": "Dataset passed schema and timestamp-order checks.",
- "issues": [ ]
}
}| X-Request-Id | string Caller-provided request id for trace correlation. |
| datasetIds required | Array of strings non-empty |
| assetClasses | Array of strings |
{- "datasetIds": [
- "string"
], - "assetClasses": [
- "string"
]
}{- "requestId": "string",
- "export": {
- "id": "string",
- "status": "queued",
- "datasetIds": [
- "string"
], - "assetClasses": [
- "string"
], - "downloadUrl": "string",
- "lineage": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| exportId required | string |
| X-Request-Id | string Caller-provided request id for trace correlation. |
{- "requestId": "string",
- "export": {
- "id": "string",
- "status": "queued",
- "datasetIds": [
- "string"
], - "assetClasses": [
- "string"
], - "downloadUrl": "string",
- "lineage": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}