Scale Intelligence■ Docs
Docs / Reference / work: lay strategy

work: lay strategy.

Lays one strategy on one twin, with the bounds of the run to The call returns the simulation whose interventions are the strategy's armed plays, then the frame

Figure 1POST /v1/work/lay_strategyspecified
CALLERyour app or an agentholds the keyAPI GATEWAY/v1/work/lay_strategy4 headersCORE: WORKrung strategygrant workRECORDreads or writesTASK, 202body MarketSimulationThe input is LayStrategyInput. Every response carries the contract's hash.flows forwardthe result
The caller sends LayStrategyInput to /v1/work/lay_strategy. The platform returns a card whose body is MarketSimulation.
POST/v1/work/lay_strategya task, 202

Lay a strategy on a twin. The call needs the strategy rung under a token with the work grant, and it is served by the platform.

The route takes LayStrategyInput and returns a card whose body is MarketSimulation.

Request body#

The request body is LayStrategyInput.

fieldtyperequirednote
twinidyes
strategyidyes
horizondurationno
samplescountno
seedcountno

Response#

The route returns a card whose body is MarketSimulation. Every card ends with a foot that states the basis of each number, the scope of the call, and the time when the facts were true. This route runs as a long step and returns a task with status 202. POST /v1/work/status returns the task’s progress, and POST /v1/work/cancel stops the task.

Headers#

headerrequiredmeaning
Scale-Scopeyesthe scope the call runs in: tenant/, then /brand/, then /strategy/
Scale-As-True-Onnothe date the facts must have been true on; defaults to now
Scale-As-Known-Onnothe date the facts must have been known on; defaults to now
Scale-Keynofor a change, the key made from the input; a repeat under the same key returns the unit held and writes nothing

A caller needs the strategy rung and a token with the work grant. The platform serves this route.

Example#

The example sends the smallest body that LayStrategyInput allows. The build validates it against the schema of LayStrategyInput.

Example
curl -X POST https://api.scaleintelligence.co/v1/work/lay_strategy \
  -H "Scale-Key: $SCALE_KEY" -H "Scale-Scope: tenant/<id>" \
  -H "content-type: application/json" \
  -d '{ "twin": "…", "strategy": "…" }'
import { client } from "@scale/sdk";
const answer = await client.work.lay_strategy({
    "twin": "…",
    "strategy": "…"
  });
// answer.body is a MarketSimulation. answer.foot holds the basis, the scope and the time.
import requests
answer = requests.post("https://api.scaleintelligence.co/v1/work/lay_strategy",
    headers={"Scale-Key": KEY, "Scale-Scope": "tenant/<id>"},
    json={
      "twin": "…",
      "strategy": "…"
    }).json()
let answer: Card = client.post("https://api.scaleintelligence.co/v1/work/lay_strategy")
    .header("Scale-Key", key).header("Scale-Scope", "tenant/<id>")
    .json(&LayStrategyInput { /* the fields of the page */ }).send().await?.json().await?;

MCP tool#

The MCP tool si.work.lay_strategy takes the same input and returns the same card. The tool changes data and needs a grant. An MCP host that renders cards draws this card from ui://scale-intelligence/cards/MarketSimulation. The tool’s page describes it.

POST /v1/work/lay_strategy
Scale-Scope: …
Scale-As-True-On: …
Scale-As-Known-On: …
Scale-Key: …
content-type: application/json

{
  "twin": "…",
  "strategy": "…"
}
Without a key, this page shows the request only. The request body is LayStrategyInput, and the route returns a card whose body is MarketSimulation.

Claims#

claimstateroute or tool
The platform serves the route /v1/work/lay_strategy at contract 0476e35e6e275db5.target/v1/work/lay_strategy