Cumulocity Measurement API

Ingest, query, and delete device measurements (telemetry data points) including temperature, voltage, location, and arbitrary custom fragments with units. Supports time-range queries, source filters, type filters, series aggregations (hourly/daily), and bulk creation via the /measurement/measurements collection.

Cumulocity Measurement API is one of 19 APIs that Cumulocity publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include IoT, Measurements, Time Series, and Telemetry. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 2 Naftiko capability specs, and 1 JSON Schema.

OpenAPI Specification

cumulocity-measurement-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cumulocity Measurement API
  version: 10.20.0
  description: |
    Ingest, query, and delete device measurements (telemetry data points) including temperature, voltage,
    location, and arbitrary custom fragments with units. Supports time-range queries, source/type filters,
    series aggregations (hourly/daily), and bulk creation.
servers:
- url: https://{tenant}.cumulocity.com
  variables:
    tenant:
      default: example
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Measurements
- name: Series
paths:
  /measurement/measurements:
    get:
      tags: [Measurements]
      summary: List Measurements
      operationId: listMeasurements
      parameters:
      - name: source
        in: query
        schema: {type: string}
      - name: type
        in: query
        schema: {type: string}
      - name: valueFragmentType
        in: query
        schema: {type: string}
      - name: valueFragmentSeries
        in: query
        schema: {type: string}
      - name: dateFrom
        in: query
        schema: {type: string, format: date-time}
      - name: dateTo
        in: query
        schema: {type: string, format: date-time}
      - name: revert
        in: query
        schema: {type: boolean}
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/CurrentPage'
      responses:
        '200':
          description: A collection of measurements.
          content:
            application/vnd.com.nsn.cumulocity.measurementCollection+json:
              schema:
                $ref: '#/components/schemas/MeasurementCollection'
    post:
      tags: [Measurements]
      summary: Create a Measurement
      operationId: createMeasurement
      requestBody:
        required: true
        content:
          application/vnd.com.nsn.cumulocity.measurement+json:
            schema:
              $ref: '#/components/schemas/Measurement'
          application/vnd.com.nsn.cumulocity.measurementCollection+json:
            schema:
              $ref: '#/components/schemas/MeasurementCollection'
      responses:
        '201':
          description: Measurement created.
          content:
            application/vnd.com.nsn.cumulocity.measurement+json:
              schema:
                $ref: '#/components/schemas/Measurement'
    delete:
      tags: [Measurements]
      summary: Delete Measurements by Filter
      operationId: deleteMeasurements
      parameters:
      - name: source
        in: query
        schema: {type: string}
      - name: type
        in: query
        schema: {type: string}
      - name: dateFrom
        in: query
        schema: {type: string, format: date-time}
      - name: dateTo
        in: query
        schema: {type: string, format: date-time}
      responses:
        '204':
          description: Measurements deleted.
  /measurement/measurements/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema: {type: string}
    get:
      tags: [Measurements]
      summary: Retrieve a Measurement
      operationId: getMeasurement
      responses:
        '200':
          description: A single measurement.
          content:
            application/vnd.com.nsn.cumulocity.measurement+json:
              schema:
                $ref: '#/components/schemas/Measurement'
    delete:
      tags: [Measurements]
      summary: Delete a Measurement
      operationId: deleteMeasurement
      responses:
        '204':
          description: Measurement deleted.
  /measurement/measurements/series:
    get:
      tags: [Series]
      summary: Retrieve Series Aggregations
      operationId: getSeries
      parameters:
      - name: source
        in: query
        required: true
        schema: {type: string}
      - name: series
        in: query
        required: true
        schema: {type: array, items: {type: string}}
        style: form
        explode: true
      - name: aggregationType
        in: query
        schema:
          type: string
          enum: [MINUTELY, HOURLY, DAILY]
      - name: dateFrom
        in: query
        required: true
        schema: {type: string, format: date-time}
      - name: dateTo
        in: query
        required: true
        schema: {type: string, format: date-time}
      responses:
        '200':
          description: Series aggregation result.
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    PageSize:
      name: pageSize
      in: query
      schema: {type: integer, minimum: 1, maximum: 2000, default: 5}
    CurrentPage:
      name: currentPage
      in: query
      schema: {type: integer, minimum: 1, default: 1}
  schemas:
    Measurement:
      type: object
      required: [time, type, source]
      properties:
        id: {type: string, readOnly: true}
        self: {type: string, format: uri, readOnly: true}
        time: {type: string, format: date-time}
        type: {type: string}
        source:
          type: object
          properties:
            id: {type: string}
            self: {type: string, format: uri}
      additionalProperties: true
    MeasurementCollection:
      type: object
      properties:
        self: {type: string, format: uri}
        measurements:
          type: array
          items:
            $ref: '#/components/schemas/Measurement'