---
title: "CSV to Bookmarks HTML"
description: "Turn a spreadsheet of links into a bookmarks.html file that Chrome, Firefox, Edge and Safari import. Folder paths become real folders. Nothing is uploaded."
url: https://findutils.com/convert/csv-to-bookmarks-html/
category: convert
---

# CSV to Bookmarks HTML

Turn a spreadsheet of links into a bookmarks.html file that Chrome, Firefox, Edge and Safari import. Folder paths become real folders. Nothing is uploaded.

**Use this tool:** [CSV to Bookmarks HTML](https://findutils.com/convert/csv-to-bookmarks-html/)

## Programmatic access

- REST id `csv-to-bookmarks-html`: POST https://api.findutils.com/api/tools/csv-to-bookmarks-html/execute (reference: https://findutils.com/api/csv-to-bookmarks-html/)
- MCP tool `csv_to_bookmarks_html` on https://mcp.findutils.com (reference: https://findutils.com/mcp/csv-to-bookmarks-html/)

## Why Use Our CSV to Bookmarks Converter?

Cleaning a bookmark collection is easy in a spreadsheet and impossible in a browser. Sorting, de-duplicating, bulk-renaming and deciding what to drop are all one-click operations in Sheets and all manual drudgery in a bookmark manager. The problem has always been getting the result back: browsers import bookmarks.html and nothing else. Recreating forty folders and three hundred links by hand undoes the point of cleaning them. This page closes that loop. Give it a column of addresses, optionally a title and a folder path, and it writes the exact file format every browser reads, folders and all.

## Frequently Asked Questions

### Which columns do I need?

One: the address. Name it url, href, link or address and it is found automatically. A title column named title, name or label and a folder column named folder, folder_path or path are optional but usually worth having. An add_date column is read when it holds an ISO date or a unix timestamp. Matching ignores case, spaces and punctuation, so folder_path and Folder Path are the same name.

### How do I import the file?

Chrome and Edge: open the bookmark manager with Ctrl+Shift+O or Cmd+Option+B, then the three-dot menu, then Import bookmarks. Firefox: Ctrl+Shift+O, then Import and Backup, then Import Bookmarks from HTML. Safari: File, then Import From, then Bookmarks HTML File. The links land under the root folder you set.

### How do I create nested folders?

Write the path in one cell with a slash between the levels: Work / Clients / Acme builds three levels. A path with slash-space is split on that; a path with a bare slash and no spaces is split on the slash. That rule exists so a folder actually called AI/ML stays one folder, which a plain slash split would turn into two.

### What is the root folder for?

It wraps every link in one folder so the import lands in one place instead of scattering links across the bookmarks bar, which is much easier to review and to undo. It defaults to Imported. Clear the field to place the links at the top level of the import instead.

### What happens to a row with a bad address?

It is skipped and named under the output by its row number, counting the header as row 1, along with the value that could not be read. Every other row is still in the file. Empty rows are counted separately and are not treated as an error.

### Does a bare domain work?

Yes. A value like example.com or example.com/page gains https:// so the browser treats it as a link rather than a search. Anything that already has a scheme is kept byte for byte, including javascript: bookmarklets, file:// links to local documents and intranet hostnames.

### Can I set the date a bookmark was added?

Yes, with an add_date column. An ISO date such as 2020-09-13T12:26:40Z or a plain 2020-09-13 both work, and so does a raw unix timestamp. When the value cannot be read as a date the attribute is left out entirely rather than filled with a wrong one, and the browser uses the import time.

### Will importing create duplicates?

Browsers do not merge on import; they add. Importing the same file twice gives two copies of every folder. That is the browser's behaviour rather than the file's, so import once, check the result, and delete the folder if you need to start again. A root folder makes that deletion one action.

### Does this sync to my browser account?

No, and nothing here could. The file is created in your browser and you import it yourself. Whether the imported bookmarks then sync depends on your browser's own account settings, which this page never touches.

### Is my spreadsheet uploaded?

No. The rows are read and the file is built in your browser, and no request carries them. A link list says a lot about what somebody reads and works on. The same converter is on the FindUtils API as csv_to_bookmarks_html for scripted use.

## Related Tools

- [Bookmarks HTML to CSV](https://findutils.com/convert/bookmarks-html-to-csv/)
- [Dedupe Bookmarks](https://findutils.com/convert/dedupe-bookmarks/)
- [VCF to CSV](https://findutils.com/convert/vcf-to-csv/)
- [CSV Viewer](https://findutils.com/convert/csv-viewer/)
- [CSV to Excel](https://findutils.com/convert/csv-to-excel/)
- [CSV to ICS](https://findutils.com/convert/csv-to-ics/)
