Scale Intelligence■ Docs
Docs / Reference / read: attributes

read: attributes.

A population and, where wanted, a window to the attributes its units carry, each with its plain name, the units that carry it, the value type read and up to three examples, most carried first, with the units read and in, and the partial answer when the budget ran out

Figure 1POST /v1/read/attributesspecified
CALLERyour app or an agentholds the keyAPI GATEWAY/v1/read/attributes4 headersCORE: READrung strategygrant readRECORDreads or writesCARD, 200body PopulationAttributesThe input is AttributesInput. Every response carries the contract's hash.flows forwardthe result
The caller sends AttributesInput to /v1/read/attributes. The platform returns a card whose body is PopulationAttributes.
POST/v1/read/attributes

The attributes of a population. The call needs the strategy rung under a token with the read grant, and it is served by the platform.

The route takes AttributesInput and returns a card whose body is PopulationAttributes.

Request body#

The request body is AttributesInput.

fieldtyperequirednote
populationPopulationyes
windowWindownothe units read; the whole record when absent

Response#

The route returns a card whose body is PopulationAttributes. 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 read grant. The platform serves this route.

Example#

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

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

MCP tool#

The MCP tool si.read.attributes takes the same input and returns the same card. The tool only reads data. An MCP host that renders cards draws this card from ui://scale-intelligence/cards/PopulationAttributes. The tool’s page describes it.

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

{
  "population": "…"
}
Without a key, this page shows the request only. The request body is AttributesInput, and the route returns a card whose body is PopulationAttributes.

Claims#

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