# Nylas Node.js SDK v8.3.0

Source: https://developer.nylas.com/docs/changelogs/2026-06-17-nylas-nodejs-v8-3-0/

These notes cover v8.3.0 and the changes shipped in v8.2.0.

## Added

- **`htmlAsMarkdown` on `CleanMessagesRequest`**: `nylas.messages.clean()` now accepts an optional `htmlAsMarkdown` boolean (beta). When set to `true`, the cleaned `conversation` field is returned as Markdown instead of plain text or HTML. It defaults to `false`, and it can't be `true` while `imagesAsMarkdown` is `false`. This brings the SDK type in line with the `html_as_markdown` parameter already supported by [`PUT /v3/grants/{grant_id}/messages/clean`](/docs/reference/api/messages/clean-messages/).
- **Workspaces API**: a new `nylas.workspaces` resource covers `list`, `find`, `create`, `update` (PATCH), and `destroy` for [Workspaces](/docs/reference/api/workspaces/). It also adds `autoGroup()` and `manualAssign()` for grouping grants by domain, with support for the `invalidAlso`, `default`, `policyId`, and `ruleIds` parameters.
- **Agent Account Lists API**: a new `nylas.lists` resource for the [Lists](/docs/reference/api/lists/) that rules reference with the `in_list` operator. Create a list with a `name`, optional `description`, and an immutable `type`, then use `list`, `find`, `update`, `destroy`, `listItems()`, `addItems()`, and `removeItems()` to manage its entries.
- **Manage Domains API**: a new `nylas.domains` resource for `list`, `find`, `create`, `update`, and `destroy` against [`/v3/admin/domains`](/docs/reference/api/manage-domains/), plus `info()` and `verify()` for domain verification. Requests use `ServiceAccountSigner` for signing, with bearer-auth suppression and canonical signed wire bodies.
- **`icalUid` event filter**: `ListEventQueryParams` now accepts an `icalUid` parameter so you can look up events by their iCalendar UID.

## Fixed

- **`Applications` field naming and updates**: renamed `redirectUris` to `callbackUris` to match the v3 wire contract, widened `region` and `environment` to `string`, added hosted-auth and IdP public fields, and implemented [`applications.update()`](/docs/reference/api/applications/) (PATCH). The update method now accepts write-only `additionalSettings` and preserves existing callback URIs by their IDs.
- **`RedirectUris` corrections**: `update()` now uses PATCH (was PUT), `destroy()` returns the correct type, `platform` is optional with a typed `RedirectUriPlatform` enum, and a `deletedAt` field was added.
- **`Policies` limits**: `PolicyLimits` now exposes `limitCountDailyMessageReceived` and `limitCountDailyEmailSent` on [Policies](/docs/reference/api/policies/), replacing a non-existent per-grant field.
- **`Rules` evaluation and list response**: `RuleEvaluation.messageId` is now omitted when absent (rather than nullable), applied actions surface `blockedByEvaluationError`, and the `GET /v3/rules` response is normalized back to the flat `{ data, nextCursor }` shape. See [Rules](/docs/reference/api/rules/).
- **Field-set reduction in `threads.find()`**: `queryParams` are now forwarded on `threads.find()`, so you can pass `select` to trim the response payload on single-thread fetches.