Skip to documentation
Weavers Docs

Pages and endpoints

Tab to navigate · Enter to openEsc to close

GET /api/optimisation/runs/:runId/validation-attempts/:attemptId/revisions/:revisionId

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.

Request

ParameterLocationType and requirement
runIdpathstring · required
attemptIdpathstring · required
revisionIdpathstring · required

No request body.

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 (POSIX shell)
curl --include \
  --request GET \
  'https://api.weavers.app/api/optimisation/runs/1/validation-attempts/1/revisions/1' \
  --cookie cookies.txt --cookie-jar cookies.txt

Responses

200 · Successful response.

application/json

200 example · synthetic data
{
  "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 · string
attemptId required · string
runId required · string
sourceVersionId required · string
revisionNumber required · number
parentRevisionId required · null | string
View parentRevisionId model
Variant 1: null

null

Variant 2: string

string

reason required · string
request required · object
View request model
compute optional · object
View compute model
tier required · "included" | "accelerated"
vcpus required · number
memoryGiB required · number
maxHours required · number
maxTwigs required · number

Additional fields: JSON values.

experimentName optional · string
candidateSourceRunId optional · string
candidateTitle optional · string
experimentKey required · "tp_sl_two_stage"
templateKey required · "tp_sl_two_stage_nsga2_v1"
cluster required · "dev"
parameters required · object
View parameters model
dataProvider required · "alpaca"
publishBenchmarkSymbol required · "SPY"
objectivePreset required · "balanced" | "return_focus" | "risk_focus"
workerCount required · number
startDate required · null | string
View startDate model
Variant 1: null

null

Variant 2: string

string

endDate required · null | string
View endDate model
Variant 1: null

null

Variant 2: string

string

equitiesOnly required · boolean
excludeEtfs required · boolean
excludeIndiaEtfs required · boolean
stageATrials required · number
stageA2Mode required · "disabled" | "auto"
stageA2Trials required · number
stageAToA2Threshold required · number
stageA2HorizonBars required · number
stageA2LabelMinUpPct required · number
stageA2PredictorFeaturesCsv required · string
stageBTrials required · number
stageBExecutionTimeframe required · "1d" | "4h" | "1h"
stageBMaxHoldingBars required · number
lookbackYears required · number
trainMonths required · number
valMonths required · number
stepMonths required · number
purgeDays required · number
holdoutMonths required · number
holdoutStartDate optional · null | string
View holdoutStartDate model
Variant 1: null

null

Variant 2: string

string

horizonBars required · number
labelMinUpPct required · number
stageAFeatureTimeframe required · "1d"
predictorFeaturesCsv required · string
stageADecisionThreshold required · number
entryFilters optional · null | object
View entryFilters model
Variant 1: null

null

Variant 2: object
schema_version required · 1
bar required · "1d"
condition required · object
View condition model
Variant 1: object
op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"
left required · number | object
View 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 · number

Additional fields: JSON values.

Variant 4: object
indicator required · "macd"
fast required · number
slow required · number
signal required · number
component required · "line" | "signal" | "histogram"

Additional fields: JSON values.

right required · number | object
View 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 · number

Additional fields: JSON values.

Variant 4: object
indicator required · "macd"
fast required · number
slow required · number
signal required · number
component required · "line" | "signal" | "histogram"

Additional fields: JSON values.

Additional fields: JSON values.

Variant 2: object
op required · "and" | "or"
conditions required · array of object
View conditions model

Array items:

op required · "cross_above" | "cross_below" | "gt" | "gte" | "lt" | "lte"
left required · number | object
View 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 · number

Additional fields: JSON values.

Variant 4: object
indicator required · "macd"
fast required · number
slow required · number
signal required · number
component required · "line" | "signal" | "histogram"

Additional fields: JSON values.

right required · number | object
View 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 · number

Additional fields: JSON values.

Variant 4: object
indicator required · "macd"
fast required · number
slow required · number
signal required · number
component required · "line" | "signal" | "histogram"

Additional fields: JSON values.

Additional fields: JSON values.

Additional fields: JSON values.

Additional fields: JSON values.

stageALearningRateMin required · number
stageALearningRateMax required · number
stageAL2Min required · number
stageAL2Max required · number
stageAEpochsMin required · number
stageAEpochsMax required · number
stageAPosWeightMin required · number
stageAPosWeightMax required · number
tpMin required · number
tpMax required · number
slMin required · number
slMax required · number
reserveCashPctMin required · number
reserveCashPctMax required · number
optimizeProbThreshold required · boolean
probThresholdMin required · number
probThresholdMax required · number
executionMode required · "notional" | "capital"
executionBrokerId required · string
leverageMode required · "cash" | "reg_t"
requestedLeverage required · 1 | 2
marginInterestAnnualRatePct required · null | number
View marginInterestAnnualRatePct model
Variant 1: null

null

Variant 2: number

number

marginInterestDayCountBasis required · null | number
View marginInterestDayCountBasis model
Variant 1: null

null

Variant 2: number

number

marginInterestRateSource required · null | string
View marginInterestRateSource model
Variant 1: null

null

Variant 2: string

string

marginInterestBenchmarkId required · null | string
View marginInterestBenchmarkId model
Variant 1: null

null

Variant 2: string

string

marginInterestBenchmarkRatePct required · null | number
View marginInterestBenchmarkRatePct model
Variant 1: null

null

Variant 2: number

number

marginInterestBenchmarkRateSeries required · null | array of object
View marginInterestBenchmarkRateSeries model
Variant 1: null

null

Variant 2: array of object

Array items:

date required · string
rate_pct required · number

Additional fields: JSON values.

marginInterestSpreadPct required · null | number
View marginInterestSpreadPct model
Variant 1: null

null

Variant 2: number

number

initialMarginRequirementPct required · null | number
View initialMarginRequirementPct model
Variant 1: null

null

Variant 2: number

number

maintenanceMarginRequirementPct required · null | number
View maintenanceMarginRequirementPct model
Variant 1: null

null

Variant 2: number

number

marketFeeProfile required · null | object
View marketFeeProfile model
Variant 1: null

null

Variant 2: object

Additional fields: JSON value.

initialCapital required · number
riskPerTradePct required · number
maxPositionPctEquity required · number
maxGrossExposurePctEquity required · number
allowFractionalShares required · boolean
maxTradesPerDay required · null | number
View maxTradesPerDay model
Variant 1: null

null

Variant 2: number

number

commissionBps required · number
slippageBps required · number
halfSpreadBps required · number
borrowBpsPerBar required · number
minTrades required · number
maxDrawdown required · number
drawdownGateMetric required · "max_drawdown_p75" | "max_drawdown_stitched"
maxSymbolConcentration required · number
minRiskAdjusted required · number
maxTurnover required · null | number
View maxTurnover model
Variant 1: null

null

Variant 2: number

number

maxCvar95 required · null | number
View maxCvar95 model
Variant 1: null

null

Variant 2: number

number

lambdaReturn required · number
lambdaStability required · number
lambdaTail required · number
lambdaDrawdown required · number
lambdaConcentration required · number
lambdaTurnover required · number
negativeRiskAdjustedPenalty required · number
saveValidationTrades required · boolean
stageASeedBase required · number
stageBSeedBase required · number

Additional fields: JSON values.

executionPlan required · object
View executionPlan model
mode required · "stage_a_only" | "stage_b_only" | "stage_a_to_b"
stageASourceRunId required · null | string
View stageASourceRunId model
Variant 1: null

null

Variant 2: string

string

stageAStudyName optional · null | string
View stageAStudyName model
Variant 1: null

null

Variant 2: string

string

stageAComponent optional · null | object
View stageAComponent model
Variant 1: null

null

Variant 2: object
sourceKind required · "weavers_preset"
componentType required · "stage_a" | "stage_b"
componentKey required · string

Additional fields: JSON values.

Variant 3: object
sourceKind required · "notebook_component"
componentType required · "stage_a" | "stage_b"
componentKey required · string

Additional fields: JSON values.

stageBComponent optional · null | object
View stageBComponent model
Variant 1: null

null

Variant 2: object
sourceKind required · "weavers_preset"
componentType required · "stage_a" | "stage_b"
componentKey required · string

Additional fields: JSON values.

Variant 3: object
sourceKind required · "notebook_component"
componentType required · "stage_a" | "stage_b"
componentKey required · string

Additional fields: JSON values.

canvas required · null | object
View canvas model
Variant 1: null

null

Variant 2: object
version required · 1
nodes required · array of object
View nodes model

Array items:

id required · string
kind required · "stage_a_trainer" | "stage_b_entry_gate" | "stage_b_feasibility_gate" | "stage_b_optimizer"
x required · number
y required · number

Additional fields: JSON values.

edges required · array of object
View edges model

Array items:

id required · string
source required · string
target required · string

Additional fields: JSON values.

Additional fields: JSON values.

stageAUniverseSource optional · null | object
View 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 · number
nicheKey required · string

Additional fields: JSON values.

Variant 4: object
type required · "ticker_pool"
symbols required · array of string
View symbols model

Array items:

string

Additional fields: JSON values.

stageADataSelectors optional · null | object
View stageADataSelectors model
Variant 1: null

null

Variant 2: object
matchMode required · "all" | "any"
selectors required · array of object
View selectors model

Array items:

Variant 1: object
type required · "channel"
timeframe required · "1d" | "4h" | "1h"
windowDays required · number
directions required · array of "ascending" | "descending"
View directions model

Array items:

"ascending" | "descending"

requireValid required · boolean
algoVersion optional · string
characteristics optional · object
View characteristics model
states optional · array of "new" | "continuing"
View states model

Array items:

"new" | "continuing"

minR2 optional · number
maxR2 optional · number
minBandPosition optional · number
maxBandPosition optional · number
minBandWidthRatio optional · number
maxBandWidthRatio optional · number
minNormalizedSlope optional · number
maxNormalizedSlope optional · number
minConsecutiveRuns optional · number
maxConsecutiveRuns optional · number

Additional 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 · number
missingDataPolicy required · "skip_and_log"

Additional fields: JSON values.

Additional fields: JSON values.

Additional fields: JSON values.

seedConfig optional · null | object
View seedConfig model
Variant 1: null

null

Variant 2: object
sourceStrategyId required · string
sourceStrategyRegistryId required · number
sourceArtifactId required · number
sourceRunId required · null | string
View sourceRunId model
Variant 1: null

null

Variant 2: string

string

stageAConfig required · object
View stageAConfig model

Additional fields: JSON value.

finalExecutionConfig required · object
View finalExecutionConfig model

Additional fields: JSON value.

Additional fields: JSON values.

clientLaunch optional · null | object
View clientLaunch model
Variant 1: null

null

Variant 2: object
validationRevisionId optional · string
eurekaStrategyWorkspaceId optional · string
researchQuestion optional · string
submittedAt required · string
timezone required · null | string
View timezone model
Variant 1: null

null

Variant 2: string

string

localTimestamp required · string
notebookStrategyRun optional · null | object
View notebookStrategyRun model
Variant 1: null

null

Variant 2: object
schema required · "weavers.notebook.strategy_run.v1"
notebookKey required · string
notebookSavedAt required · string
selectedCells required · array of object
View selectedCells model

Array items:

cellId required · string
sourceSha256 required · string
sourceBytes required · number
sourceUpdatedAt required · string

Additional fields: JSON values.

Additional fields: JSON values.

Additional fields: JSON values.

Additional fields: JSON values.

createdAt required · string

Additional fields: JSON values.

400 · Invalid request.

application/json

400 example · synthetic data
{}
View response model

Error envelopes can include resource-specific details. Check the status before reading these fields.

error optional · string
code optional · string
message optional · string

Additional fields: JSON values.

401 · Authentication is missing or invalid.

application/json

401 example · synthetic data
{}
View response model

Error envelopes can include resource-specific details. Check the status before reading these fields.

error optional · string
code optional · string
message optional · string

Additional fields: JSON values.

403 · Permission, origin or CSRF check failed.

application/json

403 example · synthetic data
{}
View response model

Error envelopes can include resource-specific details. Check the status before reading these fields.

error optional · string
code optional · string
message optional · string

Additional fields: JSON values.

429 · Rate limit reached; honor Retry-After when supplied.

application/json

429 example · synthetic data
{}
View response model

Error envelopes can include resource-specific details. Check the status before reading these fields.

error optional · string
code optional · string
message optional · string

Additional fields: JSON values.

500 · Server failure.

application/json

500 example · synthetic data
{}
View response model

Error envelopes can include resource-specific details. Check the status before reading these fields.

error optional · string
code optional · string
message optional · string

Additional fields: JSON values.

default · Operation-specific error. Inspect error/code before deciding whether to retry.

application/json

default example · synthetic data
{
  "error": "example",
  "code": "example"
}
View response model
error required · string
code required · string

Additional fields: JSON values.