/v1/read/summaryCalculate windowed summaries through model bindings
operation ID: post_v1_read_summary
Overview
Calculate windowed summaries through model bindings. Resolved reads turn model selectors into time-series results while preserving binding history, quality, gaps, and provenance.
When to use it
- Use it when an application needs to calculate windowed summaries through model bindings.
- Use it when a chart, report, analysis, or live view needs model-aware values rather than direct storage rows.
Quick example
Set the base URL and replace generated identifiers or credentials with values from your installation.
cURL
curl --request POST \
--url "$ORDINATE_URL/v1/read/summary" \
--header "Authorization: Bearer $ORDINATE_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
},
"start_ns": 0,
"end_ns": 0,
"fns": [
"string"
]
}'Expected output · 200
Window values/null reasons and provenance; suspect or partial data is recorded and flagged on 200
Example 200 output
{
"model_as_of_ns": 0,
"attributes": [
{
"attribute_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"windows": [
{
"start_ns": 0,
"end_ns": 0,
"values": {},
"nulls": {},
"provenance": {}
}
]
}
],
"unresolved": [
{
"asset_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"requested_name": "string",
"requested_id": "00000000-0000-4000-8000-000000000001",
"reason": "string"
}
],
"provenance": {}
}The cURL request sends the smallest contract-derived body and asks OrdinateDB to calculate windowed summaries through model bindings. The documented 200 response is window values/null reasons and provenance; suspect or partial data is recorded and flagged on 200.
How it works
The server resolves requested attributes through their time-bounded series bindings, reads the applicable data, then returns the requested representation.
Reference
- Required capability
- read
- Authorization scope
- each resolved result
Parameters
No parameters.
Request body
application/json
annotations_cluster_pxintegeroptional- minimum: 0
basisstringoptionalcompatstringoptionalcompat_optionsany ofoptionalArbitrary JSON value
any of
option 1
object with arbitrary properties
option 2
array
any itemsoption 3
stringoption 4
numberoption 5
integeroption 6
booleanoption 7
nullduration_inany ofoptionalArbitrary JSON value
any of
option 1
object with arbitrary properties
option 2
array
any itemsoption 3
stringoption 4
numberoption 5
integeroption 6
booleanoption 7
nullend_nsany ofrequiredany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
stringExact decimal i64 nanoseconds
pattern: ^-?[0-9]+$filterstringoptionalfnsarrayrequiredarray
stringinclude_annotationsbooleanoptionalinclude_episodesany ofoptionalArbitrary JSON value
any of
option 1
object with arbitrary properties
option 2
array
any itemsoption 3
stringoption 4
numberoption 5
integeroption 6
booleanoption 7
nullinclude_lineagebooleanoptionalresolveobjectrequired- unknown fields rejected
as_of_nsany ofoptionalany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
nullinclude_retiredbooleanoptionalrangeany ofoptionalany of
option 1
array · min 2 · max 2
item 1integerUTC Unix timestamp in nanoseconds
format: int64item 2integerUTC Unix timestamp in nanoseconds
format: int64option 2
nullscopeobjectrequired- unknown fields rejected
downstream_ofany ofoptionalany of
option 1
assetstringrequired- format: uuid
depthintegeroptional- minimum: 0
viaarrayrequiredarray
string
option 2
nulltemplateany ofoptionalany of
option 1
one of
option 1
contentstringrequired- format: uuid
kindstringrequired
option 2
contentstringrequiredkindstringrequired
option 2
nullunderany ofoptionalany of
option 1
one of
option 1
contentstringrequiredkindstringrequired
option 2
contentstringrequired- format: uuid
kindstringrequired
option 2
nullupstream_ofany ofoptionalany of
option 1
assetstringrequired- format: uuid
depthintegeroptional- minimum: 0
viaarrayrequiredarray
string
option 2
null
selectone ofrequiredone of
option 1
contentobjectrequired- unknown fields rejected
namestringrequired
kindstringrequired
option 2
contentarrayrequiredarray
stringformat: uuidkindstringrequired
option 3
kindstringrequired
start_nsany ofrequiredany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
stringExact decimal i64 nanoseconds
pattern: ^-?[0-9]+$timestamp_formatstringoptionalwindowany ofoptionalany of
option 1
WindowSpecone of
option 1
align_nsintegeroptionalEpoch-relative alignment offset in nanoseconds; defaults to zero.
format: int64kindany JSONrequiredlen_nsintegerrequiredPositive fixed-window length in nanoseconds.
format: int64
option 2
kindany JSONrequiredtimezonestringrequired`utc`, `asset`, or an IANA timezone name.
unitstringrequired
option 3
assetsobject | nulloptionalclipbooleanoptionalinclude_openbooleanoptionalkindany JSONrequiredrolestringoptionaltemplatesarray | nulloptionalarray
stringwherestring | nulloptional
option 2
null
Example request body
{
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
},
"start_ns": 0,
"end_ns": 0,
"fns": [
"string"
]
}Responses
200Window values/null reasons and provenance; suspect or partial data is recorded and flagged on 200
application/json
attributesarrayrequiredarray
attribute_idstringrequired- format: uuid
pathstringrequiredwindowsarrayrequiredarray
end_nsany ofrequiredany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
stringExact decimal i64 nanoseconds
pattern: ^-?[0-9]+$nullsobjectrequiredprovenanceProvenancerequiredProvenancechunks_prunedintegeroptional- minimum: 0
clock_suspectbooleanoptionalcompat_modestringoptionalcomputedstringoptionalcontains_unknown_arrivalbooleanoptionallineageLineageoptionalLineagerule_idstringrequired- format: uuid
rule_version_rangearrayrequired- min items: 2 · max items: 2
array · min 2 · max 2
integerformat: int64 windowsarrayrequiredarray
end_nsintegerrequired- format: int64
evaluated_at_nsintegerrequired- format: int64
rule_versionintegerrequired- format: int64
start_nsintegerrequired- format: int64
lossy_rangesarrayoptionalarray
LossyRangeend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
tagstringrequired
model_as_of_nsintegeroptional- format: int64
percent_goodnumberoptionalpercent_time_filterednumberoptionalprovisional_windowsarrayoptionalarray
RangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
quarantined_rangesarrayoptionalarray
RangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
tiers_touchedarrayoptionalarray
stringvalues: hot · warm · cold
window_resolvedRangeNsoptionalRangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
start_nsany ofrequiredany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
stringExact decimal i64 nanoseconds
pattern: ^-?[0-9]+$valuesobjectrequired
model_as_of_nsany ofrequiredany of
option 1
integerUTC Unix timestamp in nanoseconds
format: int64option 2
stringExact decimal i64 nanoseconds
pattern: ^-?[0-9]+$provenanceProvenancerequiredProvenancechunks_prunedintegeroptional- minimum: 0
clock_suspectbooleanoptionalcompat_modestringoptionalcomputedstringoptionalcontains_unknown_arrivalbooleanoptionallineageLineageoptionalLineagerule_idstringrequired- format: uuid
rule_version_rangearrayrequired- min items: 2 · max items: 2
array · min 2 · max 2
integerformat: int64 windowsarrayrequiredarray
end_nsintegerrequired- format: int64
evaluated_at_nsintegerrequired- format: int64
rule_versionintegerrequired- format: int64
start_nsintegerrequired- format: int64
lossy_rangesarrayoptionalarray
LossyRangeend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
tagstringrequired
model_as_of_nsintegeroptional- format: int64
percent_goodnumberoptionalpercent_time_filterednumberoptionalprovisional_windowsarrayoptionalarray
RangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
quarantined_rangesarrayoptionalarray
RangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
tiers_touchedarrayoptionalarray
stringvalues: hot · warm · cold
window_resolvedRangeNsoptionalRangeNsend_nsintegerrequired- format: int64
start_nsintegerrequired- format: int64
unresolvedarrayrequiredarray
asset_idany ofrequiredany of
option 1
stringformat: uuidoption 2
nullpathany ofrequiredany of
option 1
stringoption 2
nullreasonstringrequiredrequested_idany ofrequiredany of
option 1
stringformat: uuidoption 2
nullrequested_nameany ofrequiredany of
option 1
stringoption 2
null
Example 200 output
{
"model_as_of_ns": 0,
"attributes": [
{
"attribute_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"windows": [
{
"start_ns": 0,
"end_ns": 0,
"values": {},
"nulls": {},
"provenance": {}
}
]
}
],
"unresolved": [
{
"asset_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"requested_name": "string",
"requested_id": "00000000-0000-4000-8000-000000000001",
"reason": "string"
}
],
"provenance": {}
}400Invalid read request
application/json
ErrorEnvelope
codestringrequiredcorrelation_idstringrequired- format: uuid
detailsobjectoptionalerrorstringrequired
Example 400 output
{
"error": "string",
"code": "account-sealed",
"correlation_id": "00000000-0000-4000-8000-000000000001"
}401Authentication required
application/json
ErrorEnvelope
codestringrequiredcorrelation_idstringrequired- format: uuid
detailsobjectoptionalerrorstringrequired
Example 401 output
{
"error": "string",
"code": "account-sealed",
"correlation_id": "00000000-0000-4000-8000-000000000001"
}403Read capability is not granted
application/json
ErrorEnvelope
codestringrequiredcorrelation_idstringrequired- format: uuid
detailsobjectoptionalerrorstringrequired
Example 403 output
{
"error": "string",
"code": "account-sealed",
"correlation_id": "00000000-0000-4000-8000-000000000001"
}503Model database is not configured, unavailable, or render capacity is exhausted
application/json
ErrorEnvelope
codestringrequiredcorrelation_idstringrequired- format: uuid
detailsobjectoptionalerrorstringrequired
Example 503 output
{
"error": "string",
"code": "account-sealed",
"correlation_id": "00000000-0000-4000-8000-000000000001"
}Code examples
These examples are generated from the source contract. Replace the base URL, credentials, identifiers, and minimal generated values for your instance.
JavaScript
const ordinateUrl = "http://localhost:8080";
const token = "<bearer-token>";
const response = await fetch(`${ordinateUrl}/v1/read/summary`, {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
},
"start_ns": 0,
"end_ns": 0,
"fns": [
"string"
]
})
});
if (!response.ok) {
throw new Error(`OrdinateDB returned ${response.status}: ${await response.text()}`);
}
const data = await response.json();
console.log(data);Related topics
- Wire conventions — Understand the prerequisite concepts and transport behavior for this operation.
- REST endpoint index — Find other operations in Reads.