# Notifications (Coinbax Core API)

> Source: https://developers.coinbax.com/reference/coinbax-core/notifications/
> Staging base URL: https://core-staging.coinbax.com/api/v1

User notifications

## List notifications

`GET /notifications`

- Auth: Bearer token
- Operation ID: `listNotifications`

Retrieve notifications for the authenticated user.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `page` | query | integer | no |  |
| `limit` | query | integer | no |  |
| `unread` | query | boolean | no | Only return unread notifications |

### Example request

```bash
curl https://core-staging.coinbax.com/api/v1/notifications \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** Notifications retrieved successfully

```json
{
  "success": true,
  "data": {
    "notifications": [
      {
        "id": "notif-uuid-1",
        "userId": "user-uuid",
        "type": "transaction",
        "priority": "normal",
        "title": "New Transaction",
        "message": "You received 100 USDC",
        "isRead": false,
        "createdAt": "2026-02-24T10:00:00.000Z"
      }
    ],
    "unreadCount": 5
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 50,
      "totalPages": 3
    }
  }
}
```

**401** Unauthorized - missing or invalid authentication

**500** Internal server error

---

## Delete all notifications

`DELETE /notifications`

- Auth: Bearer token
- Operation ID: `deleteAllNotifications`

Delete all notifications for the authenticated user.

### Example request

```bash
curl -X DELETE https://core-staging.coinbax.com/api/v1/notifications \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** All notifications deleted

```json
{
  "success": true,
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": {
    "message": "All notifications deleted successfully",
    "count": 25
  }
}
```

**401** Unauthorized - missing or invalid authentication

**500** Internal server error

---

## Mark notification as read

`PATCH /notifications/{id}/read`

- Auth: Bearer token
- Operation ID: `markNotificationAsRead`

Mark a specific notification as read.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes |  |

### Example request

```bash
curl -X PATCH https://core-staging.coinbax.com/api/v1/notifications/<id>/read \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** Notification marked as read

```json
{
  "success": true,
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": {
    "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
    "userId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
    "type": "info",
    "priority": "normal",
    "title": "New Transaction",
    "message": "You have a new incoming transaction",
    "isRead": false,
    "readAt": "2026-01-15T12:00:00.000Z",
    "metadata": {},
    "createdAt": "2026-01-15T12:00:00.000Z",
    "updatedAt": "2026-01-15T12:00:00.000Z"
  }
}
```

**401** Unauthorized - missing or invalid authentication

**404** Resource not found

**500** Internal server error

---

## Mark all notifications as read

`POST /notifications/mark-all-read`

- Auth: Bearer token
- Operation ID: `markAllNotificationsAsRead`

Mark all notifications as read for the authenticated user.

### Example request

```bash
curl -X POST https://core-staging.coinbax.com/api/v1/notifications/mark-all-read \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** All notifications marked as read

```json
{
  "success": true,
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": {
    "message": "All notifications marked as read",
    "count": 10
  }
}
```

**401** Unauthorized - missing or invalid authentication

**500** Internal server error

---

## Get notification

`GET /notifications/{id}`

- Auth: Bearer token
- Operation ID: `getNotification`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes |  |

### Example request

```bash
curl https://core-staging.coinbax.com/api/v1/notifications/<id> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** Retrieved

---

## Get preferences

`GET /notifications/preferences`

- Auth: Bearer token
- Operation ID: `getNotificationPreferences`

### Example request

```bash
curl https://core-staging.coinbax.com/api/v1/notifications/preferences \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** Retrieved

---

## Update preferences

`PATCH /notifications/preferences`

- Auth: Bearer token
- Operation ID: `updateNotificationPreferences`

### Example request

```bash
curl -X PATCH https://core-staging.coinbax.com/api/v1/notifications/preferences \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** Updated
