PUT /api/eureka/strategy-workspaces/:strategyId/python-source
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.
- Read the current source first. Use its revision, or 0 when no source exists. Source validation and size limits apply; saving source does not run it.
- Protected writes require an allowed Origin, the CSRF cookie and matching X-CSRF-Token header.
Request
| Parameter | Location | Type and requirement |
|---|---|---|
strategyId | 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
expectedRevision required · integerminimum: 0
source required · stringminLength: 1
provenance optional · "editor" | "import" | "template"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.
{
"expectedRevision": 0,
"source": "# Research draft\n",
"provenance": "editor"
}curl --include \
--request PUT \
'https://api.weavers.app/api/eureka/strategy-workspaces/11111111-1111-4111-8111-111111111111/python-source' \
--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
{
"source": {
"strategyId": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"source": "example",
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"provenance": "assistant",
"restoredFromRevision": null,
"createdAt": "2025-01-01T00:00:00.000Z"
},
"created": false
}View response model
source required · objectView source model
strategyId required · stringrevision required · numbersource required · stringsourceSha256 required · stringprovenance required · "assistant" | "editor" | "import" | "template" | "loomy" | "restore"restoredFromRevision required · null | numberView restoredFromRevision model
Variant 1: null
null
Variant 2: number
number
createdAt required · stringAdditional fields: JSON values.
created required · booleanAdditional 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
{
"error": "example",
"code": "example"
}View response model
error required · stringcode required · 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.