Trade Nexus Platform API (1.0.0)

Download OpenAPI specification:

Canonical public API contract for Trade Nexus.

Rules:

  • This file is the source of truth for external consumers.
  • Lona and execution engines are internal provider integrations behind adapters.

Health

Health check

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "service": "trade-nexus-platform-api",
  • "timestamp": "2026-02-13T22:00:00Z"
}

Research

Analyze market conditions and return strategy ideas

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
assetClasses
required
Array of strings non-empty
Items Enum: "crypto" "stocks" "forex" "etf" "commodities"
capital
required
number >= 0
object

Responses

Request samples

Content type
application/json
{
  • "assetClasses": [
    ],
  • "capital": 25000,
  • "constraints": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "req-research-001",
  • "regimeSummary": "Risk-on momentum with elevated volatility clusters.",
  • "strategyIdeas": [
    ]
}

Analyze market with KB/data context and return strategy ideas

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
assetClasses
required
Array of strings non-empty
Items Enum: "crypto" "stocks" "forex" "etf" "commodities"
capital
required
number >= 0
object

Responses

Request samples

Content type
application/json
{
  • "assetClasses": [
    ],
  • "capital": 0,
  • "constraints": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "regimeSummary": "string",
  • "strategyIdeas": [
    ],
  • "knowledgeEvidence": [
    ],
  • "dataContextSummary": "string"
}

Knowledge

Search Knowledge Base entries

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
query
required
string non-empty
assets
Array of strings
limit
integer [ 1 .. 100 ]
Default: 10

Responses

Request samples

Content type
application/json
{
  • "query": "momentum sideways",
  • "assets": [
    ],
  • "limit": 5
}

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "items": [
    ]
}

List canonical knowledge patterns

Authorizations:
bearerAuthapiKeyAuth
query Parameters
type
string
asset
string
limit
integer [ 1 .. 100 ]
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "items": [
    ]
}

Get active market regime from Knowledge Base

Authorizations:
bearerAuthapiKeyAuth
path Parameters
asset
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "regime": {
    }
}

Conversations

Create conversation session across CLI, Web, and OpenClaw lanes

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
channel
required
string (ConversationChannel)
Enum: "cli" "web" "openclaw"
topic
string non-empty
object

Responses

Request samples

Content type
application/json
{
  • "channel": "openclaw",
  • "topic": "risk-aware deployment",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "req-conversation-session-001",
  • "session": {
    }
}

Get conversation session metadata

Authorizations:
bearerAuthapiKeyAuth
path Parameters
sessionId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-conversation-session-get-001",
  • "session": {
    }
}

Append conversation turn to a session

Authorizations:
bearerAuthapiKeyAuth
path Parameters
sessionId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
role
required
string (ConversationRole)
Enum: "user" "assistant" "system"
message
required
string non-empty
object

Responses

Request samples

Content type
application/json
{
  • "role": "user",
  • "message": "deploy my strategy after backtest",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "req-conversation-turn-001",
  • "sessionId": "conv-0001",
  • "turn": {
    }
}

Validation

List validation runs for authenticated identity scope

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-run-list-001",
  • "runs": [
    ]
}

Start validation run for strategy artifacts

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "strategyId": "strat-001",
  • "providerRefId": "lona-strategy-123",
  • "prompt": "Build zig-zag strategy for BTC 1h with trend filter",
  • "requestedIndicators": [
    ],
  • "datasetIds": [
    ],
  • "backtestReportRef": "blob://validation/candidate/backtest-report.json",
  • "policy": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-run-001",
  • "run": {
    }
}

Get validation run status

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-run-get-001",
  • "run": {
    }
}

Get validation artifact payload

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-artifact-001",
  • "artifactType": "validation_run",
  • "artifact": {
    }
}

Submit validation review decision

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "reviewerType": "agent",
  • "decision": "pass",
  • "summary": "Indicator fidelity and metric checks are within policy tolerance.",
  • "findings": [ ],
  • "comments": [ ]
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-001",
  • "runId": "valrun-20260217-0001",
  • "reviewAccepted": true
}

Create optional html/pdf validation render artifact

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
format
required
string (ValidationRenderFormat)
Enum: "html" "pdf"

Responses

Request samples

Content type
application/json
{
  • "format": "html"
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-render-001",
  • "render": {
    }
}

List validation runs for trader review web

Authorizations:
bearerAuthapiKeyAuth
query Parameters
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
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-list-001",
  • "items": [
    ],
  • "nextCursor": null
}

Get canonical JSON review artifact for a validation run

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-run-001",
  • "artifact": {
    }
}

Append review comment to a validation run

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
body
required
string non-empty
evidenceRefs
Array of strings

Responses

Request samples

Content type
application/json
{
  • "body": "Indicator fidelity is acceptable, but monitor drawdown during rollout.",
  • "evidenceRefs": [
    ]
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-comment-001",
  • "runId": "valrun-20260217-0001",
  • "commentAccepted": true,
  • "comment": {
    }
}

Submit approval or rejection decision for a validation run

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "action": "approve",
  • "decision": "conditional_pass",
  • "reason": "Approved with caution and tighter production risk limits.",
  • "evidenceRefs": [
    ]
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-decision-001",
  • "runId": "valrun-20260217-0001",
  • "decisionAccepted": true,
  • "decision": {
    }
}

Trigger optional html/pdf review render artifact generation

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
format
required
string (ValidationRenderFormat)
Enum: "html" "pdf"

Responses

Request samples

Content type
application/json
{
  • "format": "html"
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-render-001",
  • "render": {
    }
}

Get review render status and download metadata

Authorizations:
bearerAuthapiKeyAuth
path Parameters
runId
required
string
format
required
string (ValidationRenderFormat)
Enum: "html" "pdf"
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-validation-review-render-get-001",
  • "render": {
    }
}

Promote validation run as baseline

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
runId
required
string
name
required
string non-empty
notes
string

Responses

Request samples

Content type
application/json
{
  • "runId": "valrun-20260217-0001",
  • "name": "btc-1h-zigzag-baseline",
  • "notes": "Gate baseline approved for regression replay."
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-baseline-001",
  • "baseline": {
    }
}

Replay validation regression against stored baseline

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
baselineId
required
string
candidateRunId
required
string
object

Responses

Request samples

Content type
application/json
{
  • "baselineId": "valbase-001",
  • "candidateRunId": "valrun-20260217-0099"
}

Response samples

Content type
application/json
{
  • "requestId": "req-validation-replay-001",
  • "replay": {
    }
}

Strategies

List strategies

Authorizations:
bearerAuthapiKeyAuth
query Parameters
status
string (StrategyStatus)
Enum: "draft" "testing" "tested" "deployable" "archived" "failed"
cursor
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-strategy-list-001",
  • "items": [
    ],
  • "nextCursor": null
}

Create strategy from natural-language description

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
name
string
description
required
string >= 10 characters
provider
string
Default: "xai"
Value: "xai"

Responses

Request samples

Content type
application/json
{
  • "name": "Mean Reversion ETH",
  • "description": "Mean-reversion strategy for ETH using 20-period z-score bands.",
  • "provider": "xai"
}

Response samples

Content type
application/json
{
  • "requestId": "req-strategy-create-001",
  • "strategy": {
    }
}

Get strategy by id

Authorizations:
bearerAuthapiKeyAuth
path Parameters
strategyId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-strategy-get-001",
  • "strategy": {
    }
}

Update strategy metadata or status

Authorizations:
bearerAuthapiKeyAuth
path Parameters
strategyId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
name
string
description
string
status
string (StrategyStatus)
Enum: "draft" "testing" "tested" "deployable" "archived" "failed"
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "status": "deployable",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "requestId": "req-strategy-update-001",
  • "strategy": {
    }
}

Backtests

Start a backtest for a strategy

Authorizations:
bearerAuthapiKeyAuth
path Parameters
strategyId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
One of
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

Responses

Request samples

Content type
application/json
{
  • "dataIds": [
    ],
  • "startDate": "2025-01-01",
  • "endDate": "2025-12-31",
  • "initialCash": 100000
}

Response samples

Content type
application/json
{
  • "requestId": "req-backtest-create-001",
  • "backtest": {
    }
}

Get backtest status and report

Authorizations:
bearerAuthapiKeyAuth
path Parameters
backtestId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-backtest-get-001",
  • "backtest": {
    }
}

Deployments

List deployments

Authorizations:
bearerAuthapiKeyAuth
query Parameters
status
string (DeploymentStatus)
Enum: "queued" "running" "paused" "stopping" "stopped" "failed"
cursor
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-deployment-list-001",
  • "items": [
    ],
  • "nextCursor": null
}

Create a paper/live deployment

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
strategyId
required
string
mode
required
string (DeploymentMode)
Enum: "paper" "live"
capital
required
number >= 0

Responses

Request samples

Content type
application/json
{
  • "strategyId": "strat-001",
  • "mode": "paper",
  • "capital": 20000
}

Response samples

Content type
application/json
{
  • "requestId": "req-deployment-create-001",
  • "deployment": {
    }
}

Get deployment status

Authorizations:
bearerAuthapiKeyAuth
path Parameters
deploymentId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-deployment-get-001",
  • "deployment": {
    }
}

Stop a running deployment

Authorizations:
bearerAuthapiKeyAuth
path Parameters
deploymentId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
optional
reason
string

Responses

Request samples

Content type
application/json
{
  • "reason": "Risk policy drawdown threshold breached."
}

Response samples

Content type
application/json
{
  • "requestId": "req-deployment-stop-001",
  • "deployment": {
    }
}

Portfolios

List portfolios

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-portfolio-list-001",
  • "items": [
    ]
}

Get portfolio snapshot

Authorizations:
bearerAuthapiKeyAuth
path Parameters
portfolioId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-portfolio-get-001",
  • "portfolio": {
    }
}

Orders

List orders

Authorizations:
bearerAuthapiKeyAuth
query Parameters
status
string (OrderStatus)
Enum: "pending" "filled" "cancelled" "failed"
cursor
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-order-list-001",
  • "items": [
    ],
  • "nextCursor": null
}

Place manual order

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Idempotency-Key
required
string >= 8 characters

Required for idempotent write operations.

Request Body schema: application/json
required
One of
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

Responses

Request samples

Content type
application/json
{
  • "symbol": "BTCUSDT",
  • "side": "buy",
  • "type": "limit",
  • "quantity": 0.1,
  • "price": 64500,
  • "deploymentId": "dep-001"
}

Response samples

Content type
application/json
{
  • "requestId": "req-order-create-001",
  • "order": {
    }
}

Get order

Authorizations:
bearerAuthapiKeyAuth
path Parameters
orderId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-order-get-001",
  • "order": {
    }
}

Cancel order

Authorizations:
bearerAuthapiKeyAuth
path Parameters
orderId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-order-cancel-001",
  • "order": {
    }
}

Datasets

Initialize dataset upload session

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
filename
required
string non-empty
contentType
required
string non-empty
sizeBytes
required
integer >= 1

Responses

Request samples

Content type
application/json
{
  • "filename": "btc-1h-2025.csv",
  • "contentType": "text/csv",
  • "sizeBytes": 2048
}

Response samples

Content type
application/json
{}

Complete dataset upload session

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
optional
uploadToken
string

Responses

Request samples

Content type
application/json
{
  • "uploadToken": "upload-token-001"
}

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-complete-001",
  • "dataset": {
    }
}

Trigger dataset validation

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
optional
object

Responses

Request samples

Content type
application/json
{
  • "columnMapping": {
    }
}

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-validate-001",
  • "dataset": {
    }
}

Trigger dataset transform to candle format

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
frequency
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "frequency": "1h"
}

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-transform-001",
  • "dataset": {
    }
}

Publish dataset to Lona-compatible provider representation

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
optional
mode
string (DatasetPublishMode)
Enum: "explicit" "just_in_time"

Responses

Request samples

Content type
application/json
{
  • "mode": "explicit"
}

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-publish-001",
  • "dataset": {
    }
}

List datasets

Authorizations:
bearerAuthapiKeyAuth
query Parameters
cursor
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-list-001",
  • "items": [
    ],
  • "nextCursor": null
}

Get dataset metadata and lifecycle status

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-get-001",
  • "dataset": {
    }
}

Get dataset quality report

Authorizations:
bearerAuthapiKeyAuth
path Parameters
datasetId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "req-dataset-quality-001",
  • "qualityReport": {
    }
}

Data

Create backtest data export artifact

Authorizations:
bearerAuthapiKeyAuth
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Request Body schema: application/json
required
datasetIds
required
Array of strings non-empty
assetClasses
Array of strings

Responses

Request samples

Content type
application/json
{
  • "datasetIds": [
    ],
  • "assetClasses": [
    ]
}

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "export": {
    }
}

Get backtest data export status

Authorizations:
bearerAuthapiKeyAuth
path Parameters
exportId
required
string
header Parameters
X-Request-Id
string

Caller-provided request id for trace correlation.

Responses

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "export": {
    }
}