Observable recently launched a feature that will allow you to share notebooks without using 'publish unlisted'. Here's the documentation on the feature:
https://observablehq.com/@observablehq/api-keys Using it is simple: just select "embed" from any named cell, and the modal interface will help you auto-create an API key.