POST /api/optimisation/runs/:runId/validation-attempts
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.
- 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 |
x-idempotency-key | header | string · required Pattern: |
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. |
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 --include \
--request POST \
'https://api.weavers.app/api/optimisation/runs/1/validation-attempts' \
--cookie cookies.txt --cookie-jar cookies.txt \
--header 'x-idempotency-key: example-request-0001' \
--header 'Origin: https://weavers.app' \
--header "X-CSRF-Token: ${CSRF_TOKEN}"Responses
201 · Resource created.
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
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.
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.
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.