nbformat
The Jupyter Notebook format
Install
nbformat on PyPI
pip
pip install nbformatuv
uv add nbformatpoetry
poetry add nbformatPackage facts
| License | BSD 3-Clause License - Copyright (c) 2001-2015, IPython Development Team - Copyright (c) 2015-, Jupyter Development Team All rights reserved. Redistribution and use in source and binary forms, with… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — fastjsonschema, jsonschema, jupyter-core, traitlets |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: nbformat-5.11.0-py3-none-any.whl
Keywords: Interactive, Interpreter, Shell, Web
About nbformat
from the package's own PyPI description — quoted content, verbatim
nbformat: Jupyter Notebook Format
nbformat contains the reference implementation of the [Jupyter Notebook format],
and Python APIs for working with notebooks.
There is also a JSON Schema for nbformat versions >= 3.
Installation
From the command line:
pip install nbformat
Using a different json schema validator
We use fastjsonschema by default. To use jsonschema instead, set the environment variable NBFORMAT_VALIDATOR to the value jsonschema.
Python Version Support
This library supported Python 2.7 and Python 3.5+ for 4.x.x releases. With Python 2's end-of-life nbformat 5.x.x supported Python 3 only. Support for Python 3.x versions will be dropped when they are officially sunset by the python organization.
Contributing
Read CONTRIBUTING.md for guidelines on how to setup a local development environment and make code changes back to nbformat.
About the Jupyter Development Team
The Jupyter Development Team is the set of all contributors to the Jupyter project. This includes all of the Jupyter subprojects.
The...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
nbformat is the reference implementation of the Jupyter Notebook format, providing Python APIs to read, write, and validate notebook files against the official JSON schema.
Low friction installation with four lightweight runtime dependencies (fastjsonschema, jsonschema, jupyter-core, traitlets). Actively maintained with a release 7 days ago; last commit 2026-08-10 indicates ongoing development.
BSD 3-Clause License (permissive) permits commercial and private use with attribution and liability disclaimer. No restrictions on modification or distribution.
Usage
pip install nbformat
import nbformat
nb = nbformat.read('notebook.ipynb', as_version=4)
nbformat.validate(nb)
Requires Python 3.10 or later (nbformat 5.x dropped Python 2 and earlier 3.x versions).
Verdict: nbformat is a well-maintained, actively developed core Jupyter library with no known vulnerabilities, permissive licensing, and low install friction. It is the authoritative implementation for notebook format handling and is suitable for production use in notebook-processing workflows.
Needs verification
- Whether the environment variable NBFORMAT_VALIDATOR can be reliably set in containerized or restricted deployment environments.
- Performance characteristics when validating very large notebooks or batch-processing many files.
Similar packages
permissive · top 1,000 on PyPI
jupyter-server-terminalspermissive · top 1,000 on PyPI
nbclientpermissive · top 1,000 on PyPI
fastjsonschemapermissive · top 1,000 on PyPI
ipykernelpermissive · top 1,000 on PyPI
jupyter-serverpermissive · top 1,000 on PyPI
jupyter-corepermissive · top 1,000 on PyPI
jupyter-eventspermissive · top 1,000 on PyPI
notebookpermissive · top 1,000 on PyPI
jupyter-clientpermissive · top 1,000 on PyPI