Scale Intelligence■ Docs
Docs / Reference / act: keep buyer

act: keep buyer.

The whole profile as it should stand next, with its predicate's tree given in full, its bindings and its ladder to the profile as its next version, ready, or not ready with the compiler's reason; the predicate kept by its hash

Figure 1POST /v1/act/keep_buyerspecified
CALLERyour app or an agentholds the keyAPI GATEWAY/v1/act/keep_buyer4 headersCORE: ACTrung brandgrant actRECORDreads or writesCARD, 200body KindOfBuyerThe input is KeepBuyerInput. Every response carries the contract's hash.flows forwardthe result
The caller sends KeepBuyerInput to /v1/act/keep_buyer. The platform returns a card whose body is KindOfBuyer.
POST/v1/act/keep_buyer

Keep a buyer profile. The call needs the brand rung under a token with the act grant, and it is served by the platform.

The route takes KeepBuyerInput and returns a card whose body is KindOfBuyer.

Request body#

The request body is KeepBuyerInput.

fieldtyperequirednote
kind_of_buyerKindOfBuyeryesthe whole profile, with the predicate’s tree given in full

Response#

The route returns a card whose body is KindOfBuyer. 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 brand rung and a token with the act grant. The platform serves this route.

Example#

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

Example
curl -X POST https://api.scaleintelligence.co/v1/act/keep_buyer \
  -H "Scale-Key: $SCALE_KEY" -H "Scale-Scope: tenant/<id>" \
  -H "content-type: application/json" \
  -d '{ "kind_of_buyer": { "name": "…", "sentence": "…", "predicate": { "tree": { "form": "group" }, "population": "…", "tree_hash": "…", "register_hash": "…", "compiler_version": "…", "comparator_versions": {} }, "bindings": [], "ladder": "…" } }'
import { client } from "@scale/sdk";
const answer = await client.act.keep_buyer({
    "kind_of_buyer": {
      "name": "…",
      "sentence": "…",
      "predicate": {
        "tree": {
          "form": "group"
        },
        "population": "…",
        "tree_hash": "…",
        "register_hash": "…",
        "compiler_version": "…",
        "comparator_versions": {}
      },
      "bindings": [],
      "ladder": "…"
    }
  });
// answer.body is a KindOfBuyer. answer.foot holds the basis, the scope and the time.
import requests
answer = requests.post("https://api.scaleintelligence.co/v1/act/keep_buyer",
    headers={"Scale-Key": KEY, "Scale-Scope": "tenant/<id>"},
    json={
      "kind_of_buyer": {
        "name": "…",
        "sentence": "…",
        "predicate": {
          "tree": {
            "form": "group"
          },
          "population": "…",
          "tree_hash": "…",
          "register_hash": "…",
          "compiler_version": "…",
          "comparator_versions": {}
        },
        "bindings": [],
        "ladder": "…"
      }
    }).json()
let answer: Card = client.post("https://api.scaleintelligence.co/v1/act/keep_buyer")
    .header("Scale-Key", key).header("Scale-Scope", "tenant/<id>")
    .json(&KeepBuyerInput { /* the fields of the page */ }).send().await?.json().await?;

MCP tool#

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

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

{
  "kind_of_buyer": {
    "name": "…",
    "sentence": "…",
    "predicate": {
      "tree": {
        "form": "group"
      },
      "population": "…",
      "tree_hash": "…",
      "register_hash": "…",
      "compiler_version": "…",
      "comparator_versions": {}
    },
    "bindings": [],
    "ladder": "…"
  }
}
Without a key, this page shows the request only. The request body is KeepBuyerInput, and the route returns a card whose body is KindOfBuyer.

Claims#

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