# Bookmarks Html To Markdown — REST API endpoint `bookmarks-html-to-markdown`

Convert a browser bookmarks.html export (the Netscape bookmark format Chrome, Firefox, Edge and Safari write) into Markdown for Notion, Obsidian or a README. In the default "headings" style each folder becomes an ATX heading nested by depth (## for a top-level folder, ### below it, up to ######) and each bookmark a "- [title](url)" line under its folder, in the order the export lists them; "list" style writes one flat bullet list with the folder path before each link. The document starts with a # heading named after the export (or the title argument), and front_matter adds a YAML block with that title. A bookmark with no title is named after its host. Entities are decoded, Markdown characters in titles are escaped, favicon data is never written, and no link is fetched. An ordinary web page is refused: it has links but no bookmark folder structure.

- Category: text
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, API key for tools/call, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/bookmarks-html-to-markdown/execute (API key, 60 req/min per IP)
- API key: Running a tool needs an API key. Keys are not for sale yet: ask for early access. Without a key, a tool call answers HTTP 402 Payment Required with the error code PAYMENT_REQUIRED. The catalog and the schemas stay open without a key. https://findutils.com/api/#api-keys
- Reference page: https://findutils.com/api/bookmarks-html-to-markdown/
- Same tool on the other surface: https://findutils.com/mcp/bookmarks-html-to-markdown/

## Call the endpoint (verified example)

```bash
curl -X POST https://api.findutils.com/api/tools/bookmarks-html-to-markdown/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks</H1>\n<DL><p>\n    <DT><H3 ADD_DATE=\"1600000000\">Work</H3>\n    <DL><p>\n        <DT><A HREF=\"https://example.com/\" ADD_DATE=\"1600000000\">Example</A>\n    </DL><p>\n</DL><p>\n"
  }'

# Parameter schema (no key needed)
curl https://api.findutils.com/api/tools/bookmarks-html-to-markdown
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `input` | string | yes | The bookmarks.html file contents. |
| `style` | string (headings \| list) | no | "headings" (default): folders as nested headings with link lists under them. "list": one bullet list, each link prefixed with its folder path. Default: `"headings"`. |
| `include_dates` | boolean | no | Add "(added YYYY-MM-DD)" after a link when the export carries its ADD_DATE. Default false. Default: `false`. |
| `front_matter` | boolean | no | Start the file with a YAML front matter block holding the title. Default false. Default: `false`. |
| `include_empty_folders` | boolean | no | Headings style: also write a heading for a folder that holds no links. Default false. Default: `false`. |
| `title` | string | no | Document title. Default: the export's own <H1>, else "Bookmarks". |

Example arguments (verified):

```json
{
  "input": "<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks</H1>\n<DL><p>\n    <DT><H3 ADD_DATE=\"1600000000\">Work</H3>\n    <DL><p>\n        <DT><A HREF=\"https://example.com/\" ADD_DATE=\"1600000000\">Example</A>\n    </DL><p>\n</DL><p>\n"
}
```

OpenAPI 3.1 spec: https://findutils.com/api/openapi.json · Interactive docs: https://findutils.com/api/docs/

## Also an MCP tool

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/ --header "Authorization: Bearer YOUR_API_KEY"
```

Then ask the client to call `findutils:bookmarks_html_to_markdown`. Full MCP reference: https://findutils.com/mcp/bookmarks-html-to-markdown/

---
Full catalog: GET https://api.findutils.com/api/tools · https://findutils.com/api/ · https://findutils.com/llms.txt
