# `update_bookmarks` Replace PDF bookmarks from a YAML or JSON file ## Usage > pdftl `` `update_bookmarks` `` `output` `` ## Details Replaces the document's Table of Contents (bookmarks) entirely using a specified YAML or JSON file, or YAML data on stdin if `bookmarks_file` is set to "`-`". This operation consumes the structured format generated by the `dump_bookmarks` command. It applies strict validation to prevent broken PDFs: it validates page boundaries, catches typos in property names, and ensures the hierarchical tree structure is sound. ### Important Rules & Behaviors * **Full Replacement:** This command does not merge or append bookmarks. It completely overwrites the existing Table of Contents with the contents of your file. * **Page Indexing:** Target `page` numbers must be 1-indexed (e.g., `page: 1` points to the very first physical page of the document). * **Boundary Checking:** If a bookmark points to a page number that exceeds the total number of pages in the PDF, the operation will fail safely to prevent document corruption. * **Strict Validation:** Unrecognized properties (such as a typoed `pagee` instead of `page`) will trigger an error rather than being silently ignored. This ensures your routing logic always behaves as expected. ### Clearing Bookmarks If you want to completely remove the Table of Contents from a PDF, you can provide a file containing just an empty list. * **YAML file content:** `[]` * **JSON file content:** `[]` ### Dependency note Loading YAML files requires the `pyyaml` library. If it is not installed, you can install it via `pip install pdftl[yaml-bookmarks]`, or simply use `.json` files natively. ## Examples > Apply a YAML bookmarks file ``` pdftl in.pdf update_bookmarks bookmarks.yaml output modified.pdf ``` > Apply a JSON bookmarks file ``` pdftl in.pdf update_bookmarks bookmarks.json output modified.pdf ``` **Tags**: info, metadata, bookmarks *Source: pdftl.operations.update_bookmarks* *Read online: [https://pdftl.readthedocs.io/en/stable/operations/update_bookmarks.html](https://pdftl.readthedocs.io/en/stable/operations/update_bookmarks.html)* *Type: Operation*