/v1/read/snapshotRead the current point through model bindings
operation ID: post_v1_read_snapshot
Overview
Read the current point 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 read the current point 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/snapshot" \
--header "Authorization: Bearer $ORDINATE_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
}
}'Expected output · 200
Bare per-attribute array; unbound attributes have snapshot:null
Example 200 output
[
{
"attribute_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"snapshot": {
"ts_ns": 0,
"value": 0,
"quality": 0
},
"provenance": {}
}
]The cURL request sends the smallest contract-derived body and asks OrdinateDB to read the current point through model bindings. The documented 200 response is bare per-attribute array; unbound attributes have snapshot:null.
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
include_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
Example request body
{
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
}
}Responses
200Bare per-attribute array; unbound attributes have snapshot:null
application/json
array
attribute_idstringrequired- format: uuid
pathstringrequiredprovenanceProvenancerequiredProvenancechunks_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
snapshotany ofrequiredany of
option 1
qualityintegerrequired- minimum: 0
ts_nsintegerrequiredUTC Unix timestamp in nanoseconds
format: int64valueany ofrequiredany of
option 1
numberoption 2
integerformat: int64option 3
booleanoption 4
stringoption 5
enum_setstringrequiredordinalintegerrequired- format: int64
option 2
null
Example 200 output
[
{
"attribute_id": "00000000-0000-4000-8000-000000000001",
"path": "string",
"snapshot": {
"ts_ns": 0,
"value": 0,
"quality": 0
},
"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/snapshot`, {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"resolve": {
"select": {
"kind": "attributes_named",
"content": {
"name": "string"
}
},
"scope": {}
}
})
});
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.