# Johnson Controls time series API

**Canonical:** https://apis.io/apis/johnson-controls/johnson-controls-time-series-api/  
**Provider:** Johnson Controls — https://apis.io/providers/johnson-controls/  
**Base URL:** https://{hostname}/api/v6  
**Documentation:** https://jci-metasys.github.io/api-landing/

Johnson Controls time series API is one of 11 APIs that [Johnson Controls](https://apis.io/providers/johnson-controls/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. This API exposes 6 JSON Schema definitions. Tagged areas include Time Series. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, a getting-started guide, a changelog, and 6 JSON Schemas.

This section describes the operations you can perform on time series sample data. ### Origin of Time Series data The Metasys system has two locations from which time series samples can be retrieved. The first is from the _trend_ or _log_ object, itself. Each object on the Metasys site whose responsibility is to generate samples will have its own _buffer_ to store them. When samples are retrieved from the `objects` endpoints, they will be retrieved from their respective buffers. Time series operations that work with a buffer will include "(buffer)" in their summary. The second location is from the _repository_. As samples are collected in the _trend_ or _log_ objects themselves, those objects (if configured and enabled) have the ability to forward that information to a _repository_. The _repository_ is the location on the LAN (Local Area Network) that can receive and store historical data from one to many Metasys sources. Samples retrieved from the `timeSeries` endpoint are retrieved from the particular Metasys device's repository. Time series operations that work with the repository will include "(repository)" in their summary. ## Subscription Streaming Events Clients may subscribe to Objects and Network Devices streaming events. A subscription is established by providing a `METASYS-SUBSCRIBE` header on a `GET` operation of the `samples` resource under either the `objects` resource paths. ### Events The following events (with accompanying examples) are available for samples: - `timeSeries.subscription.established` - Indicates when a subscription has been established for `objects` samples. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamEstablished" /> - `timeSeries.subscription.cancelled` - Indicates when a subscription has been cancelled for `objects` samples. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamCancelled" /> - `timeSeries.error` - Indicates an error occurred with regards to an active samples subscription. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamError" /> - `timeSeries.samples.update` - Indicates new samples have been generated. Sample updates from multiple objects and attributes can be contained in a single event (each designated by their `sampledByObjectId`, `sampledObjectId` and `attribute` properties). <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamUpdate" /> - `timeSeries.heartbeat` - Indicates that time series subscription(s) are still alive. <SchemaDefinition schemaRef="#/components/schemas/activitiesStreamHeartbeat" /> ## Metasys-Call-Async Streaming Events Clients may subscribe to Objects Samples Response streaming events. A subscription is established by providing a `METASYS-CALL-ASYNC` header on a `GET` operation of the `samples` resource under either the `objects` resource paths or `POST` operation of the `samples` resource under batch operation of times buffer. The following events (with accompanying examples) are available for samples: ### Samples Events The following events (with accompanying examples) are available for async samples: - `timeSeries.samples.stream.started` - Indicates when a subscription has been established for `objects` samples response. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamEstablished" /> - `timeSeries.samples.stream.error` - Indicates an error occurred with regards to an active samples response subscription. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamAsyncError" /> - `timeSeries.samples.stream.data` - Indicates samples responses for each request. Samples from multiple objects and attributes can be contained in a single event (each designated by their `sampledByObjectId`, `sampledObjectId` and `attribute` properties). <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamUpdate" /> - `timeSeries.samples.stream.completed` - Indicates that a streaming samples response has completed successfully. <SchemaDefinition schemaRef="#/components/schemas/timeSeriesStreamAsyncCompleted" />

## Operations (11)

| Method | Path | Summary |
|---|---|---|
| GET | `/timeSeries` | List all time series (repository) |
| GET | `/objects/{objectId}/trendedAttributes` | List trended attributes (buffer) |
| GET | `/timeSeries/{objectId}` | Get trend object (repository) |
| GET | `/timeSeries/{objectId}/trendedAttributes` | List trended attributes (repository) |
| GET | `/timeSeries/{objectId}/trendedAttributes/{attributeId}` | Get trended attribute (repository) |
| GET | `/objects/{objectId}/trendedAttributes/{attributeId}/samples` | Get attribute samples (buffer) |
| GET | `/timeSeries/{objectId}/trendedAttributes/{attributeId}/samples` | Get attribute samples (repository) |
| POST | `/timeSeries/batch` | Batch operations for time series (repository) |
| POST | `/timeSeries/streams/{streamId}/subscriptions` | Create samples subscription (buffer) |
| PUT | `/timeSeries/streams/{streamId}/subscriptions/{subscriptionId}` | Update samples subscription (buffer) |
| DELETE | `/timeSeries/streams/{streamId}/subscriptions/{subscriptionId}` | Delete trend samples subscription |

## Machine-readable artifacts (10)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/openapi/johnson-controls-time-series-api-openapi.yml
- **Documentation** — https://jci-metasys.github.io/api-landing/
- **GettingStarted** — https://jci-metasys.github.io/api-landing/guides/quickstart
- **ChangeLog** — https://jci-metasys.github.io/api-landing/guides/api-changelog
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-activities-schema.json
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-alarm-schema.json
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-network-device-schema.json
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-audit-schema.json
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-equipment-item-schema.json
- **JSONSchema** — https://raw.githubusercontent.com/api-evangelist/johnson-controls/refs/heads/main/json-schema/johnson-controls-equipment-points-schema.json

## Other Johnson Controls APIs (10)

- [Johnson Controls Activities API](https://apis.io/apis/johnson-controls/johnson-controls-activities-api/)
- [Johnson Controls Alarms API](https://apis.io/apis/johnson-controls/johnson-controls-alarms-api/)
- [Johnson Controls Audits API](https://apis.io/apis/johnson-controls/johnson-controls-audits-api/)
- [Johnson Controls Authentication API](https://apis.io/apis/johnson-controls/johnson-controls-authentication-api/)
- [Johnson Controls Equipment API](https://apis.io/apis/johnson-controls/johnson-controls-equipment-api/)
- [Johnson Controls network devices API](https://apis.io/apis/johnson-controls/johnson-controls-network-devices-api/)
- [Johnson Controls Objects API](https://apis.io/apis/johnson-controls/johnson-controls-objects-api/)
- [Johnson Controls Schemas API](https://apis.io/apis/johnson-controls/johnson-controls-schemas-api/)
- [Johnson Controls Spaces API](https://apis.io/apis/johnson-controls/johnson-controls-spaces-api/)
- [Johnson Controls Streaming API](https://apis.io/apis/johnson-controls/johnson-controls-streaming-api/)

## Tags

Time Series

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/johnson-controls/johnson-controls-time-series-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/johnson-controls/.
