# List Notification Events by Entity

`GET https://api.suger.cloud/org/{orgId}/notificationEvent/{entityType}/{entityId}`

List the notification events of the given organization and entity with pagination.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `entityType` | path | string | yes | Entity type, valid values are: PRODUCT, OFFER, ENTITLEMENT, INTEGRATION etc. |
| `entityId` | path | string | yes | Entity ID |
| `limit` | query | integer | no | List pagination size, default 1000, max value is 1000 |
| `offset` | query | integer | no | List pagination offset, default 0 |

## Responses

### 200 — OK

Content-Type: `application/json` · Schema: `ListNotificationEventsResponse`

**`ListNotificationEventsResponse`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `nextOffset` | integer | no | If it is nil, it means there is no more records. |
| `notificationEvents` | array<NotificationEvent> | no |  |
| `totalCount` | integer | no | Only available when the request is made with offset=0. |

**`NotificationEvent`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | NotificationEventAction | no |  |
| `ccContactIds` | array<string> | no | Cc contactIds that will receive this notification |
| `channels` | array<NotificationChannel> | no | Channels lists where this event is delivered, e.g., ["SLACK", "EMAIL"]. Empty + RequireAudit=true means audit-only: the event reaches the Activity timeline but no outbound channel. Delivery handlers MUST gate their Match on Channels for that contract to hold. |
| `contactEmails` | array<string> | no | Contact emails that will receive this notification |
| `contactIds` | array<string> | no | ContactIds that will receive this notification |
| `createdBy` | LastModifiedBy | no |  |
| `createdBySource` | CreatedBySource | no |  |
| `customFields` | object | no | Custom fields of the notification event. |
| `entityID` | string | no |  |
| `entityName` | string | no | The name of the entity. |
| `entityStatus` | string | no |  |
| `entityType` | EntityType | no |  |
| `eventID` | string | no | notification event id. |
| `eventStatus` | NotificationEventStatus | no |  |
| `info` | object | no | Additional info of the notification event. |
| `isActionItem` | boolean | no | If this notification event is an action item. |
| `lastUpdateTime` | string | no | timestamp of the event when it is updated. |
| `message` | string | no | The message of the notification event such as email body, action item description. |
| `organizationID` | string | no | suger organization id. |
| `partner` | Partner | no |  |
| `priority` | AuditingEventPriority | no |  |
| `requireAudit` | boolean | no | If this notification event is an auditing event and need to store in DB. |
| `timestamp` | string | no | timestamp of the event when it is scheduled or created. |
| `title` | string | no | The title of the notification event such as email subject, action item title. |
| `trackEvents` | array<TrackEvent> | no | The track events of the notification event. |
| `version` | integer | no | Version identifies the schema version of this envelope. Consumers reject unknown versions (leave for redelivery to DLQ) so a future shape change doesn't silently poison old consumers. Missing/0 → v1 (default). |

**`LastModifiedBy`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | no | The email of the creator. |
| `entityId` | string | no | The ID of the creator. |
| `entityType` | EntityType | no |  |
| `name` | string | no | The name of the creator. |

**`TrackEvent`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | TrackEventActionType | no |  |
| `contactId` | string | no | The ID of the contact who triggered the track event if applicable. |
| `timestamp` | string | no | timestamp of the track event happened. |

### 400 — Bad request error

Content-Type: `application/json`

### 500 — Internal server error

Content-Type: `application/json`

## Example

_Generated from this operation's schema. Values are placeholders — substitute your own ids, and set `SUGER_TOKEN` to a bearer token from the [OAuth client-credentials exchange](https://doc.suger.io/get-started/oauth-app/)._

### Request

```bash
curl -X GET 'https://api.suger.cloud/org/{orgId}/notificationEvent/{entityType}/{entityId}' \
  -H 'Authorization: Bearer $SUGER_TOKEN'
```

### Response — 200

```json
{
  "nextOffset": 1,
  "notificationEvents": [
    {
      "action": "",
      "ccContactIds": [
        "01H0000000000000000000"
      ],
      "channels": [
        "EMAIL"
      ],
      "contactEmails": [
        "buyer@example.com"
      ],
      "contactIds": [
        "01H0000000000000000000"
      ],
      "createdBy": {
        "email": "buyer@example.com",
        "entityId": "01H0000000000000000000",
        "entityType": "",
        "name": "Acme Corp"
      },
      "createdBySource": "",
      "customFields": {},
      "entityID": "01H0000000000000000000",
      "entityName": "Acme Corp",
      "entityStatus": "string",
      "entityType": ""
    }
  ],
  "totalCount": 1
}
```

### Error — 400

```json
"string"
```

---

Interactive API reference: https://doc.suger.io/api/
