# Downloading notebook has wrong "mode"

**URL:** <https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825>\
**Category:** Feedback\
**Created:** [September 8, 2026, 10:27am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825 "2026-09-08T10:27:13Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![GordonSmith](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/gordonsmith/32/6902_2.png) [@GordonSmith](https://talk.observablehq.com/u/GordonSmith)\
**Post date:** [September 8, 2026, 10:27am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/1 "2026-09-08T10:27:13Z")

</div>

Downloading a notebook via [api.observablehq.com](http://api.observablehq.com) (i.e. ‘[https://api.observablehq.com/document/@gordonsmith/graphviz-c-graph-api](https://api.observablehq.com/document/@gordonsmith/graphviz-c-graph-api)’) has incorrect mode for “dot” cells.

For example:

```auto
{
  id: 11,
  value: "${sa.toDot()}",
  pinned: true,
  mode: "js",
  data: null,
  name: null,
}

```

Should be:

```auto
{
  id: 11,
  value: "${sa.toDot()}",
  pinned: true,
  mode: "dot",
  data: null,
  name: null,
}

```

---

<div class="post-metadata">

**Author:** ![tophtucker](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/tophtucker/32/4781_2.png) [@tophtucker](https://talk.observablehq.com/u/tophtucker)\
**Post date:** [September 8, 2026, 8:56pm UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/2 "2026-09-08T20:56:23Z")

</div>

Yup, the [api.observablehq.com](http://api.observablehq.com) endpoints only handle 1.0 notebooks properly, and `dot` is a new cell mode. Proper export and programmatic fetching of 2.0 notebooks is still forthcoming.

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [September 9, 2026, 3:03am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/3 "2026-09-09T03:03:12Z")

</div>

Yep, in the near future we’ll offer the ability to download notebooks as HTML using the Notebook Kit file format, along with any attached files (and likely imported notebooks).

James King has an unofficial browser extension if you want to try it in the meantime: [@jamesking.io on Bluesky](https://bsky.app/profile/jamesking.io/post/3ms74eltuf22c)

---

<div class="post-metadata">

**Author:** ![GordonSmith](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/gordonsmith/32/6902_2.png) [@GordonSmith](https://talk.observablehq.com/u/GordonSmith)\
**Post date:** [September 9, 2026, 9:47am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/4 "2026-09-09T09:47:35Z")

</div>

Would be great if you also supported a Notebook HTML upload as well… (Bonus marks if you exposed the download/upload via a private git server endpoint)

---

<div class="post-metadata">

**Author:** ![neocarto](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/neocarto/32/6554_2.png) [@neocarto](https://talk.observablehq.com/u/neocarto)\
**Post date:** [October 5, 2026, 9:55am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/5 "2026-10-05T09:55:49Z")

</div>

Do you know when this feature will be available?

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [October 6, 2026, 3:38am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/6 "2026-10-06T03:38:03Z")

</div>

No, I can’t give you a specific date, sorry. Hopefully soon!

---

<div class="post-metadata">

**Author:** ![shadoof](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/shadoof/32/4231_2.png) [@shadoof](https://talk.observablehq.com/u/shadoof)\
**Post date:** [October 11, 2026, 2:39pm UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/7 "2026-10-11T14:39:56Z")

</div>

Any news on the download notebooks in new open format feature?

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [October 11, 2026, 3:19pm UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/8 "2026-10-11T15:19:37Z")

</div>

No, sorry. But you can see what we are working on here (and it’s on the list): [https://observablehq.com/@observablehq/upcoming-features-fall-2026](https://observablehq.com/@observablehq/upcoming-features-fall-2026)

---

<div class="post-metadata">

**Author:** ![shadoof](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/shadoof/32/4231_2.png) [@shadoof](https://talk.observablehq.com/u/shadoof)\
**Post date:** [October 11, 2026, 9:09pm UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/9 "2026-10-11T21:09:55Z")

</div>

Following in the footsteps and coding of James King (above), I made a [Converter](https://obsetup.programmatology.com/exportnb.html) page that describes how to save the HTML of a public Observable 2.0 notebook and then allows you, in the browser, to convert what you saved to the open html format and save that. (And, btw, my basic students’ instructions for setting up Observable development have moved to [obsetup.programmatology.com](http://obsetup.programmatology.com))

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [October 12, 2026, 12:20am UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/10 "2026-10-12T00:20:14Z")

</div>

I’ve added **Export HTML** and **Export JavaScript** buttons to the Sharing panel. They don’t do everything I want yet (specifically in regards to automatically downloading attached files and imported notebooks, too), but this should make it easier to get started with either local development using Notebook Kit and/or Desktop, and with self-hosted embeds.

---

<div class="post-metadata">

**Author:** ![shadoof](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/shadoof/32/4231_2.png) [@shadoof](https://talk.observablehq.com/u/shadoof)\
**Post date:** [October 12, 2026, 7:40pm UTC](https://talk.observablehq.com/t/downloading-notebook-has-wrong-mode/10825/11 "2026-10-12T19:40:45Z")

</div>

Thank you! For many of the basic use cases with which my students and I are working, this will be enough. I’ll amend my (basic) instructions.

(And, as an aside, it is interesting to see how the JavaScript export handles the cell IDs. I’ll still be waiting anxiously to find out how you decide to handle the naming of Markdown and HTML cells and how this integrates with code in .ts/.js cells.)
