Skip to documentation
Weavers Docs

Pages and endpoints

Tab to navigate · Enter to openEsc to close

PUT /api/optimisation/runs/:runId/annotation

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.
  • Use revision 0 for the first annotation, otherwise the latest returned revision. All three validationPlan text fields are required; they are user-authored notes.
  • Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.

Request

ParameterLocationType and requirement
runIdpathstring · required
Originheaderstring · required

An origin allowed by this deployment.

X-CSRF-Tokenheaderstring · required

Must match the CSRF cookie issued to this browser.

Body · application/json

expectedRevision required · number
researchNotes required · string
validationPlan required · object
View validationPlan model
benchmark required · string
costsAndRegimes required · string
reviewNote required · string

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.

Save as request.json
{
  "expectedRevision": 0,
  "researchNotes": "Compare the held-out window with the training window.",
  "validationPlan": {
    "benchmark": "Compare with the selected benchmark.",
    "costsAndRegimes": "Review costs across market regimes.",
    "reviewNote": "Inspect the resulting evidence before deciding."
  }
}
cURL (POSIX shell)
curl --include \
  --request PUT \
  'https://api.weavers.app/api/optimisation/runs/1/annotation' \
  --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.json

Responses

200 · Successful response.

application/json

200 example · synthetic data
{
  "annotation": {
    "runId": "1",
    "researchNotes": "example",
    "validationPlan": {
      "benchmark": "example",
      "costsAndRegimes": "example",
      "reviewNote": "example"
    },
    "revision": 1,
    "updatedAt": null
  }
}
View response model
annotation required · object
View annotation model
runId required · string
researchNotes required · string
validationPlan required · object
View validationPlan model
benchmark required · string
costsAndRegimes required · string
reviewNote required · string

Additional fields: JSON values.

revision required · number
updatedAt required · null | string
View updatedAt model
Variant 1: null

null

Variant 2: string

string

Additional fields: JSON values.

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
{
  "error": "example",
  "code": "example"
}
View response model
error required · string
code required · 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.