---
title: "Subscribe to events"
method: POST
path: "/api/v1/ws/events"
tags: ["Resource Events"]
---

# Subscribe to events

`POST /api/v1/ws/events`

Open a websocket stream and receive events from devices. The contents of filters in the SubscribeToEvents message determine which events will be sent to the stream.

## Request body

- SubscribeToEvents
  - `createSubscription` SubscribeToEventsCreateSubscription
    - `eventFilter` SubscribeToEventsCreateSubscriptionEvent[]
    - `deviceIdFilter` string[]
    - `resourceIdFilter` string[]
  - `cancelSubscription` SubscribeToEventsCancelSubscription
    - `subscriptionId` string
  - `correlationId` string

## Response `200`

Stream of events

- object
  - `data` Event
    - `subscriptionId` string
    - `correlationId` string
    - `deviceRegistered` EventDeviceRegistered
      - `deviceIds` string[]
    - `deviceUnregistered` EventDeviceUnregistered
      - `deviceIds` string[]
    - `resourcePublished` ResourceLinksPublished
      - `resources` ResourceLink[]
        - `href` string
        - `deviceId` string
        - `resourceTypes` string[]
        - `interfaces` string[]
        - `anchor` string
        - `title` string
        - `supportedContentTypes` string[]
        - `validUntil` string, int64
        - `policies` object
          - `bitFlags` integer
        - `endpointInformations` object[]
          - `endpoint` string
          - `priority` string, int64
      - `deviceId` string
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceUnpublished` ResourceLinksUnpublished
      - `hrefs` string[]
      - `deviceId` string
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceChanged` ResourceChanged
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
      - `status` 'UNKNOWN' | 'OK' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'UNAVAILABLE' | 'NOT_IMPLEMENTED' | 'ACCEPTED' | 'ERROR' | 'METHOD_NOT_ALLOWED' | 'CREATED'
    - `operationProcessed` EventOperationProcessed
      - `errorStatus` OperationProcessedErrorStatus
        - `code` 'OK' | 'ERROR' | 'NOT_FOUND'
        - `message` string
    - `subscriptionCanceled` EventSubscriptionCanceled
      - `reason` string
    - `resourceUpdatePending` ResourceUpdatePending
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `resourceInterface` string
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceUpdated` ResourceUpdated
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `status` 'UNKNOWN' | 'OK' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'UNAVAILABLE' | 'NOT_IMPLEMENTED' | 'ACCEPTED' | 'ERROR' | 'METHOD_NOT_ALLOWED' | 'CREATED'
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceRetrievePending` ResourceRetrievePending
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `resourceInterface` string
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceRetrieved` ResourceRetrieved
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `status` 'UNKNOWN' | 'OK' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'UNAVAILABLE' | 'NOT_IMPLEMENTED' | 'ACCEPTED' | 'ERROR' | 'METHOD_NOT_ALLOWED' | 'CREATED'
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceDeletePending` ResourceDeletePending
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceDeleted` ResourceDeleted
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `status` 'UNKNOWN' | 'OK' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'UNAVAILABLE' | 'NOT_IMPLEMENTED' | 'ACCEPTED' | 'ERROR' | 'METHOD_NOT_ALLOWED' | 'CREATED'
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceCreatePending` ResourceCreatePending
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `resourceCreated` ResourceCreated
      - `resourceId` ResourceId
        - `deviceId` string, uuid
        - `href` string, url
      - `status` 'UNKNOWN' | 'OK' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'UNAVAILABLE' | 'NOT_IMPLEMENTED' | 'ACCEPTED' | 'ERROR' | 'METHOD_NOT_ALLOWED' | 'CREATED'
      - `content` Content
        - `data` string, byte
        - `contentType` string
        - `coapContentFormat` integer
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `deviceMetadataUpdatePending` DeviceMetadataUpdatePending
      - `deviceId` string
      - `shadowSynchronization` 'UNSET' | 'ENABLED' | 'DISABLED'
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64
    - `deviceMetadataUpdated` DeviceMetadataUpdated
      - `deviceId` string
      - `status` 'OFFLINE' | 'ONLINE'
      - `shadowSynchronization` 'UNSET' | 'ENABLED' | 'DISABLED'
      - `auditContext` AuditContext
        - `userId` string
        - `correlationId` string
      - `eventMetadata` EventMetadata
        - `version` string, uint64
        - `timestamp` string, int64
        - `connectionId` string
        - `sequence` string, uint64

## Other responses

- `400` — Bad Request
- `401` — Not authorized
- `403` — Forbidden
- `404` — Entity was not found.

## Changes

- **2021-07-27** `c9a91de82a9d` — 1 info
  - endpoint added
- **2020-04-11** `562192db9767` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/plgd-dev/apis/plgd-http-gateway/changes/api/v1/ws/events/post.md)

---

[API](https://skmtc.dev/plgd-dev/apis/plgd-http-gateway.md) · [All operations](https://skmtc.dev/plgd-dev/apis/plgd-http-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/plgd-dev/apis/plgd-http-gateway/revisions/daf228bd321e?raw)
