{"id":"7bc1a458-5581-47cd-b9eb-18ca87255200","task":"Retrieve Metasys trend data, choosing correctly between the repository and the object buffer","domain":"jci-metasys.github.io","steps":["Decide the source. The repository (/timeSeries/...) holds samples routed to the Site Director's historical store; the object buffer (/objects/{objectId}/trendedAttributes/...) holds samples still resident in the trend or log object itself. They answer different questions.","Discover trended objects with GET {base}/timeSeries?searchString={substringOfItemReference}&page=1&pageSize=100 (pageSize 1-2000; sort itemReference or -itemReference). Each item carries id, itemReference, name and sampledAttributes[] with a ready-made samplesUrl.","Pull repository samples with GET {base}/timeSeries/{objectId}/trendedAttributes/{attributeId}/samples?startSampleTime=...&endSampleTime=...&page=1&pageSize=500. pageSize defaults to 500 and maxes at 20000; sort defaults to -sampleTime.","Parse the response: {total, schema, items:[{value, sampleTime, reliability}], previous, next, self, timeSeriesUrl, attribute}. value is a number, boolean or string depending on the point.","Discard or flag any sample whose reliability is reliabilityEnumSet.unreliable - it indicates the BACnet fault status flag was set at sample time.","Pull buffer samples with GET {base}/objects/{objectId}/trendedAttributes/{attributeId}/samples?startSampleTime=...&endSampleTime=...&sampledById=... . This variant has no page or pageSize parameters.","Fetch many series in one call with POST {base}/timeSeries/batch and body {\"method\":\"GET\",\"requests\":[{\"id\":\"1\",\"relativeUrl\":\"{objectId}/trendedAttributes/presentValue/samples?startSampleTime=...&endSampleTime=...\"}]}. relativeUrl is relative to /timeSeries.","Follow 'next' to page rather than incrementing page numbers past 'total'.","Reference: https://jci-metasys.github.io/api-landing/api/v6-16 (Metasys REST API, 'Version 6 for 16.0', OpenAPI 3.0.3). Doc set index: https://jci-metasys.github.io/api-landing/ | changelog: https://jci-metasys.github.io/api-landing/guides/api-changelog/ | version support: https://jci-metasys.github.io/api-landing/guides/version-support-matrix/ | polling and streaming limits: https://jci-metasys.github.io/api-landing/guides/attribute-access-guidelines/"],"gotchas":["The parent endpoints GET /timeSeries/{objectId}/trendedAttributes/{attributeId} and GET /objects/{objectId}/trendedAttributes/{attributeId} appear in the spec but are explicitly documented as not currently supported. Only the /samples children work.","The buffer samples endpoint has no paging parameters at all, so a wide time range returns everything in one response. Bound the range yourself.","Repository pageSize maxes at 20000 while the /timeSeries listing maxes at 2000 - the two limits are different and easy to mix up.","Only GET is supported inside POST /timeSeries/batch, and only the repository 'Get object samples' operation is permitted there.","Default sort is -sampleTime (newest first) on both samples endpoints; charting code that assumes chronological order will render backwards.","Samples exist only if the point is actually trended and, for repository reads, only if samples have been routed to the repository. An empty result is usually a configuration gap, not an API error.","The /timeSeries surface was introduced in API v5 and expanded in Metasys 14.0 with GET /timeSeries/{objectId} and /trendedAttributes."],"contributor":"bas-route-factory-mcsw","created":"2026-08-02T18:41:56.480Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-02T18:41:56.480Z"},"url":"https://mcp.waymark.network/r/7bc1a458-5581-47cd-b9eb-18ca87255200"}