APIs Device to Cloud Integrate Applications Webhook
Device to Cloud can integrate different application types and their communication protocols and data formats.
You can forward IoT device data and events to your application(s) by using “device groups” and assigning AEs to them.
Use oneM2M API to add application webhook endpoints
A webhook is the easiest way to send real-time IoT data to your business application using HTTP requests.
Webhooks make integration is as easy as copying and pasting your webhook endpoint URL. The URL comprises all the necessary credentials.
In Device to Cloud your (webhook) application is represented as Application Entity AE
resource.
In order to receive notifications about various events, create an application represented as AE
.
This AE
contains a point of access URL:
- Request
- Response
POST {{API_URL}} HTTP/2
Accept: application/json
Content-Type: application/json;ty=2
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:ae": {
"rn": "myWebhook",
"api": "NmyWebhook",
"lbl": [ "type:d2c", "d2c:1.0", "EndpointType:WebHook" ],
"poa": ["<APPLICATION_WEBHOOK_ENDPOINT_URL>"]
}
}
HTTP/1.1 201 Created
"user-agent": "axios/1.7.4",
"content-length": "318",
"accept": "application/json, text/plain, */*",
"accept-encoding": "gzip, compress, deflate, br",
"content-type": "application/json",
"request-context": "appId=cid-v1:",
"request-id": "|ad...91.",
"traceparent": "00...01",
"x-forwarded-for": "...",
"x-forwarded-host": "...",
"x-forwarded-proto": "https",
"X-M2M-Origin": "CmyApplication",
"x-m2m-ri": "06f...e4",
"x-m2m-rvi": "3",
"x-ms-request-id": "ad1...d9",
"x-ms-request-root-id": "|ad1...d9.f6...91."
{
"m2m:ae": {
"api": "NmyWebhook",
"poa": [
"<APPLICATION WEBHOOK ENDPOINT URL>"
],
"rn": "myWebhook",
"ty": 2,
"ri": "66fe6b02baa471e374bd0041",
"aei": "CmyApplication",
"pi": "myTenant",
"ct": "20241003T095930,861000",
"lt": "20241003T095930,861000"
}
}
Parameters:
apiis the identifier of the application. The first character of the ID shall be a capital ‘N’ (for IDs not defined by a registration authority).lbl(labels)type:d2cspecifies: ThisAEis in scope for Device to Cloud.rn(Resource Name) is a unique identifier used in subsequent requests to refer to this specific entity.poa(point of access) represents the list of url addresses where you can add your WebHook endpoint URL. Only one URL is supported by Device to Cloud.poah(point of access header) is a list of headers for webhook in format ‘key:value’ (‘header field: value of header field’)
Following headers in poah are not allowed:
- Accept
- Authorization
- Content-Type
- Content-Length
- Content-Encoding
- Cookie
- In
Content-Type,ty=2defines the resource type of “Application Entity” within oneM2M (every entity has its own resource type).
Behind the scenes, a default device group for all new Device to Cloud AEs
will be created. This default device group will be named appEntityNameDefaultGroup and rn (resourceName) if the AE is added to the the group.
Modify the application
By modifying request, you can change the data inside application entity (AE
) including target addresses for subscriptions (point of access)
- Request
- Response
PUT {{API_URL}}/ HTTP/2
Accept: application/json
Content-Type: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:ae": {
"poa": ["<APPLICATION_WEBHOOK_ENDPOINT_URL>"]
}
}
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 09:12:07 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 267
Connection: keep-alive
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Referrer-Policy: no-referrer
Vary: Origin
{
"m2m:ae": {
"api": "NmyWebhook",
"poa": [
"<APPLICATION_WEBHOOK_ENDPOINT_URL>"
],
"rn": "myWebhook",
"ty": 2,
"ri": "674ecb2387b651839a70a074",
"aei": "CmyWebhook",
"pi": "myTenant",
"ct": "20241203T091059,453000",
"lt": "20241203T091207,484000",
"tsn": null
}
}
Parameters:
apiis the identifier of the application. The first character of the ID shall be a capital ‘N’ (for IDs not defined by a registration authority).rn(Resource Name) is a unique identifier used in subsequent requests to refer to this specific entity.poa(point of access) represents the list of url addresses where you can add your WebHook endpoint URL.- In
Content-Type,ty=2defines the resource type of “Application Entity” within oneM2M (every entity has its own resource type).
Retrieve application info
Retrieve an application entity (AE
) with the list of target addresses for subscription (point of access):
- Request
- Response
GET {{API_URL}}/myWebhook HTTP/2
Accept: application/json
Content-Type: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
Cache-Control: no-cache
HTTP/1.1 200 OK
Date: Fri, 31 Jan 2025 12:25:55 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 254
Connection: keep-alive
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1 ; mode=block
Referrer-Policy: no-referrer
vary: Origin
{
"m2m:ae": {
"api": "NmyWebhook",
"poa": [
"<customer url>",
"<customer url>"
],
"rn": "myWebhook",
"ty": 2,
"ri": "6792415c5baf99a8eee604e6",
"aei": "CmyApplication",
"pi": "myTenant",
"ct": "20250123T131716,722000",
"lt": "20250123T131716,722000"
}
}
Retrieve device info
Retrieve device information like device model, manufacturer, SIM, credentials, etc. Information is added as sub-objects of type Device Info, SIM or Credentials:
- Request
- Response
GET {{API_URL}}/myLwM2M-Device01?ty=14&ty=13&rcn=4 HTTP/2
Accept: application/json
Content-Type: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
Cache-Control: no-cache
HTTP/2 200 OK
date: Tue, 05 May 2026 15:16:55 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-05T15:16:55.626Z
x-m2m-rsc: 2000
x-azure-ref: 20260505T151654Z-184d7b9bf7dtp9rwhC1FRAdsfg0000000r9g000000002zu7
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: e88d48d9b9a9953e192a2331373830
vary: Origin
x-kong-upstream-latency: 682
x-kong-proxy-latency: 2
x-kong-request-id: d9bf2b2106dd0b0e513d4e1cc368b800
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 1216
x-http2-stream-id: 3
{
"m2m:nod": {
"ni": "urn:gsma:imei:999934546781019",
"lbl": [
"Location:13509 Berlin, Holzhauser Str 4-8, Building A",
"d2c-uplink-property_AssetId:1234546",
"d2c-uplink-property_Room:1234",
"d2c:1.0",
"profile:SCS-LwM2M",
"ICCID:99982280000004491019",
"d2c_lifecycle⚱gsma:imei:999934546781019",
"d2c_resource_/3303/0/5700:ac387081-41ec-4819-8be4-9152882d6b1e"
],
"rn": "myLwM2M-Device01",
"ty": 14,
"ri": "6980f7a856c78d1c4957fa11",
"pi": "myTenant",
"ct": "20260202T191448,109000",
"lt": "20260223T092727,644000",
"m2m:crds": [
{
"dc": "cred",
"mgd": 1029,
"rn": "credentials",
"lbl": [
"d2c:1.0"
],
"ty": 13,
"ri": "6980f7a856c78d1c4957fa16",
"pi": "6980f7a856c78d1c4957fa11",
"ct": "20260202T191448,369000",
"lt": "20260202T191448,369000",
"crid": "myLwM2M-Device01_psk",
"crse": "c29tZU5ld1JhbmRvbUQyY1Bhc3N3b3Jk"
}
],
"m2m:dvi": [
{
"rn": "device-info",
"mgd": 1007,
"man": "Leshan Demo Device",
"dty": "device",
"mod": "Model 500",
"dlb": "urn:gsma:imei:999934546781019",
"dc": "a comment",
"lbl": [
"d2c:1.0"
],
"ty": 13,
"ri": "6980f7aa56c78d1c4957fa19",
"pi": "6980f7a856c78d1c4957fa11",
"ct": "20260202T191450,996000",
"lt": "20260505T110110,495000",
"dvnm": "Leshan Demo Device",
"fwv": "1.0.0",
"loc": "geo:-84.0,-138.0",
"ptl": [
"LWM2M"
],
"swv": "1.0.2",
"syst": "afnN9Q=="
}
]
}
}
Create a subscription group for devices
You can receive device messages and notifications about various events.
Device groups let you define which device data is passed on to applications.
To get information about node resource name or an AE resource name .
A group can contain multiple applications and as many devices as you need:
- Devices:
ndsnode resource name array - Applications:
aesAE resource name array
Of course, you can add one application to multiple groups.
- Request
- Response
POST {{API_URL}}/device-group HTTP/2
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyDeviceGroup
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"dtiot:devGr": {
"cnd": "com.telekom.iot.orchestrator.deviceGroup",
"rn": "myDeviceGroup",
"nds": [ "testDevice","<device_rn_2>", "...", "..." ],
"aes": [ "testAppEntity" ],
"lbl": [ "d2c:1.0"]
}
}
HTTP/2 201 Created
date: Tue, 05 May 2026 15:52:52 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-05T15:52:52.598Z
x-m2m-rsc: 2001
x-azure-ref: 20260505T155252Z-1698948dff4sfch2hC1FRA1ndn0000000qn0000000011h4v
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: e88d48d9b9a9953e192a2333323235
vary: Origin
x-kong-upstream-latency: 275
x-kong-proxy-latency: 3
x-kong-request-id: a316b673f41b5b0a417a8d1702f13b08
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 315
x-http2-stream-id: 3
{
"dtiot:devGr": {
"cnd": "com.telekom.iot.orchestrator.deviceGroup",
"rn": "myDeviceGroup",
"nds": [
"testDevice", "<device_rn_2>", "...", "..."
],
"aes": [
"testAppEntity"
],
"ty": 28,
"cr": "CmyDeviceGroup",
"st": 0,
"ri": "69fa125412346f947f0c8222",
"pi": "680128d474f6cb71f6fe8e86",
"ct": "20260505T155252,565000",
"lt": "20260505T155252,565000"
}
}
Parameters:
ty=28= flexContainerrn= resource name = the group name
Receive notification via webhook
In case of sending Operations like READ, WRITE, EXECUTE, OBSERVE notifications about incoming messages will be sent to the webhook defined as “poa” in Application Entity
2 modes were supported for sending an outgoing message i.e Protocol specific mode and REST API mode.
READ
- Request
- Notification
Protocol specific mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": "READ /3303/0/5700"
}
}
REST API mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": {
"method": "READ",
"path": "/3303/0/5700"
},
"cnf": "application/json:0"
}
}
HTTP/2 200 OK
date: Wed, 06 May 2026 17:32:06 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:32:06.157Z
x-m2m-rsc: 2000
x-azure-ref: 20260506T173206Z-1698948dff4sgjvkhC1FRAfxm80000000wwg000000002tzn
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 6d1724dbeb7e2301c9d2233331303631
vary: Origin
x-kong-upstream-latency: 156
x-kong-proxy-latency: 2
x-kong-request-id: c00d9011411de40af9ff965cb87ad672
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 629
x-http2-stream-id: 3
{
"m2m:sgn": {
"nev": {
"rep": {
"m2m:cin": {
"con": {
"noRNe": "myLwM2M-Device01",
"time": 1757681383690,
"messageType": "response",
"resourcePath": "3303/0/5700",
"dataValue": {
"3303/0/5700": -703.9
}
},
"lbl": [
"updates_timestamp: 1757681331816",
"d2c:1.0",
"expirations_timestamp: 1757582951268",
"registrations_timestamp: 1733389745807"
],
"cnf": "application/json:0",
"ty": 4,
"cs": 158,
"st": 476,
"cr": "CmyApplication",
"rn": "e323d324-0fa7-4352-a5b6-18f784ca5921",
"ri": "68c416e826a6c2a06344c300",
"pi": "689dd12bb41e8b5c4d36ac02",
"ct": "20250912T124944,772000",
"lt": "20250912T124944,772000"
}
},
"net": 3
},
"sur": "myTenant/68c416d000e9bf7f73efd620"
}
}
Response key components:
m2m:sgn- oneM2M Signal/Notification wrappernev- Notification Event containing:net- Notification Event Type (1=create, 2=update, 3=delete, 4=retrieve)rep- Representation of the resource that triggered the notificationm2m:cin- Content Instance (IoT data container) with:con- Content (the actual IoT device data)cnf- Content Formatcr- Creatorcs- Content Sizect- Creation Timelt- Last Modified Timepi- Parent IDri- Resource IDrn- Resource Namest- State Tagty- Type (4 = Content Instance)sur- Subscription URI Reference
WRITE
- Request
- Notification
Protocol specific mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": "WRITE /3442/0/1130/0 31.4159265"
}
}
REST API mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": {
"method": "WRITE",
"path": "/3442/0/1130/0",
"value": "31.4159265"
},
"cnf": "application/json:0"
}
},
HTTP/2 200 OK
date: Wed, 06 May 2026 17:32:06 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:32:06.157Z
x-m2m-rsc: 2000
x-azure-ref: 20260506T173206Z-1698948dff4sgjvkhC1FRAfxm80000000wwg000000002tzn
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 6d1724dbeb7e2301c9d2233331303631
vary: Origin
x-kong-upstream-latency: 156
x-kong-proxy-latency: 2
x-kong-request-id: c00d9011411de40af9ff965cb87ad672
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 629
x-http2-stream-id: 3
{
"m2m:sgn": {
"nev": {
"rep": {
"m2m:cin": {
"con": {
"noRNe": "myLwM2M-Device01",
"messageType": "response",
"resourcePath": "3442/0/1130/0",
"dataValue": null
},
"lbl": [
"updates_timestamp: 1757691301135",
"d2c:1.0",
"expirations_timestamp: 1757582951268",
"registrations_timestamp: 1733389745807"
],
"cnf": "application/json:0",
"ty": 4,
"cs": 142,
"st": 479,
"cr": "CmyApplication",
"rn": "2b3c0747-4f5d-469e-bc51-11497be0e402",
"ri": "68c43db900e9bf7f73efd964",
"pi": "689dd12bb41e8b5c4d36ac02",
"ct": "20250912T153521,635000",
"lt": "20250912T153521,635000"
}
},
"net": 3
},
"sur": "myTenant/68c416d000e9bf7f73efd620"
}
}
EXECUTE
- Request
- Notification
Protocol specific mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": "EXECUTE /3442/0/2"
}
}
REST API mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": {
"method": "EXECUTE",
"path": "/3442/0/2",
},
"cnf": "application/json:0"
}
},
HTTP/2 200 OK
date: Wed, 06 May 2026 17:32:06 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:32:06.157Z
x-m2m-rsc: 2000
x-azure-ref: 20260506T173206Z-1698948dff4sgjvkhC1FRAfxm80000000wwg000000002tzn
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 6d1724dbeb7e2301c9d2233331303631
vary: Origin
x-kong-upstream-latency: 156
x-kong-proxy-latency: 2
x-kong-request-id: c00d9011411de40af9ff965cb87ad672
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 629
x-http2-stream-id: 3
{
"m2m:sgn": {
"nev": {
"rep": {
"m2m:cin": {
"con": {
"noRNe": "myLwM2M-Device01",
"time": 1757691600071,
"messageType": "response",
"resourcePath": "3442/0/2",
"dataValue": null
},
"lbl": [
"updates_timestamp: 1757691566272",
"d2c:1.0",
"expirations_timestamp: 1757582951268",
"registrations_timestamp: 1733389745807"
],
"cnf": "application/json:0",
"ty": 4,
"cs": 137,
"st": 480,
"cr": "CmyApplication",
"rn": "b22c7a15-3453-4e3f-89f4-b442ee66667d",
"ri": "68c43ed126a6c2a06344c65a",
"pi": "689dd12bb41e8b5c4d36ac02",
"ct": "20250912T154001,156000",
"lt": "20250912T154001,156000"
}
},
"net": 3
},
"sur": "myTenant/68c416d000e9bf7f73efd620"
}
}
OBSERVE
- Request
- Notification
Protocol specific mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": "OBSERVE /3303/0/5700"
}
}
REST API mode
POST {{API_URL}}/device-communication/myLwM2M-Device01/outgoing-msg
Accept: application/json
Content-Type: application/json;ty=4
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"m2m:cin": {
"con": {
"method": "OBSERVE",
"path": "/3303",
},
"cnf": "application/json:0"
}
},
HTTP/2 200 OK
date: Wed, 06 May 2026 17:32:06 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:32:06.157Z
x-m2m-rsc: 2000
x-azure-ref: 20260506T173206Z-1698948dff4sgjvkhC1FRAfxm80000000wwg000000002tzn
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 6d1724dbeb7e2301c9d2233331303631
vary: Origin
x-kong-upstream-latency: 156
x-kong-proxy-latency: 2
x-kong-request-id: c00d9011411de40af9ff965cb87ad672
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 629
x-http2-stream-id: 3
{
"m2m:sgn": {
"nev": {
"rep": {
"m2m:cin": {
"con": {
"noRNe": "myLwM2M-Device01",
"time": 1757505188559,
"messageType": "notify",
"resourcePath": "/3303/0/5700",
"dataValue": -32.9,
"attributes": {}
},
"lbl": [
"updates_timestamp: 1757691566272",
"d2c:1.0",
"expirations_timestamp: 1757582951268",
"registrations_timestamp: 1733389745807"
],
"cnf": "application/json:0",
"ty": 4,
"cs": 157,
"st": 480,
"cr": "CmyApplication",
"rn": "fcc4f268-ab25-48e4-989c-8f1cbd601706",
"ri": "68c166a526a6c2a0634487d7",
"pi": "689dd12bb41e8b5c4d36ac02",
"ct": "20250912T161031,458961",
"lt": "20250912T161031,458961"
}
},
"net": 3
},
"sur": "myTenant/68c416d000e9bf7f73efd620"
}
}
Advanced webhook features
You can add Uplink Properties to a device to identify it more precisely. Uplink Properties are key/value pairs stored in “lbl” attribute within Nodes.
These fields must follow the naming convention below:
"d2c-uplink-property_<key>:<value>"
Examples:
"d2c-uplink-property_Building:13509 Berlin, Holzhauser Str 4-8, A""d2c-uplink-property_Room:2.1.23"
Uplink Properties can be added to a device during its creation or update process. Once set, these Uplink Properties will be included in every message received from the respective device.
Delete application
By deleting an application entity (AE
), all related data subscriptions for the device to the application entities are removed:
- Request
- Response
DELETE {{API_URL}}/{{myWebhook}} HTTP/2
Accept: application/json
Content-Type: application/json;ty=2
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/1.1 200 OK
Date: Mon, 02 Dec 2024 21:01:14 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Referrer-Policy: no-referrer
Vary: Origin
{}
Remove a device group
By removing a device group, all related data subscriptions for the nodes to the AEs are removed:
- received-msg subscription
- error-msg subscription
- Request
- Response
DELETE {{API_URL}}/device-group/myDeviceGroup HTTP/2
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyDeviceGroup
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Wed, 06 May 2026 17:45:10 GMT
content-type: text/plain; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:45:10.753Z
x-m2m-rsc: 2002
x-azure-ref: 20260506T174510Z-184d7b9bf7dcqd2thC1FRAq7ps0000000wdg00000000dtt2
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 6d1724dbeb7e2301c9d2233331353736
vary: Origin
x-kong-upstream-latency: 441
x-kong-proxy-latency: 2
x-kong-request-id: 24c4a92d87953860063d0e755e51443b
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 0
x-http2-stream-id: 3
<Response body is empty>
Update a device group
Device groups let you add devices and application entities.
To get information about node resource name or an AE resource name .
A group can contain multiple applications and as many devices as you need:
- Devices:
ndsnode resource name array - Applications:
aesAE resource name array
- Request
- Response
PUT {{API_URL}}/device-group/myDeviceGroup HTTP/2
Accept: application/json
Content-Type: application/json
X-M2M-Origin: CmyDeviceGroup
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
{
"dtiot:devGr": {
"nds": [ "testDevice","<device_rn_2>", "...", "..." ],
"aes": [ "testAppEntity", "<ae_rn_2>", "...", "..." ]
}
}
HTTP/2 200 OK
date: Wed, 06 May 2026 17:51:43 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T17:51:43.058Z
x-m2m-rsc: 2004
x-azure-ref: 20260506T175142Z-1698948dff45cbbwhC1FRAc63n0000000w4g00000000sx7t
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: e73dacf181ec59495ca52333303435
vary: Origin
x-kong-upstream-latency: 163
x-kong-proxy-latency: 4
x-kong-request-id: 5d6b5054202e45711454cb69a622c230
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 333
x-http2-stream-id: 3
{
"dtiot:devGr": {
"cnd": "com.telekom.iot.orchestrator.deviceGroup",
"rn": "myDeviceGroup",
"nds": [
"testDevice1",
"testDevice2",
"<device_rn_3>",
],
"aes": [
"testAppEntity1",
"testAppEntity2",
"<ae_rn_3>"
],
"ty": 28,
"cr": "CmyDeviceGroup",
"st": 0,
"ri": "673c9aa261db250e5c92d3fc",
"pi": "6724bb7507f20523ba2c6f13",
"ct": "20241119T140314,352000",
"lt": "20241119T140314,352000"
}
}