ask: groups.
A scope, the two dates, and the resolution of the cut to the cluster response cards: each group with the share each layer of likeness contributed, its top communities, words and domains, its size and trend by month, and the proxies that placed its members
Read the groups. The call needs the strategy rung under a token with the ask grant, and it is served by either, by the size bound.
The route takes GroupsInput and returns a card whose body is ClusterCard.
Request body#
The request body is GroupsInput.
| field | type | required | note |
|---|---|---|---|
scope | Predicate | yes | |
resolution | share | yes |
Response#
The route returns a card whose body is ClusterCard. 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#
| header | required | meaning |
|---|---|---|
Scale-Scope | yes | the scope the call runs in: tenant/ |
Scale-As-True-On | no | the date the facts must have been true on; defaults to now |
Scale-As-Known-On | no | the date the facts must have been known on; defaults to now |
Scale-Key | no | for 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 ask grant. The platform or the desktop app serves this route.
Example#
The example sends the smallest body that GroupsInput allows. The build validates it against the schema of GroupsInput.
Example
curl -X POST https://api.scaleintelligence.co/v1/ask/groups \
-H "Scale-Key: $SCALE_KEY" -H "Scale-Scope: tenant/<id>" \
-H "content-type: application/json" \
-d '{ "scope": { "tree": { "form": "group" }, "population": "…", "tree_hash": "…", "register_hash": "…", "compiler_version": "…", "comparator_versions": {} }, "resolution": 0 }'
import { client } from "@scale/sdk";
const answer = await client.ask.groups({
"scope": {
"tree": {
"form": "group"
},
"population": "…",
"tree_hash": "…",
"register_hash": "…",
"compiler_version": "…",
"comparator_versions": {}
},
"resolution": 0
});
// answer.body is a [ClusterCard]. answer.foot holds the basis, the scope and the time.
import requests
answer = requests.post("https://api.scaleintelligence.co/v1/ask/groups",
headers={"Scale-Key": KEY, "Scale-Scope": "tenant/<id>"},
json={
"scope": {
"tree": {
"form": "group"
},
"population": "…",
"tree_hash": "…",
"register_hash": "…",
"compiler_version": "…",
"comparator_versions": {}
},
"resolution": 0
}).json()
let answer: Card = client.post("https://api.scaleintelligence.co/v1/ask/groups")
.header("Scale-Key", key).header("Scale-Scope", "tenant/<id>")
.json(&GroupsInput { /* the fields of the page */ }).send().await?.json().await?;
MCP tool#
The MCP tool si.ask.groups 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/ClusterCard. The tool’s page describes it.
POST /v1/ask/groups
Scale-Scope: …
Scale-As-True-On: …
Scale-As-Known-On: …
Scale-Key: …
content-type: application/json
{
"scope": {
"tree": {
"form": "group"
},
"population": "…",
"tree_hash": "…",
"register_hash": "…",
"compiler_version": "…",
"comparator_versions": {}
},
"resolution": 0
}Claims#
| claim | state | route or tool |
|---|---|---|
| The platform serves the route /v1/ask/groups at contract 0476e35e6e275db5. | target | /v1/ask/groups |