POST /api/optimisation/runs/:runId/validation-attempts/:attemptId/:action
Account required · HTTP API reference
All endpoints · Authentication and retries · Download OpenAPI
- Requires a signed-in account and permission to access this resource. Use identifiers returned by your own account's earlier requests.
- action selects explanation, revision or decision. explanation uses an empty body; revision first sends reason only plus X-Idempotency-Key to link the source run. Editing that revision sends reason, request and parentRevisionId. decision sends investigate, revise, observe or reject with a required reason of up to 2,000 characters. Read the attempt and its available state transitions before acting.
- Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.
Request
| Parameter | Location | Type and requirement |
|---|---|---|
runId | path | string · required |
attemptId | path | string · required |
action | path | string · required |
Origin | header | string · required An origin allowed by this deployment. |
X-CSRF-Token | header | string · required Must match the CSRF cookie issued to this browser. |
Body · application/json
Variant 1: object
Variant 2: object
reason required · stringminLength: 1. maxLength: 2000
Variant 3: object
reason required · stringminLength: 1. maxLength: 2000
request required · objectView request model
compute optional · objectView compute model
tier required · "included" | "accelerated"vcpus required · numbermemoryGiB required · numbermaxHours required · numbermaxTwigs required · numberexperimentName optional · stringcandidateSourceRunId optional · stringcandidateTitle optional · stringexperimentKey required · "tp_sl_two_stage"templateKey required · "tp_sl_two_stage_nsga2_v1"cluster required · "dev"parameters required · objectView parameters model
dataProvider required · "alpaca"publishBenchmarkSymbol required · "SPY"objectivePreset required · "balanced" | "return_focus" | "risk_focus"workerCount required · numberstartDate required · null | stringView startDate model
Variant 1: null
null
Variant 2: string
string
endDate required · null | stringView endDate model
Variant 1: null
null
Variant 2: string
string
equitiesOnly required · booleanexcludeEtfs required · booleanexcludeIndiaEtfs required · booleanstageATrials required · numberstageA2Mode required · "disabled" | "auto"stageA2Trials required · numberstageAToA2Threshold required · numberstageA2HorizonBars required · numberstageA2LabelMinUpPct required · numberstageA2PredictorFeaturesCsv required · stringstageBTrials required · numberstageBExecutionTimeframe required · "1d" | "4h" | "1h"stageBMaxHoldingBars required · numberlookbackYears required · numbertrainMonths required · numbervalMonths required · numberstepMonths required · numberpurgeDays required · numberholdoutMonths required · numberholdoutStartDate optional · null | stringView holdoutStartDate model
Variant 1: null
null
Variant 2: string
string
horizonBars required · numberlabelMinUpPct required · numberstageAFeatureTimeframe required · "1d"predictorFeaturesCsv required · stringstageADecisionThreshold required · numberentryFilters optional · null | objectView entryFilters model
Variant 1: null
null
Variant 2: object
schema_version required · 1bar required · "1d"condition required · objectView condition model
Variant 1: object
op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"left required · number | objectView left model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberVariant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"right required · number | objectView right model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberVariant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"Variant 2: object
op required · "and" | "or"conditions required · array of objectView conditions model
Array items:
op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"left required · number | objectView left model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberVariant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"right required · number | objectView right model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberVariant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"stageALearningRateMin required · numberstageALearningRateMax required · numberstageAL2Min required · numberstageAL2Max required · numberstageAEpochsMin required · numberstageAEpochsMax required · numberstageAPosWeightMin required · numberstageAPosWeightMax required · numbertpMin required · numbertpMax required · numberslMin required · numberslMax required · numberreserveCashPctMin required · numberreserveCashPctMax required · numberoptimizeProbThreshold required · booleanprobThresholdMin required · numberprobThresholdMax required · numberexecutionMode required · "notional" | "capital"executionBrokerId required · stringleverageMode required · "cash" | "reg_t"requestedLeverage required · 1 | 2marginInterestAnnualRatePct required · null | numberView marginInterestAnnualRatePct model
Variant 1: null
null
Variant 2: number
number
marginInterestDayCountBasis required · null | numberView marginInterestDayCountBasis model
Variant 1: null
null
Variant 2: number
number
marginInterestRateSource required · null | stringView marginInterestRateSource model
Variant 1: null
null
Variant 2: string
string
marginInterestBenchmarkId required · null | stringView marginInterestBenchmarkId model
Variant 1: null
null
Variant 2: string
string
marginInterestBenchmarkRatePct required · null | numberView marginInterestBenchmarkRatePct model
Variant 1: null
null
Variant 2: number
number
marginInterestBenchmarkRateSeries required · null | array of objectView marginInterestBenchmarkRateSeries model
Variant 1: null
null
Variant 2: array of object
Array items:
date required · stringrate_pct required · numbermarginInterestSpreadPct required · null | numberView marginInterestSpreadPct model
Variant 1: null
null
Variant 2: number
number
initialMarginRequirementPct required · null | numberView initialMarginRequirementPct model
Variant 1: null
null
Variant 2: number
number
maintenanceMarginRequirementPct required · null | numberView maintenanceMarginRequirementPct model
Variant 1: null
null
Variant 2: number
number
marketFeeProfile required · null | objectView marketFeeProfile model
Variant 1: null
null
Variant 2: object
Additional fields: JSON value.
initialCapital required · numberriskPerTradePct required · numbermaxPositionPctEquity required · numbermaxGrossExposurePctEquity required · numberallowFractionalShares required · booleanmaxTradesPerDay required · null | numberView maxTradesPerDay model
Variant 1: null
null
Variant 2: number
number
commissionBps required · numberslippageBps required · numberhalfSpreadBps required · numberborrowBpsPerBar required · numberminTrades required · numbermaxDrawdown required · numberdrawdownGateMetric required · "max_drawdown_p75" | "max_drawdown_stitched"maxSymbolConcentration required · numberminRiskAdjusted required · numbermaxTurnover required · null | numberView maxTurnover model
Variant 1: null
null
Variant 2: number
number
maxCvar95 required · null | numberView maxCvar95 model
Variant 1: null
null
Variant 2: number
number
lambdaReturn required · numberlambdaStability required · numberlambdaTail required · numberlambdaDrawdown required · numberlambdaConcentration required · numberlambdaTurnover required · numbernegativeRiskAdjustedPenalty required · numbersaveValidationTrades required · booleanstageASeedBase required · numberstageBSeedBase required · numberexecutionPlan required · objectView executionPlan model
mode required · "stage_a_only" | "stage_b_only" | "stage_a_to_b"stageASourceRunId required · null | stringView stageASourceRunId model
Variant 1: null
null
Variant 2: string
string
stageAStudyName optional · null | stringView stageAStudyName model
Variant 1: null
null
Variant 2: string
string
stageAComponent optional · null | objectView stageAComponent model
Variant 1: null
null
Variant 2: object
sourceKind required · "weavers_preset"componentType required · "stage_a" | "stage_b"componentKey required · stringVariant 3: object
sourceKind required · "notebook_component"componentType required · "stage_a" | "stage_b"componentKey required · stringstageBComponent optional · null | objectView stageBComponent model
Variant 1: null
null
Variant 2: object
sourceKind required · "weavers_preset"componentType required · "stage_a" | "stage_b"componentKey required · stringVariant 3: object
sourceKind required · "notebook_component"componentType required · "stage_a" | "stage_b"componentKey required · stringcanvas required · null | objectView canvas model
Variant 1: null
null
Variant 2: object
version required · 1nodes required · array of objectView nodes model
Array items:
id required · stringkind required · "stage_a_trainer" | "stage_b_entry_gate" | "stage_b_feasibility_gate" | "stage_b_optimizer"x required · numbery required · numberedges required · array of objectView edges model
Array items:
id required · stringsource required · stringtarget required · stringstageAUniverseSource optional · null | objectView stageAUniverseSource model
Variant 1: null
null
Variant 2: object
type required · "base"Variant 3: object
type required · "platform_niche"nicheId required · numbernicheKey required · stringVariant 4: object
type required · "ticker_pool"symbols required · array of stringView symbols model
Array items:
string
stageADataSelectors optional · null | objectView stageADataSelectors model
Variant 1: null
null
Variant 2: object
matchMode required · "all" | "any"selectors required · array of objectView selectors model
Array items:
Variant 1: object
type required · "channel"timeframe required · "1d" | "4h" | "1h"windowDays required · numberdirections required · array of "ascending" | "descending"View directions model
Array items:
"ascending" | "descending"
requireValid required · booleanalgoVersion optional · stringcharacteristics optional · objectView characteristics model
states optional · array of "new" | "continuing"View states model
Array items:
"new" | "continuing"
minR2 optional · numbermaxR2 optional · numberminBandPosition optional · numbermaxBandPosition optional · numberminBandWidthRatio optional · numbermaxBandWidthRatio optional · numberminNormalizedSlope optional · numbermaxNormalizedSlope optional · numberminConsecutiveRuns optional · numbermaxConsecutiveRuns optional · numbermissingDataPolicy required · "skip_and_log"Variant 2: object
type required · "regime"source required · "snapshot"regime required · "bull" | "bear" | "stable"minConfidence required · numbermissingDataPolicy required · "skip_and_log"seedConfig optional · null | objectView seedConfig model
Variant 1: null
null
Variant 2: object
sourceStrategyId required · stringsourceStrategyRegistryId required · numbersourceArtifactId required · numbersourceRunId required · null | stringView sourceRunId model
Variant 1: null
null
Variant 2: string
string
stageAConfig required · objectView stageAConfig model
Additional fields: JSON value.
finalExecutionConfig required · objectView finalExecutionConfig model
Additional fields: JSON value.
clientLaunch optional · null | objectView clientLaunch model
Variant 1: null
null
Variant 2: object
validationRevisionId optional · stringeurekaStrategyWorkspaceId optional · stringresearchQuestion optional · stringsubmittedAt required · stringtimezone required · null | stringView timezone model
Variant 1: null
null
Variant 2: string
string
localTimestamp required · stringnotebookStrategyRun optional · null | objectView notebookStrategyRun model
Variant 1: null
null
Variant 2: object
schema required · "weavers.notebook.strategy_run.v1"notebookKey required · stringnotebookSavedAt required · stringselectedCells required · array of objectView selectedCells model
Array items:
cellId required · stringsourceSha256 required · stringsourceBytes required · numbersourceUpdatedAt required · stringparentRevisionId required · stringVariant 4: object
decision required · "investigate" | "revise" | "observe" | "reject"reason required · stringminLength: 1. maxLength: 2000
Example
Examples use fictional data. Replace identifiers with resources you can access. For account requests, cookies.txt must contain your own session; set CSRF_TOKEN to the matching CSRF cookie value where required.
{}curl --include \
--request POST \
'https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/explanation' \
--cookie cookies.txt --cookie-jar cookies.txt \
--header 'Origin: https://weavers.app' \
--header "X-CSRF-Token: ${CSRF_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @request.jsonResponses
200 · Successful response.
application/json
{
"id": "1",
"runId": "1",
"versionId": "1",
"createdAt": "2025-01-01T00:00:00.000Z",
"status": "blocked",
"checks": [],
"evidence": {
"winnerTrial": null,
"dataProvider": "example",
"startDay": null,
"endDay": null,
"tradeCount": null,
"parameters": {},
"winner": {},
"holdoutEquityCurve": [],
"holdout": {},
"missing": []
},
"explanation": null,
"decisions": []
}View response model
Variant 1: object
id required · stringrunId required · stringversionId required · stringcreatedAt required · stringstatus required · "blocked" | "unavailable" | "checks_passed"checks required · array of objectView checks model
Array items:
id required · stringlabel required · stringstate required · "failed" | "unavailable" | "passed" | "not_run"actual optional · numberrequired optional · numbercomparator optional · "at_least" | "at_most"unit optional · "number" | "ratio"benchmark optional · numberbenchmarkSymbol optional · stringAdditional fields: JSON values.
evidence required · objectView evidence model
winnerTrial required · null | numberView winnerTrial model
Variant 1: null
null
Variant 2: number
number
dataProvider required · stringstartDay required · null | stringView startDay model
Variant 1: null
null
Variant 2: string
string
endDay required · null | stringView endDay model
Variant 1: null
null
Variant 2: string
string
tradeCount required · null | numberView tradeCount model
Variant 1: null
null
Variant 2: number
number
parameters required · objectView parameters model
Additional fields: JSON value.
winner required · objectView winner model
Additional fields: JSON value.
holdoutEquityCurve required · array of objectView holdoutEquityCurve model
Array items:
day required · stringequity required · numberdrawdown required · numberAdditional fields: JSON values.
holdout required · objectView holdout model
Additional fields: JSON value.
missing required · array of stringView missing model
Array items:
string
Additional fields: JSON values.
revisions optional · array of objectView revisions model
Array items:
id required · stringrunId required · stringreason required · stringcreatedAt required · stringattemptId required · stringsourceVersionId required · stringrevisionNumber required · numberparentRevisionId required · null | stringView parentRevisionId model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
explanationAvailable optional · false | trueexplanation required · null | objectView explanation model
Variant 1: null
null
Variant 2: object
text required · stringmodel required · stringgeneratedAt required · stringAdditional fields: JSON values.
decisions required · array of objectView decisions model
Array items:
decision required · "reject" | "investigate" | "revise" | "observe"reason required · stringcreatedAt required · stringAdditional fields: JSON values.
Additional fields: JSON values.
201 · Resource created.
application/json
{
"id": "1",
"attemptId": "1",
"runId": "1",
"sourceVersionId": "1",
"revisionNumber": 1,
"parentRevisionId": null,
"reason": "example",
"request": {
"experimentKey": "tp_sl_two_stage",
"templateKey": "tp_sl_two_stage_nsga2_v1",
"cluster": "dev",
"parameters": {
"dataProvider": "alpaca",
"publishBenchmarkSymbol": "SPY",
"objectivePreset": "balanced",
"workerCount": 1,
"startDate": null,
"endDate": null,
"equitiesOnly": false,
"excludeEtfs": false,
"excludeIndiaEtfs": false,
"stageATrials": 1,
"stageA2Mode": "disabled",
"stageA2Trials": 1,
"stageAToA2Threshold": 1,
"stageA2HorizonBars": 1,
"stageA2LabelMinUpPct": 1,
"stageA2PredictorFeaturesCsv": "example",
"stageBTrials": 1,
"stageBExecutionTimeframe": "1d",
"stageBMaxHoldingBars": 1,
"lookbackYears": 1,
"trainMonths": 1,
"valMonths": 1,
"stepMonths": 1,
"purgeDays": 1,
"holdoutMonths": 1,
"horizonBars": 1,
"labelMinUpPct": 1,
"stageAFeatureTimeframe": "1d",
"predictorFeaturesCsv": "example",
"stageADecisionThreshold": 1,
"stageALearningRateMin": 1,
"stageALearningRateMax": 1,
"stageAL2Min": 1,
"stageAL2Max": 1,
"stageAEpochsMin": 1,
"stageAEpochsMax": 1,
"stageAPosWeightMin": 1,
"stageAPosWeightMax": 1,
"tpMin": 1,
"tpMax": 1,
"slMin": 1,
"slMax": 1,
"reserveCashPctMin": 1,
"reserveCashPctMax": 1,
"optimizeProbThreshold": false,
"probThresholdMin": 1,
"probThresholdMax": 1,
"executionMode": "notional",
"executionBrokerId": "1",
"leverageMode": "cash",
"requestedLeverage": 1,
"marginInterestAnnualRatePct": null,
"marginInterestDayCountBasis": null,
"marginInterestRateSource": null,
"marginInterestBenchmarkId": null,
"marginInterestBenchmarkRatePct": null,
"marginInterestBenchmarkRateSeries": null,
"marginInterestSpreadPct": null,
"initialMarginRequirementPct": null,
"maintenanceMarginRequirementPct": null,
"marketFeeProfile": null,
"initialCapital": 1,
"riskPerTradePct": 1,
"maxPositionPctEquity": 1,
"maxGrossExposurePctEquity": 1,
"allowFractionalShares": false,
"maxTradesPerDay": null,
"commissionBps": 1,
"slippageBps": 1,
"halfSpreadBps": 1,
"borrowBpsPerBar": 1,
"minTrades": 1,
"maxDrawdown": 1,
"drawdownGateMetric": "max_drawdown_p75",
"maxSymbolConcentration": 1,
"minRiskAdjusted": 1,
"maxTurnover": null,
"maxCvar95": null,
"lambdaReturn": 1,
"lambdaStability": 1,
"lambdaTail": 1,
"lambdaDrawdown": 1,
"lambdaConcentration": 1,
"lambdaTurnover": 1,
"negativeRiskAdjustedPenalty": 1,
"saveValidationTrades": false,
"stageASeedBase": 1,
"stageBSeedBase": 1
},
"executionPlan": {
"mode": "stage_a_only",
"stageASourceRunId": null,
"canvas": null
}
},
"createdAt": "2025-01-01T00:00:00.000Z"
}View response model
id required · stringattemptId required · stringrunId required · stringsourceVersionId required · stringrevisionNumber required · numberparentRevisionId required · null | stringView parentRevisionId model
Variant 1: null
null
Variant 2: string
string
reason required · stringrequest required · objectView request model
compute optional · objectView compute model
tier required · "included" | "accelerated"vcpus required · numbermemoryGiB required · numbermaxHours required · numbermaxTwigs required · numberAdditional fields: JSON values.
experimentName optional · stringcandidateSourceRunId optional · stringcandidateTitle optional · stringexperimentKey required · "tp_sl_two_stage"templateKey required · "tp_sl_two_stage_nsga2_v1"cluster required · "dev"parameters required · objectView parameters model
dataProvider required · "alpaca"publishBenchmarkSymbol required · "SPY"objectivePreset required · "balanced" | "return_focus" | "risk_focus"workerCount required · numberstartDate required · null | stringView startDate model
Variant 1: null
null
Variant 2: string
string
endDate required · null | stringView endDate model
Variant 1: null
null
Variant 2: string
string
equitiesOnly required · booleanexcludeEtfs required · booleanexcludeIndiaEtfs required · booleanstageATrials required · numberstageA2Mode required · "disabled" | "auto"stageA2Trials required · numberstageAToA2Threshold required · numberstageA2HorizonBars required · numberstageA2LabelMinUpPct required · numberstageA2PredictorFeaturesCsv required · stringstageBTrials required · numberstageBExecutionTimeframe required · "1d" | "4h" | "1h"stageBMaxHoldingBars required · numberlookbackYears required · numbertrainMonths required · numbervalMonths required · numberstepMonths required · numberpurgeDays required · numberholdoutMonths required · numberholdoutStartDate optional · null | stringView holdoutStartDate model
Variant 1: null
null
Variant 2: string
string
horizonBars required · numberlabelMinUpPct required · numberstageAFeatureTimeframe required · "1d"predictorFeaturesCsv required · stringstageADecisionThreshold required · numberentryFilters optional · null | objectView entryFilters model
Variant 1: null
null
Variant 2: object
schema_version required · 1bar required · "1d"condition required · objectView condition model
Variant 1: object
op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"left required · number | objectView left model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Additional fields: JSON values.
Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberAdditional fields: JSON values.
Variant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"Additional fields: JSON values.
right required · number | objectView right model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Additional fields: JSON values.
Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberAdditional fields: JSON values.
Variant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"Additional fields: JSON values.
Additional fields: JSON values.
Variant 2: object
op required · "and" | "or"conditions required · array of objectView conditions model
Array items:
op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"left required · number | objectView left model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Additional fields: JSON values.
Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberAdditional fields: JSON values.
Variant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"Additional fields: JSON values.
right required · number | objectView right model
Variant 1: number
number
Variant 2: object
field required · "close" | "volume"Additional fields: JSON values.
Variant 3: object
indicator required · "sma" | "ema" | "rsi" | "atr"period required · numberAdditional fields: JSON values.
Variant 4: object
indicator required · "macd"fast required · numberslow required · numbersignal required · numbercomponent required · "line" | "signal" | "histogram"Additional fields: JSON values.
Additional fields: JSON values.
Additional fields: JSON values.
Additional fields: JSON values.
stageALearningRateMin required · numberstageALearningRateMax required · numberstageAL2Min required · numberstageAL2Max required · numberstageAEpochsMin required · numberstageAEpochsMax required · numberstageAPosWeightMin required · numberstageAPosWeightMax required · numbertpMin required · numbertpMax required · numberslMin required · numberslMax required · numberreserveCashPctMin required · numberreserveCashPctMax required · numberoptimizeProbThreshold required · booleanprobThresholdMin required · numberprobThresholdMax required · numberexecutionMode required · "notional" | "capital"executionBrokerId required · stringleverageMode required · "cash" | "reg_t"requestedLeverage required · 1 | 2marginInterestAnnualRatePct required · null | numberView marginInterestAnnualRatePct model
Variant 1: null
null
Variant 2: number
number
marginInterestDayCountBasis required · null | numberView marginInterestDayCountBasis model
Variant 1: null
null
Variant 2: number
number
marginInterestRateSource required · null | stringView marginInterestRateSource model
Variant 1: null
null
Variant 2: string
string
marginInterestBenchmarkId required · null | stringView marginInterestBenchmarkId model
Variant 1: null
null
Variant 2: string
string
marginInterestBenchmarkRatePct required · null | numberView marginInterestBenchmarkRatePct model
Variant 1: null
null
Variant 2: number
number
marginInterestBenchmarkRateSeries required · null | array of objectView marginInterestBenchmarkRateSeries model
Variant 1: null
null
Variant 2: array of object
Array items:
date required · stringrate_pct required · numberAdditional fields: JSON values.
marginInterestSpreadPct required · null | numberView marginInterestSpreadPct model
Variant 1: null
null
Variant 2: number
number
initialMarginRequirementPct required · null | numberView initialMarginRequirementPct model
Variant 1: null
null
Variant 2: number
number
maintenanceMarginRequirementPct required · null | numberView maintenanceMarginRequirementPct model
Variant 1: null
null
Variant 2: number
number
marketFeeProfile required · null | objectView marketFeeProfile model
Variant 1: null
null
Variant 2: object
Additional fields: JSON value.
initialCapital required · numberriskPerTradePct required · numbermaxPositionPctEquity required · numbermaxGrossExposurePctEquity required · numberallowFractionalShares required · booleanmaxTradesPerDay required · null | numberView maxTradesPerDay model
Variant 1: null
null
Variant 2: number
number
commissionBps required · numberslippageBps required · numberhalfSpreadBps required · numberborrowBpsPerBar required · numberminTrades required · numbermaxDrawdown required · numberdrawdownGateMetric required · "max_drawdown_p75" | "max_drawdown_stitched"maxSymbolConcentration required · numberminRiskAdjusted required · numbermaxTurnover required · null | numberView maxTurnover model
Variant 1: null
null
Variant 2: number
number
maxCvar95 required · null | numberView maxCvar95 model
Variant 1: null
null
Variant 2: number
number
lambdaReturn required · numberlambdaStability required · numberlambdaTail required · numberlambdaDrawdown required · numberlambdaConcentration required · numberlambdaTurnover required · numbernegativeRiskAdjustedPenalty required · numbersaveValidationTrades required · booleanstageASeedBase required · numberstageBSeedBase required · numberAdditional fields: JSON values.
executionPlan required · objectView executionPlan model
mode required · "stage_a_only" | "stage_b_only" | "stage_a_to_b"stageASourceRunId required · null | stringView stageASourceRunId model
Variant 1: null
null
Variant 2: string
string
stageAStudyName optional · null | stringView stageAStudyName model
Variant 1: null
null
Variant 2: string
string
stageAComponent optional · null | objectView stageAComponent model
Variant 1: null
null
Variant 2: object
sourceKind required · "weavers_preset"componentType required · "stage_a" | "stage_b"componentKey required · stringAdditional fields: JSON values.
Variant 3: object
sourceKind required · "notebook_component"componentType required · "stage_a" | "stage_b"componentKey required · stringAdditional fields: JSON values.
stageBComponent optional · null | objectView stageBComponent model
Variant 1: null
null
Variant 2: object
sourceKind required · "weavers_preset"componentType required · "stage_a" | "stage_b"componentKey required · stringAdditional fields: JSON values.
Variant 3: object
sourceKind required · "notebook_component"componentType required · "stage_a" | "stage_b"componentKey required · stringAdditional fields: JSON values.
canvas required · null | objectView canvas model
Variant 1: null
null
Variant 2: object
version required · 1nodes required · array of objectView nodes model
Array items:
id required · stringkind required · "stage_a_trainer" | "stage_b_entry_gate" | "stage_b_feasibility_gate" | "stage_b_optimizer"x required · numbery required · numberAdditional fields: JSON values.
edges required · array of objectView edges model
Array items:
id required · stringsource required · stringtarget required · stringAdditional fields: JSON values.
Additional fields: JSON values.
stageAUniverseSource optional · null | objectView stageAUniverseSource model
Variant 1: null
null
Variant 2: object
type required · "base"Additional fields: JSON values.
Variant 3: object
type required · "platform_niche"nicheId required · numbernicheKey required · stringAdditional fields: JSON values.
Variant 4: object
type required · "ticker_pool"symbols required · array of stringView symbols model
Array items:
string
Additional fields: JSON values.
stageADataSelectors optional · null | objectView stageADataSelectors model
Variant 1: null
null
Variant 2: object
matchMode required · "all" | "any"selectors required · array of objectView selectors model
Array items:
Variant 1: object
type required · "channel"timeframe required · "1d" | "4h" | "1h"windowDays required · numberdirections required · array of "ascending" | "descending"View directions model
Array items:
"ascending" | "descending"
requireValid required · booleanalgoVersion optional · stringcharacteristics optional · objectView characteristics model
states optional · array of "new" | "continuing"View states model
Array items:
"new" | "continuing"
minR2 optional · numbermaxR2 optional · numberminBandPosition optional · numbermaxBandPosition optional · numberminBandWidthRatio optional · numbermaxBandWidthRatio optional · numberminNormalizedSlope optional · numbermaxNormalizedSlope optional · numberminConsecutiveRuns optional · numbermaxConsecutiveRuns optional · numberAdditional fields: JSON values.
missingDataPolicy required · "skip_and_log"Additional fields: JSON values.
Variant 2: object
type required · "regime"source required · "snapshot"regime required · "bull" | "bear" | "stable"minConfidence required · numbermissingDataPolicy required · "skip_and_log"Additional fields: JSON values.
Additional fields: JSON values.
Additional fields: JSON values.
seedConfig optional · null | objectView seedConfig model
Variant 1: null
null
Variant 2: object
sourceStrategyId required · stringsourceStrategyRegistryId required · numbersourceArtifactId required · numbersourceRunId required · null | stringView sourceRunId model
Variant 1: null
null
Variant 2: string
string
stageAConfig required · objectView stageAConfig model
Additional fields: JSON value.
finalExecutionConfig required · objectView finalExecutionConfig model
Additional fields: JSON value.
Additional fields: JSON values.
clientLaunch optional · null | objectView clientLaunch model
Variant 1: null
null
Variant 2: object
validationRevisionId optional · stringeurekaStrategyWorkspaceId optional · stringresearchQuestion optional · stringsubmittedAt required · stringtimezone required · null | stringView timezone model
Variant 1: null
null
Variant 2: string
string
localTimestamp required · stringnotebookStrategyRun optional · null | objectView notebookStrategyRun model
Variant 1: null
null
Variant 2: object
schema required · "weavers.notebook.strategy_run.v1"notebookKey required · stringnotebookSavedAt required · stringselectedCells required · array of objectView selectedCells model
Array items:
cellId required · stringsourceSha256 required · stringsourceBytes required · numbersourceUpdatedAt required · stringAdditional fields: JSON values.
Additional fields: JSON values.
Additional fields: JSON values.
Additional fields: JSON values.
createdAt required · stringAdditional fields: JSON values.
400 · Invalid request.
application/json
{
"error": "example",
"code": "example"
}View response model
error required · stringcode required · stringAdditional fields: JSON values.
401 · Authentication is missing or invalid.
application/json
{}View response model
Error envelopes can include resource-specific details. Check the status before reading these fields.
error optional · stringcode optional · stringmessage optional · stringAdditional fields: JSON values.
403 · Permission, origin or CSRF check failed.
application/json
{}View response model
Error envelopes can include resource-specific details. Check the status before reading these fields.
error optional · stringcode optional · stringmessage optional · stringAdditional fields: JSON values.
404 · Resource or enabled capability not found.
application/json
{
"error": "example",
"code": "example"
}View response model
error required · stringcode required · stringAdditional fields: JSON values.
429 · Rate limit reached; honor Retry-After when supplied.
application/json
{}View response model
Error envelopes can include resource-specific details. Check the status before reading these fields.
error optional · stringcode optional · stringmessage optional · stringAdditional fields: JSON values.
500 · Server failure.
application/json
{}View response model
Error envelopes can include resource-specific details. Check the status before reading these fields.
error optional · stringcode optional · stringmessage optional · stringAdditional fields: JSON values.
default · Operation-specific error. Inspect error/code before deciding whether to retry.
application/json
{
"error": "example",
"code": "example"
}View response model
error required · stringcode required · stringAdditional fields: JSON values.