openapi: 3.2.0 info: title: Siemens MindSphere IoT Time Series Timeseries API description: The MindSphere IoT Time Series API enables storing, querying, and retrieving time-series telemetry data from industrial equipment and IoT assets. Supports high-frequency data ingestion (up to 1 Hz), bulk imports, and time-range queries for sensor and machine data organized by asset and aspect. version: '3.0' contact: name: Siemens MindSphere Developer Support url: https://documentation.mindsphere.io/MindSphere/apis/iot-timeseries/api-timeseries-overview.html servers: - url: https://gateway.eu1.mindsphere.io/api/iottimeseries/v3 description: MindSphere EU1 Region security: - BearerAuth: [] tags: - name: Time Series description: Time-series data read and write operations paths: /timeseries: put: operationId: putMultipleTimeseries summary: Ingest time-series data for multiple assets/aspects description: Creates or updates time-series data for multiple asset-aspect combinations in a single request. Each entry specifies an assetId, aspectName, and array of timestamped data points. tags: - Time Series requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/TimeseriesInput' responses: '204': description: Data ingested successfully (no content) '400': description: Validation error in request payload content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden — insufficient scope content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /timeseries/{assetId}/{aspectName}: put: operationId: putTimeseries summary: Ingest time-series data for a single asset aspect description: Creates or updates time-series data for a specific asset and aspect. Each data point must include a _time field (ISO 8601 UTC) and values for aspect variables. tags: - Time Series parameters: - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/AspectName' requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/TimeseriesDataPoint' responses: '204': description: Data ingested successfully '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized '403': description: Forbidden '404': description: Asset or aspect not found get: operationId: getTimeseries summary: Query time-series data for an asset aspect description: Retrieves time-series data for a specific asset and aspect within a time range. Supports time range queries, field selection, and result limiting. Data is returned ordered by timestamp ascending. tags: - Time Series parameters: - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/AspectName' - name: from in: query required: true description: Start of time range (ISO 8601 UTC) schema: type: string format: date-time example: '2026-01-01T00:00:00Z' - name: to in: query required: true description: End of time range (ISO 8601 UTC) schema: type: string format: date-time example: '2026-01-01T01:00:00Z' - name: limit in: query required: false description: Maximum number of data points to return (max 2000) schema: type: integer default: 2000 maximum: 2000 - name: select in: query required: false description: Comma-separated list of variable names to include schema: type: string example: temperature,pressure - name: sort in: query required: false description: Sort order by _time schema: type: string enum: - asc - desc default: asc - name: latestValue in: query required: false description: Return only the most recent data point schema: type: boolean default: false responses: '200': description: Time-series data points content: application/json: schema: type: array items: $ref: '#/components/schemas/TimeseriesDataPoint' '400': description: Invalid query parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized '404': description: Asset or aspect not found delete: operationId: deleteTimeseries summary: Delete time-series data for an asset aspect description: Deletes all time-series data within an hourly-aligned time range for a specific asset and aspect. The time range must align to UTC hour boundaries. tags: - Time Series parameters: - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/AspectName' - name: from in: query required: true description: Start of hourly-aligned range (ISO 8601 UTC) schema: type: string format: date-time example: '2026-01-01T00:00:00Z' - name: to in: query required: true description: End of hourly-aligned range (ISO 8601 UTC) schema: type: string format: date-time example: '2026-01-01T01:00:00Z' responses: '204': description: Data deleted successfully '400': description: Invalid time range (not hour-aligned or invalid format) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized '403': description: Forbidden components: parameters: AspectName: name: aspectName in: path required: true description: Aspect name (must match asset type aspect configuration) schema: type: string example: EnvironmentData AssetId: name: assetId in: path required: true description: Unique MindSphere asset identifier (UUID) schema: type: string format: uuid example: 5d7e59d0-8c94-4bce-8a0c-3a7fcc9a1234 schemas: TimeseriesInput: type: object required: - assetId - aspectName - data properties: assetId: type: string format: uuid aspectName: type: string data: type: array items: $ref: '#/components/schemas/TimeseriesDataPoint' TimeseriesDataPoint: type: object required: - _time properties: _time: type: string format: date-time description: ISO 8601 UTC timestamp for the data point example: '2026-01-01T00:00:00.000Z' additionalProperties: description: Variable values keyed by variable name. Variable types are defined in the aspect configuration (DOUBLE, LONG, BOOLEAN, STRING, BIG_STRING, INT, TIMESTAMP). oneOf: - type: number - type: boolean - type: string - type: 'null' ErrorResponse: type: object properties: id: type: string description: Unique error identifier message: type: string details: type: array items: type: object properties: name: type: string message: type: string securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: MindSphere Bearer token from OAuth2 token endpoint