Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cumulocity:cumulocity-tenant-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: Latest
title: Cumulocity Tenant API
x-logo:
url: https://www.cumulocity.com/docs/images/logo-platform.svg
backgroundColor: '#F8F8F8'
altText: Cumulocity
href: https://www.cumulocity.com/api
description: '# REST implementation
This section describes the aspects common to all REST-based interfaces of Cumulocity. The interfaces are based on the Hypertext Transfer Protocol 1.1 using HTTPS. ## HTTP usage
### Application management
Cumulocity uses a so-called "application key" to distinguish requests coming from devices and traffic from applications. If you write an application, pass the following header as part of all requests:
```markup
X-Cumulocity-Application-Key:
```
For example, if you registered your application in the Cumulocity Administration application with the key "myapp", your requests should contain the header:
```markup
X-Cumulocity-Application-Key: myapp
```
This makes your application subscribable and billable. If you implement a device, do not pass the key. > **ⓘ Info:** Make sure that you pass the key in **all** requests coming from an application. If you leave out the key,
> the request will be considered as a device request, and the corresponding device will be marked as "available". ### Limited HTTP clients
If you use an HTTP client that can only perform GET and POST methods in HTTP, you can emulate the other methods through an additional "X-HTTP-METHOD" header. Simply issue a POST request and add the header, specifying the actual REST method to be executed. For example, to emulate the "PUT" (modify) method, you can use:
```http
POST ... X-HTTP-METHOD: PUT
```
### Processing mode
Every update request (PUT, POST, DELETE) executes with a so-called *processing mode*. The processing modes are as follows:
|Processing mode|Description|
|---|---|
|PERSISTENT (default)|Stores data in the Cumulocity database and sends data to the Streaming Analytics engine. Afterwards, Cumulocity returns the result of the request. This is the default mode.|
|TRANSIENT|Sends data to the Streaming Analytics engine and immediately returns the results asynchronously but does not store data in Cumulocity’s database. This mode saves storage and processing costs and is useful for example when tracking devices in real time without requiring data to be stored.|
|QUIESCENT|Behaves similar to the persistent mode with the exception that no real-time notifications will be sent.|
|CEP|Behaves like the transient mode with the exception that no real-time notifications are sent.|
To explicitly control the processing mode of an update request, you can use the "X-Cumulocity-Processing-Mode" header with a value of either "PERSISTENT", "TRANSIENT", "QUIESCENT" or "CEP":
```markup
X-Cumulocity-Processing-Mode: PERSISTENT
```
> **ⓘ Info:** Events are always delivered to CEP/Apama for all processing modes. This is independent from real-time notifications. ### Authorization
All requests issued to Cumulocity are subject to authorization. To determine the required permissions, see the "Required role" entries for the individual requests. To learn more about the different permissions and the concept of ownership in Cumulocity, see Getting started > Technical concepts > Security aspects > Access control > Managing roles and assigning permissions in the Cumulocity user documentation. > **⚠️ Important:** In the Cumulocity API, each granular permission is identified by a unique “permission” string, which is prefixed with ROLE_ (for example, ROLE_ALARM_READ, ROLE_INVENTORY_ADMIN). Therefore, permissions are frequently referred to as “roles” throughout the API as well as in the configuration files. For example, the microservice manifest includes a requiredRoles field, which actually expects a permission string. See also the Glossary of the Cumulocity user documentation for the usage of the terms “permission” and “role” in the Cumulocity context. ### Media types
Each type of data is associated with an own media type. The general format of media types is:
```markup
application/vnd.com.nsn.cumulocity.+json;ver=;charset=UTF-8
```
Each media type contains a parameter `ver` indicating the version of the type.'
servers:
- description: Cumulocity tenant
url: https://<TENANT_DOMAIN>
security:
- Basic: []
- OAI-Secure: []
- SSO: []
- JWT-IAM: []
tags:
- name: Tenant API
description: The tenant API resource returns URIs and URI templates to collections of tenants, so that all tenants can be filtered and retrieved.
x-codegen-ignore: true
paths:
/tenant:
get:
operationId: getTenantsApiResource
tags:
- Tenant API
security:
- Basic: []
- OAI-Secure: []
- SSO: []
summary: Retrieve URIs to collections of tenants
description: 'Retrieve URIs and URI templates to collections of tenants and options.
Required roles
ROLE_TENANT_MANAGEMENT_READ'
responses:
'200':
description: The request has succeeded and the URIs are sent in the response.
content:
application/vnd.com.nsn.cumulocity.tenantapi+json:
schema:
$ref: '#/components/schemas/tenantApiResource'
'401':
$ref: '#/components/responses/unauthorizedError'
'403':
$ref: '#/components/responses/operationNotAuthorized'
components:
schemas:
tenantApiResource:
type: object
properties:
options:
description: Collection of tenant options
type: object
properties:
self:
$ref: '#/components/schemas/desc_self'
options:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/option'
self:
$ref: '#/components/schemas/desc_self'
tenants:
description: Collection of subtenants
type: object
properties:
self:
$ref: '#/components/schemas/desc_self'
tenants:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/tenant'
tenantApplications:
description: Retrieves subscribed applications.
type: string
tenantApplicationForId:
description: Represents an individual application reference that can be viewed.
type: string
tenantForId:
description: Represents an individual tenant that can be viewed.
type: string
tenantOptionsForCategory:
description: Represents a category of tenant options.
type: string
tenantOptionForCategoryAndKey:
description: Retrieves a key of the category of tenant options.
type: string
tenantSystemOptions:
description: Retrieves the tenant system options.
type: string
tenantSystemOptionsForCategoryAndKey:
description: Retrieves the tenant system options based on category and key.
type: string
example:
self: https://<TENANT_DOMAIN>/tenant
options:
self: https://<TENANT_DOMAIN>/tenant/options
options: []
tenants:
self: https://<TENANT_DOMAIN>/tenant/tenants
tenants: []
tenantApplications: https://<TENANT_DOMAIN>/tenant/tenants/{tenantId}/applications
tenantApplicationForId: https://<TENANT_DOMAIN>/tenant/tenants/{tenantId}/applications/{applicationId}
tenantForId: https://<TENANT_DOMAIN>/tenant/tenants/{tenantId}
tenantOptionsForCategory: https://<TENANT_DOMAIN>/tenant/options/{category}
tenantOptionForCategoryAndKey: https://<TENANT_DOMAIN>/tenant/options/{category}/{key}
tenantSystemOptions: https://<TENANT_DOMAIN>/tenant/system/options
tenantSystemOptionsForCategoryAndKey: https://<TENANT_DOMAIN>/tenant/system/options/{category}/{key}
application_owner:
description: Reference to the tenant owning this application. The default value is a reference to the current tenant.
type: object
readOnly: true
properties:
self:
$ref: '#/components/schemas/desc_self'
tenant:
type: object
properties:
id:
description: The tenant ID.
type: string
customProperties:
description: An object with a list of custom properties.
type: object
properties:
language:
description: The preferred language to be used in the platform.
type: string
additionalProperties:
description: 'It is possible to add an arbitrary number of custom properties as a list of key-value pairs, for example, `"property": "value"`.
'
x-additionalPropertiesName: customProperties
example:
language: en
userOrigin: BASIC
application_required_roles:
description: List of permissions required by a microservice to work.
type: array
items:
description: A required role name.
type: string
example: ROLE_INVENTORY_READ
web_application_manifest:
description: The manifest of the web application.
type: object
deprecated: true
properties:
_webpaas:
deprecated: true
description: 'A legacy flag that identified a certain type of web application that would control the behavior of plugin tab in the application details view.
It is no longer used.
'
type: boolean
example: true
contentSecurityPolicy:
description: The content security policy of the application.
type: string
example: 'base-uri ''none''; default-src ''self'' ''unsafe-inline'' http: https: ws: wss:; connect-src ''self'' *.billwerk.com http: https: ws: wss:; script-src ''self'' open.mapquestapi.com *.twitter.com *.twimg.com ''unsafe-inline'' ''unsafe-eval'' data:; style-src * ''unsafe-inline'' blob:; img-src * data:; font-src * data:; frame-src *;'
noAppSwitcher:
description: A flag that decides if the application is shown in the app switcher on the UI.
type: boolean
example: true
tabsHorizontal:
description: A flag that decides if the application tabs are displayed horizontally or not.
type: boolean
example: true
option:
description: A tuple storing tenant configuration.
type: object
properties:
category:
description: Name of the option category.
type: string
minLength: 1
key:
description: A unique identifier for this option.
type: string
minLength: 1
value:
description: Value of this option.
type: string
self:
$ref: '#/components/schemas/desc_self'
example:
category: alarm.type.mapping
key: temp_too_high
value: CRITICAL|temperature too high
self: https://<TENANT_DOMAIN>/tenant/options/alarm.type.mapping/temp_too_high
desc_self:
title: SelfURL
description: A URL linking to this resource.
type: string
format: uri
readOnly: true
error:
type: object
properties:
error:
description: The type of error returned.
type: string
message:
description: A human-readable message providing more details about the error.
type: string
info:
description: A URI reference [[RFC3986](https://tools.ietf.org/html/rfc3986)] that identifies the error code reported.
type: string
application:
type: object
properties:
availability:
description: Application access level for other tenants.
type: string
enum:
- MARKET
- PRIVATE
default: PRIVATE
contextPath:
description: The context path in the URL makes the application accessible. Mandatory when the type of the application is `HOSTED`.
type: string
minLength: 1
description:
description: Description of the application.
type: string
id:
description: Unique identifier of the application.
type: string
readOnly: true
key:
description: Applications, regardless of their form, are identified by an application key.
type: string
minLength: 1
name:
description: Name of the application.
type: string
minLength: 1
owner:
$ref: '#/components/schemas/application_owner'
self:
$ref: '#/components/schemas/desc_self'
type:
description: The type of the application.
type: string
enum:
- EXTERNAL
- HOSTED
- MICROSERVICE
manifest:
oneOf:
- $ref: '#/components/schemas/microservice_application_manifest'
- $ref: '#/components/schemas/web_application_manifest'
roles:
$ref: '#/components/schemas/application_roles'
requiredRoles:
$ref: '#/components/schemas/application_required_roles'
breadcrumbs:
description: 'A flag to indicate if the application has a breadcrumbs navigation on the UI.
> **ⓘ Info:** This property is specific to the web application type.
'
type: boolean
contentSecurityPolicy:
description: 'The content security policy of the application.
> **ⓘ Info:** This property is specific to the web application type.
'
type: string
dynamicOptionsUrl:
description: 'A URL to a JSON object with dynamic content options.
> **ⓘ Info:** This property is specific to the web application type.
'
type: string
example: /apps/public/public-options/options.json
globalTitle:
description: 'The global title of the application.
> **ⓘ Info:** This property is specific to the web application type.
'
type: string
example: Cumulocity
legacy:
description: 'A flag that shows if the application is a legacy application or not.
> **ⓘ Info:** This property is specific to the web application type.
'
type: boolean
rightDrawer:
description: 'A flag to indicate if the application uses the UI context menu on the right side.
> **ⓘ Info:** This property is specific to the web application type.
'
type: boolean
upgrade:
description: 'A flag that shows if the application is hybrid and using Angular and AngularJS simultaneously.
> **ⓘ Info:** This property is specific to the web application type.
'
type: boolean
activeVersionId:
description: The active version ID of the application. For microservice applications the active version ID is the microservice manifest version ID.
type: string
readOnly: true
resourcesUrl:
description: URL to the application base directory hosted on an external server. Only present in legacy hosted applications.
type: string
deprecated: true
readOnly: true
example:
availability: PRIVATE
contextPath: myapplication
id: '20200301'
key: my-application-key
name: my-application
owner:
self: https://<TENANT_DOMAIN>/tenant/tenants/t07007007
tenant:
id: t07007007
self: https://<TENANT_DOMAIN>/application/applications/20200301
type: HOSTED
microservice_application_manifest:
description: The manifest of the microservice application.
type: object
properties:
apiVersion:
description: Document type format discriminator, for future changes in format.
type: string
example: '1'
billingMode:
description: 'The billing mode of the application.
In case of RESOURCES, the number of resources used is exposed for billing calculation per usage.
In case of SUBSCRIPTION, all resources usage is counted for the microservice owner and the subtenant is charged for subscription.
'
type: string
enum:
- RESOURCES
- SUBSCRIPTION
default: RESOURCES
example: RESOURCES
contextPath:
description: The context path in the URL makes the application accessible.
type: string
example: devicemanagement
extensions:
description: A list of URL extensions for this microservice application.
type: array
items:
type: object
properties:
path:
description: The relative path in Cumulocity for this microservice application.
type: string
example: /cep/myapplication
type:
description: The type of this extension.
type: string
example: myapplication.io
isolation:
description: 'Deployment isolation.
In case of PER_TENANT, there is a separate instance for each tenant.
Otherwise, there is one single instance for all subscribed tenants.
This will affect billing.
'
type: string
enum:
- MULTI_TENANT
- PER_TENANT
example: PER_TENANT
livenessProbe:
allOf:
- description: Defines the strategy used to verify if a microservice is alive or requires a restart.
- $ref: '#/components/schemas/application_manifest_probe'
provider:
description: 'Application provider information.
Simple name allowed for predefined providers, for example, c8y.
Detailed object for external provider.
'
type: object
properties:
name:
description: The name of the application provider.
type: string
example: Cumulocity GmbH
readinessProbe:
allOf:
- description: Defines the strategy used to verify if a microservice is ready to accept traffic.
- $ref: '#/components/schemas/application_manifest_probe'
requestResources:
description: The minimum required resources for the microservice application.
type: object
properties:
cpu:
description: The required CPU resource for this microservice application.
type: string
example: 250m
memory:
description: The required memory resource for this microservice application.
type: string
example: 256Mi
resources:
description: The recommended resources for this microservice application.
type: object
properties:
cpu:
description: The required CPU resource for this microservice application.
type: string
example: 6000m
memory:
description: The required memory resource for this microservice application.
type: string
example: 28Gi
roles:
$ref: '#/components/schemas/application_roles'
requiredRoles:
$ref: '#/components/schemas/application_required_roles'
scale:
description: 'Allows to configure a microservice auto scaling policy.
If the microservice uses a lot of CPU resources, a second instance will be created automatically when this is set to `AUTO`.
The default is `NONE`, meaning auto scaling will not happen.
'
type: string
enum:
- NONE
- AUTO
default: NONE
example: AUTO
settings:
$ref: '#/components/schemas/application_settings'
settingsCategory:
description: 'Allows to specify a custom category for microservice settings.
By default, `contextPath` is used.
'
type: string
example: null
version:
description: 'Application version.
Must be a correct [SemVer](https://semver.org/) value but the "+" sign is disallowed.
'
type: string
example: 1006.6.8
application_settings:
description: 'A map of settings for this microservice application.
The settings are stored as tenant options in the application''s settings category.
'
type: object
additionalProperties:
type: string
example:
hostkey-autosave: 'true'
jwt.cache.guava.expireInSeconds: '10'
desc_tenant_id:
title: TenantId
description: Unique identifier of a Cumulocity tenant.
type: string
minLength: 2
maxLength: 32
readOnly: true
example: t07007007
tenant:
type: object
properties:
adminEmail:
description: Email address of the tenant's administrator.
type: string
format: email
adminName:
description: 'Username of the tenant''s administrator. It cannot contain whitespace, slashes nor any of `+$:` characters.
> **ⓘ Info:** When it is provided in the request body, also `adminEmail` and `adminPass` must be provided.
'
type: string
minLength: 1
maxLength: 50
adminPass:
description: Password of the tenant's administrator.
type: string
format: password
maxLength: 32
writeOnly: true
allowCreateTenants:
description: Indicates if this tenant can create subtenants.
type: boolean
default: false
readOnly: true
applications:
description: Collection of the subscribed applications.
type: object
readOnly: true
properties:
references:
description: An array containing all subscribed applications.
type: array
items:
$ref: '#/components/schemas/application'
self:
$ref: '#/components/schemas/desc_self'
company:
description: Tenant's company name.
type: string
minLength: 1
maxLength: 256
contactName:
description: Name of the contact person.
type: string
minLength: 1
maxLength: 30
contactPhone:
description: Phone number of the contact person, provided in the international format, for example, +48 123 456 7890.
type: string
format: phone
creationTime:
description: The date and time when the tenant was created.
type: string
format: date-time
readOnly: true
customProperties:
$ref: '#/components/schemas/customProperties'
domain:
description: URL of the tenant's domain. The domain name permits only the use of alphanumeric characters separated by dots `.` and hyphens `-`.
type: string
format: hostname
minLength: 1
maxLength: 256
id:
$ref: '#/components/schemas/desc_tenant_id'
ownedApplications:
description: Collection of the owned applications.
type: object
readOnly: true
properties:
references:
description: An array containing all owned applications (only applications with availability MARKET).
type: array
items:
$ref: '#/components/schemas/application'
self:
$ref: '#/components/schemas/desc_self'
parent:
description: ID of the parent tenant.
type: string
readOnly: true
self:
$ref: '#/components/schemas/desc_self'
status:
description: Current status of the tenant.
type: string
readOnly: true
enum:
- ACTIVE
- SUSPENDED
default: ACTIVE
example:
id: t07007007
self: https://<TENANT_DOMAIN>/tenant/tenants/t07007007
adminEmail: john@doe.com
adminName: johndoe
allowCreateTenants: false
applications:
self: https://<TENANT_DOMAIN>/tenant/tenants/t07007007/applications
references: []
company: ACME AG
contactName: John Doe
contactPhone: +52 333 567 1234
creationTime: '2020-05-02T20:00:29.907Z'
customProperties: {}
domain: mytenant.cumulocity.com
ownedApplications:
self: https://<TENANT_DOMAIN>/tenant/tenants/t07007007/applications
references: []
parent: t1511681
status: ACTIVE
application_manifest_probe:
type: object
properties:
failureThreshold:
description: The probe failure threshold.
type: integer
periodSeconds:
description: The probe period in seconds.
type: integer
timeoutSeconds:
description: The probe timeout in seconds.
type: integer
successThreshold:
description: The probe success threshold.
type: integer
initialDelaySeconds:
description: The probe's initial delay in seconds.
type: integer
httpGet:
description: The probe's HTTP GET method information.
type: object
properties:
path:
description: The HTTP path.
type: string
port:
description: The HTTP port.
type: integer
example:
failureThreshold: 3
periodSeconds: 30
timeoutSeconds: 10
successThreshold: 1
initialDelaySeconds: 360
httpGet:
path: /health
port: 80
application_roles:
description: Roles provided by the microservice.
type: array
items:
description: A role name.
type: string
example: ROLE_SMS_READ
responses:
operationNotAuthorized:
description: Not authorized to perform this operation.
unauthorizedError:
description: Authentication information is missing or invalid.
content:
application/vnd.com.nsn.cumulocity.error+json:
schema:
$ref: '#/components/schemas/error'
example:
error: security/Unauthorized
message: 'Invalid credentials! : Bad credentials'
info: https://www.cumulocity.com/guides/reference-guide/#error_reporting
securitySchemes:
Basic:
type: http
scheme: basic
description: 'The authorization header is formed as `Basic <Base64(<tenantID>/<c8yuser>:<password>)>`. For instance, if your tenantID, username and password are **t0071234**, **testuser** and **secret123** respectively, you can generate the Base64 string with the following command:
```shell
$ echo -n t0071234/testuser:secret123 | base64
```
and your authorization header would look like this:
```
"Authorization": "Basic dDAwNzEyMzQvdGVzdHVzZXI6c2VjcmV0MTIz"
```
'
OAI-Secure:
type: http
scheme: bearer
description: 'This is the recommended authorization method because it provides high security using authorization tokens to prove the identity of the user, and it is the default login mode on creating new tenants. This mode is an enhancement of the previous OAuth Internal authentication (available prior to 10.13.0).
For more details about OAI-Secure authentication, see [Platform administration > Authentication > Basic settings > Login settings](https://www.cumulocity.com/docs/authentication/basic-settings/#login-settings) in the Cumulocity user documentation.
'
SSO:
type: oauth2
description: "The login with SSO requires a correct configuration on the [Cumulocity side](https://www.cumulocity.com/docs/authentication/sso/). With the configuration, an additional button is available on the Login page. After clicking the button, the user is redirected to authenticate with the configured authorization server. On successful login, the user is redirected to Cumulocity.\n\nAuthentication details are exchanged using cookies. There are two parts to it, the first is the authentication cookie that is handled automatically by the Cumulocity platform. The second is the XSRF-TOKEN cookie. When a client receives the cookie, it should take the value and put it in the X-XSRF-TOKEN request header in all subsequent requests.\n\nThe flow of authenticating with authentication code grant is as follows:\n\n\n\nThe first request executed by the browser is:\n\n```http\nGET /tenant/loginOptions\nHost: https://<TENANT_DOMAIN>\nAccept: application/vnd.com.nsn.cumulocity.loginoptioncollection+json\n```\n\nResponse sample:\n\n```json\n{\n \"loginOptions\": [\n {\n \"buttonName\": \"Login with oauth\",\n \"grantType\": \"<AUTHORIZATION_CODE>\",\n \"initRequest\": \"https://<TENANT_DOMAIN>/tenant/oauth?response_type=code&tenant_id=<TENANT_ID>\",\n \"self\": \"https://<TENANT_DOMAIN>/tenant/loginOptions/oauth2\",\n \"type\": \"oauth2\"\n },\n ...\n ],\n \"self\": \"http://<TENANT_DOMAIN>/tenant/loginOptions/\"\n}\n```\n\nThe browser must invoke the request provided in the initRequest parameter.\n\nThe initRequest initiates the redirect, in which the user is prompted for credentials. After successful login, the user is redirected back to the browser, where it must capture the code request parameter. Then the request to exchange the code for the token is as follows:\n\n```http\nPOST /tenant/oauth?grant_type=authorization_code&code=<CODE>\nHost: https://<TENANT_DOMAIN>\n```\n\nA successful response will have no body but the following response headers:\n\n```\nSet-Cookie: authorization=<TOKEN>;\nSet-Cookie: XSRF-TOKEN=<XSRF-TOKEN>;\n```\n\nThe authorization cookie is valid for two weeks.\n"
flows:
clientCredentials:
tokenUrl: /tenant/oauth?grant_type=authorization_code&code=<CODE>
scopes: {}
JWT-IAM:
type: http
scheme: bearer
bearerFormat: JWT
description: 'This kind of authentication substitutes the JWT authentication with OAuth2 access tokens from your Identity and Access Management (IAM).
You can enable this in the [SSO configuration](https://www.cumulocity.com/docs/authentication/sso/).
The HTTP header must include:
```
"Authorization": "Bearer <Access token>"
```
When a request with a bearer token in the header is received, Cumulocity checks if the access token is from your IAM (that is, if authentication is enabled in your SSO configuration), and verifies the authenticity of
the token remotely against the IAM.
'
x-tagGroups:
- name: Platform
tags:
- Platform API
- name: Alarms
tags:
- Alarm API
- Alarm notification API
- Alarms
- name: Applications
tags:
- Application API
- Applications
- Application versions
- Application binaries
- Bootstrap user
- Current application
- name: Audits
tags:
- Audit API
- Audits
- name: Device control
tags:
- Device control API
- Device control notification API
- Operations
- Bulk operations
- Device credentials
- New device requests
- Device control via SMS
- name: Events
tags:
- Event API
- Event notification API
- Events
- Attachments
- name: Feature toggles
tags:
- Feature toggles API
- name: Identity
tags:
- Identity API
- External IDs
- name: Inventory
tags:
- Inventory API
- Inventory notification API
- Managed objects
- Binaries
- Child operations
- Query language
- name: Measurements
tags:
- Measurement API
- Measurement notification API
- Measurements
- Measurements specifics
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cumulocity/refs/heads/main/openapi/cumulocity-tenant-api-api-openapi.yml