aggregate
Counts over the registry, answered on the server: organizations by industry, region, size, model, kind, claimed, layer or primitive (biggest first), optionally with a metric's known count, median and mean per group; or, with only metric, that metric's distribution (quantiles and ten buckets). Scope with industry, region, kind, size, model. Public.
Parameters
- byenumoptional
Group by this; omit (with metric) for the metric's distribution
industryregionsizemodelkindclaimedlayerprimitive - metricenumoptional
A rankings dimension (0-1 score) or a figure (revenue, employees, funding)
energyeconomictemporalhumanpowerinformationentropytechnicalscalespatialrevenueemployeesfunding - industrystringoptional
Taxonomy key (sector, industry or segment); includes everything under it
max 80 chars - regionstringoptional
Region word, e.g. US or Texas
max 120 chars - kindstringoptional
Organization kind, e.g. company, nonprofit, government
max 40 chars - sizestringoptional
Size band, e.g. 51-200
max 40 chars - modelstringoptional
Business model key
max 40 chars - fieldsstringoptional
Keys to keep per item, comma-separated; aliases values, sources, counts, confidence
max 300 chars - limitnumberoptional
Items per response, 1-200 (the budget may stop earlier)
≥ 1≤ 200 - cursorstringoptional
next_cursor from the previous response
max 2000 chars - viewenumoptional
compact (default), full (every field) or v1 (the old shape, unpaged, refused over 64 KB)
compactfullv1 - budgetnumberoptional
Token budget, 200-8000 (default 2000, 6000 for full)
≥ 200≤ 8000
Example call
Agents call tools by name; you rarely write this by hand. It is here so you can test the server from a shell or your own code.
{
"name": "aggregate",
"arguments": {
"by": "region",
"industry": "staffing",
"limit": 3
}
}Response
The result is one text content block holding this JSON (abbreviated here). Errors come back with isError: true and a message such as Error 401: … or Invalid input: ….
{
"scope": {
"industry": "staffing"
},
"by": "region",
"total": 412,
"groups": 31,
"cols": [
"key",
"label",
"n"
],
"rows": [
[
"US",
"US",
298
],
[
"UK",
"UK",
41
],
[
"Canada",
"Canada",
17
]
],
"truncated": true,
"next_cursor": "eyJrIjpb…",
"hint": "More groups: call aggregate with cursor=<next_cursor>.",
"tokens": 90
}Over REST
The same call without MCP: GET/api/v1/aggregate