json-schema-for-humans
Generate static HTML documentation from JSON schemas
What it is and what it does
json-schema-for-humans is a documentation generator that reads JSON Schema files and produces static HTML or Markdown pages describing the schema structure. It's built on Jinja2 templating with support for JSON Schema Draft-07 features including types, formats, constraints, combining schemas (oneOf, allOf, anyOf, not), and references—both internal and external (local files or URLs). The tool works both as a CLI command (generate-schema-doc) and as a Python library with methods for generating from files, filenames, or file objects.
The package is useful when you need human-readable schema documentation that can be hosted statically or embedded in existing documentation systems. It handles multiple input formats (JSON and YAML), supports different output templates, and generates anchor links for deep linking to specific schema sections. Since the output is static HTML or Markdown, it's faster to load and easier to host than dynamic documentation systems.
Use it for:
- Generate API documentation from JSON Schema files for developer reference.
- Create schema documentation in Markdown for inclusion in GitHub repositories or wikis.
- Build static HTML schema docs to host on documentation sites without server-side processing.
- Document configuration file schemas for command-line tools or applications.
- Generate multiple schema docs in batch from a directory of schema files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates static HTML or Markdown documentation pages from JSON Schema files, supporting JSON Schema Draft-07 with multiple templates and reference resolution.
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and solves a clear problem—turning JSON schemas into readable documentation. It's mature (Development Status 6), supports current Python versions, and carries a permissive license. Install it if you need to document JSON schemas in static HTML or Markdown format.
Install
json-schema-for-humans on PyPI
pip
pip install json-schema-for-humansuv
uv add json-schema-for-humanspoetry
poetry add json-schema-for-humansInstalling json-schema-for-humans
Before you install
Low install friction with a pure Python wheel and eight common dependencies (Jinja2, PyYAML, Pygments, click, dataclasses-json, markdown2, pytz, requests). Actively maintained with recent commits and a stable release cadence.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must include a copy of the license and note any modifications.
Quickstart
pip install json-schema-for-humans
from json_schema_for_humans.generate import generate_from_filename
from json_schema_for_humans.generation_configuration import GenerationConfiguration
config = GenerationConfiguration(copy_css=False, expand_buttons=True)
generate_from_filename("my_schema.json", "schema_doc.html", config=config)
Requires Python 3.9 or later (supports up to 3.14).
Verify before relying
- Performance characteristics with very large or deeply nested schemas.
- Whether circular reference handling covers all edge cases in practice.
- Accessibility compliance of generated HTML output.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — Jinja2, PyYAML, Pygments, click, dataclasses-json, markdown2, pytz, requests |
| Maintenance | actively maintained — 266 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,072,062/month — #3,322 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: json_schema_for_humans-1.5.1-py3-none-any.whl
Tags
More Documentation packages
Docutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
SphinxSphinx generates professional documentation…
permissive · top 1,000 on PyPI
griffeGriffe extracts the complete structure and…
permissive · top 1,000 on PyPI
sphinxcontrib-serializinghtmlA Sphinx extension that outputs documentation…
permissive · top 1,000 on PyPI
alabasterAlabaster is a clean, responsive Sphinx theme…
permissive · top 1,000 on PyPI
sphinxcontrib-htmlhelpA Sphinx extension that generates HTML help…
permissive · top 1,000 on PyPI
jsonschema2mdConverts JSON Schema files to human-readable…
permissive · top 5,000 on PyPI
marshmallow-jsonschemaConverts marshmallow schemas into JSON Schema…
permissive · top 5,000 on PyPI
mkdocs-render-swagger-pluginRenders Swagger and OpenAPI schemas as…
permissive · top 15,000 on PyPI
gensonGenSON generates JSON Schema documents from…
permissive · top 5,000 on PyPI
jsonschema-pydantic-converterConverts JSON Schema definitions to Pydantic v2…
permissive · top 15,000 on PyPI
jsonschema-specificationsProvides JSON Schema metaschemas, vocabularies,…
permissive · top 100 on PyPI
json-ref-dictProvides a dict-like interface to JSONSchema…
permissive · top 15,000 on PyPI
check-jsonschemaA command-line tool and pre-commit hook that…
permissive · top 5,000 on PyPI
essentials-openapiGenerates OpenAPI v2 and v3 documentation in…
permissive · top 15,000 on PyPI
jschonValidates JSON data against JSON Schema (drafts…
permissive · top 15,000 on PyPI