Scale Intelligence■ Docs
Docs / Reference / act: arm play

act: arm play.

A strategy, the play and its version, the goal it serves, and the share it is armed on with its holdout (a share under one makes the play an experiment) to the armed play with its class proposed from the kind's usual class and the rivals' coverage, and the demand cells it raised

Figure 1POST /v1/act/arm_playspecified
CALLERyour app or an agentholds the keyAPI GATEWAY/v1/act/arm_play4 headersCORE: ACTrung strategygrant actRECORDreads or writesCARD, 200body ArmPlayAnswerThe input is ArmPlayInput. Every response carries the contract's hash.flows forwardthe result
The caller sends ArmPlayInput to /v1/act/arm_play. The platform returns a card whose body is ArmPlayAnswer.
POST/v1/act/arm_play

Arm a play. The call needs the strategy rung under a token with the act grant, and it is served by the platform.

The route takes ArmPlayInput and returns a card whose body is ArmPlayAnswer.

Request body#

The request body is ArmPlayInput.

fieldtyperequirednote
playidyes
strategyidyes
brandidyes
armboolyes
sharesharenothe share of the admitted members the arming admits; absent keeps the play’s own
holdoutsharenothe share left alone at random, read as the effect’s comparison; absent keeps the play’s own

Response#

The route returns a card whose body is ArmPlayAnswer. 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.

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 act grant. The platform serves this route.

Example#

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

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

MCP tool#

The MCP tool si.act.arm_play 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/ArmPlayAnswer. The tool’s page describes it.

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

{
  "play": "…",
  "strategy": "…",
  "brand": "…",
  "arm": false
}
Without a key, this page shows the request only. The request body is ArmPlayInput, and the route returns a card whose body is ArmPlayAnswer.

Claims#

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