diff --git a/doc/api/errors.md b/doc/api/errors.md
index a03b1f6fc2572a..89bf8b044eb573 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -1108,6 +1108,14 @@ The JS execution context is not associated with a Node.js environment.
 This may occur when Node.js is used as an embedded library and some hooks
 for the JS engine are not set up properly.
 
+
+### `ERR_FAILED_IMPORT_ASSERTION`
+
+
+An import assertion has failed, preventing the specified module to be imported.
+
 
 ### `ERR_FALSY_VALUE_REJECTION`
 
@@ -1659,6 +1667,14 @@ for more information.
 
 An invalid HTTP token was supplied.
 
+
+### `ERR_INVALID_IMPORT_ASSERTION`
+
+
+An import assertion is not supported by this version of Node.js.
+
 
 ### `ERR_INVALID_IP_ADDRESS`
 
diff --git a/doc/api/esm.md b/doc/api/esm.md
index 9d7792441ca6fd..15158dcaca3031 100644
--- a/doc/api/esm.md
+++ b/doc/api/esm.md
@@ -5,6 +5,9 @@
 
+
+The [Import Assertions proposal][] adds an inline syntax for module import
+statements to pass on more information alongside the module specifier.
+
+```js
+import json from './foo.json' assert { type: "json" };
+await import('foo.json', { assert: { type: "json" } });
+```
+
+Node.js supports the following `type` values:
+
+| `type`   | Resolves to      |
+| -------- | ---------------- |
+| `"json"` | [JSON modules][] |
+
 ## Builtin modules
 
 [Core modules][] provide named exports of their public API. A
@@ -516,9 +538,8 @@ same path.
 
 Assuming an `index.mjs` with
 
-
 ```js
-import packageConfig from './package.json';
+import packageConfig from './package.json' assert { type: 'json' };
 ```
 
 The `--experimental-json-modules` flag is needed for the module
@@ -1367,6 +1388,8 @@ success!
 [Dynamic `import()`]: https://wiki.developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports
 [ECMAScript Top-Level `await` proposal]: https://github.com/tc39/proposal-top-level-await/
 [ES Module Integration Proposal for Web Assembly]: https://github.com/webassembly/esm-integration
+[Import Assertions proposal]: https://github.com/tc39/proposal-import-assertions
+[JSON modules]: #json-modules
 [Node.js Module Resolution Algorithm]: #resolver-algorithm-specification
 [Terminology]: #terminology
 [URL]: https://url.spec.whatwg.org/
diff --git a/doc/api/vm.md b/doc/api/vm.md
index cff8c9b6e23bf3..2929dffa0d435f 100644
--- a/doc/api/vm.md
+++ b/doc/api/vm.md
@@ -54,6 +54,10 @@ executed in specific contexts.
 
 
 * `code` {string} JavaScript Module code to parse
 * `options`
@@ -667,6 +680,8 @@ defined in the ECMAScript specification.
     `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][].
     * `specifier` {string} specifier passed to `import()`
     * `module` {vm.Module}
+    * `import_assertions` {Object} The `"assert"` value passed to the
+      `optionExpression` optional parameter.
     * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is
       recommended in order to take advantage of error tracking, and to avoid
       issues with namespaces that contain `then` function exports.
@@ -852,6 +867,10 @@ const vm = require('vm');