POST /api/optimisation/runs/:runId/retarget
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.
- Inspect retarget-source first to check which modes are available. Supply 1–100 canonical symbols and an ordered date window. A frozen evaluation requires a compatible source artifact; retraining requires an owned workspace candidate. Poll the returned jobId.
- 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. |
Body · application/json
schema required · "weavers.strategy-retarget.v1"version required · 1mode required · "frozen_evaluation" | "retrain"symbols required · array of stringView symbols model
Array items:
string
startDate required · stringendDate required · stringExample
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.
{
"schema": "weavers.strategy-retarget.v1",
"version": 1,
"mode": "frozen_evaluation",
"symbols": [
"AAPL"
],
"startDate": "2025-01-01",
"endDate": "2025-06-30"
}curl --include \
--request POST \
'https://api.weavers.app/api/optimisation/runs/1/retarget' \
--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}" \
--header 'Content-Type: application/json' \
--data-binary @request.jsonResponses
200 · Successful response.
application/json
{
"job": {
"jobId": "1",
"mode": "frozen_evaluation",
"status": "running",
"source": {
"runId": "1",
"artifactId": null,
"artifactVersion": null,
"candidateId": null,
"sourceSymbols": [],
"sourceStartDate": null,
"sourceEndDate": null
},
"symbols": [],
"startDate": "2025-01-01",
"endDate": "2025-06-30",
"overlap": {
"sharedSymbols": [],
"sharesSourceSymbols": false,
"overlapsSourceDataWindow": false,
"message": "Explain the data used in this research."
},
"result": null,
"errorCode": null,
"errorMessage": null,
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z",
"startedAt": null,
"finishedAt": null
},
"idempotentReplay": false
}View response model
job required · objectView job model
jobId required · stringmode required · "frozen_evaluation" | "retrain"status required · "running" | "failed" | "cancelled" | "queued" | "completed" | "cancelling"source required · objectView source model
runId required · stringartifactId required · null | numberView artifactId model
Variant 1: null
null
Variant 2: number
number
artifactVersion required · null | stringView artifactVersion model
Variant 1: null
null
Variant 2: string
string
candidateId required · null | stringView candidateId model
Variant 1: null
null
Variant 2: string
string
sourceSymbols required · array of stringView sourceSymbols model
Array items:
string
sourceStartDate required · null | stringView sourceStartDate model
Variant 1: null
null
Variant 2: string
string
sourceEndDate required · null | stringView sourceEndDate model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
symbols required · array of stringView symbols model
Array items:
string
startDate required · stringendDate required · stringoverlap required · objectView overlap model
sharedSymbols required · array of stringView sharedSymbols model
Array items:
string
sharesSourceSymbols required · booleanoverlapsSourceDataWindow required · booleanmessage required · stringAdditional fields: JSON values.
result required · null | objectView result model
Variant 1: null
null
Variant 2: object
kind required · "frozen_evaluation"artifactId required · numberartifactVersion required · stringevaluatedSymbols required · array of stringView evaluatedSymbols model
Array items:
string
startDate required · stringendDate required · stringsignalCount required · numbertradeCount required · numbertotalReturn required · numbersharpe required · numbermaxDrawdown required · numbertrades required · array of objectView trades model
Array items:
symbol required · stringsignalDay required · stringentryDay required · stringexitDay required · stringentryPrice required · numberexitPrice required · numberexitReason required · stringnetReturn required · numbernetPnl required · numberAdditional fields: JSON values.
truncatedTradeCount required · numberAdditional fields: JSON values.
Variant 3: object
kind required · "retrain"runId required · stringAdditional fields: JSON values.
errorCode required · null | stringView errorCode model
Variant 1: null
null
Variant 2: string
string
errorMessage required · null | stringView errorMessage model
Variant 1: null
null
Variant 2: string
string
createdAt required · stringupdatedAt required · stringstartedAt required · null | stringView startedAt model
Variant 1: null
null
Variant 2: string
string
finishedAt required · null | stringView finishedAt model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
idempotentReplay required · booleanAdditional fields: JSON values.
202 · Work accepted. Poll the returned job or request identifier.
application/json
{
"job": {
"jobId": "1",
"mode": "frozen_evaluation",
"status": "running",
"source": {
"runId": "1",
"artifactId": null,
"artifactVersion": null,
"candidateId": null,
"sourceSymbols": [],
"sourceStartDate": null,
"sourceEndDate": null
},
"symbols": [],
"startDate": "2025-01-01",
"endDate": "2025-06-30",
"overlap": {
"sharedSymbols": [],
"sharesSourceSymbols": false,
"overlapsSourceDataWindow": false,
"message": "Explain the data used in this research."
},
"result": null,
"errorCode": null,
"errorMessage": null,
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z",
"startedAt": null,
"finishedAt": null
},
"idempotentReplay": false
}View response model
job required · objectView job model
jobId required · stringmode required · "frozen_evaluation" | "retrain"status required · "running" | "failed" | "cancelled" | "queued" | "completed" | "cancelling"source required · objectView source model
runId required · stringartifactId required · null | numberView artifactId model
Variant 1: null
null
Variant 2: number
number
artifactVersion required · null | stringView artifactVersion model
Variant 1: null
null
Variant 2: string
string
candidateId required · null | stringView candidateId model
Variant 1: null
null
Variant 2: string
string
sourceSymbols required · array of stringView sourceSymbols model
Array items:
string
sourceStartDate required · null | stringView sourceStartDate model
Variant 1: null
null
Variant 2: string
string
sourceEndDate required · null | stringView sourceEndDate model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
symbols required · array of stringView symbols model
Array items:
string
startDate required · stringendDate required · stringoverlap required · objectView overlap model
sharedSymbols required · array of stringView sharedSymbols model
Array items:
string
sharesSourceSymbols required · booleanoverlapsSourceDataWindow required · booleanmessage required · stringAdditional fields: JSON values.
result required · null | objectView result model
Variant 1: null
null
Variant 2: object
kind required · "frozen_evaluation"artifactId required · numberartifactVersion required · stringevaluatedSymbols required · array of stringView evaluatedSymbols model
Array items:
string
startDate required · stringendDate required · stringsignalCount required · numbertradeCount required · numbertotalReturn required · numbersharpe required · numbermaxDrawdown required · numbertrades required · array of objectView trades model
Array items:
symbol required · stringsignalDay required · stringentryDay required · stringexitDay required · stringentryPrice required · numberexitPrice required · numberexitReason required · stringnetReturn required · numbernetPnl required · numberAdditional fields: JSON values.
truncatedTradeCount required · numberAdditional fields: JSON values.
Variant 3: object
kind required · "retrain"runId required · stringAdditional fields: JSON values.
errorCode required · null | stringView errorCode model
Variant 1: null
null
Variant 2: string
string
errorMessage required · null | stringView errorMessage model
Variant 1: null
null
Variant 2: string
string
createdAt required · stringupdatedAt required · stringstartedAt required · null | stringView startedAt model
Variant 1: null
null
Variant 2: string
string
finishedAt required · null | stringView finishedAt model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
idempotentReplay required · booleanAdditional fields: JSON values.
400 · Invalid request.
application/json
{
"code": "example",
"error": "example"
}View response model
Variant 1: object
code required · stringerror 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
{
"code": "example",
"error": "example"
}View response model
code required · stringerror required · stringAdditional fields: JSON values.
default · Operation-specific error. Inspect error/code before deciding whether to retry.
application/json
{
"code": "example",
"error": "example"
}View response model
code required · stringerror required · stringAdditional fields: JSON values.