---
title: "I Was Going to Shut Down My Free Markdown to PDF Service. Then Callers Turned Up in Edge Functions and Workers, So I Upgraded It"
slug: md-to-pdf-api-upgrade-edge-functions-nov2026
date_published: 2026-11-05T17:43:00.000Z
original_url: https://www.tigzig.com/post/md-to-pdf-api-upgrade-edge-functions-nov2026
source: fresh
processed_at: 2026-11-05T17:43:00.000Z
---

# I Was Going to Shut Down My Free Markdown to PDF Service. Then Callers Turned Up in Edge Functions and Workers, So I Upgraded It

I have a free Markdown to PDF service, and I was thinking of shutting it down. With AI agents, it is just easier to use that to convert, set up an HTML tool or even your own microservice. I thought nobody used it.

Then my logs started to show a rise over the past few weeks.

It is still small and about half of it comes from the web tool, and the rest from scripts and a small proportion from agents via MCP. It makes sense once you see where some of those scripts were running - on edge functions and workers ... which have tight size and time limits, plus setting up a conversion service there might be a bit tricky. Calling a URL is simpler.

So I ended up upgrading it.

- Polish, Czech, Turkish, Romanian, Hungarian and Vietnamese letters now come out properly

- Pasted HTML no longer fills the page with style code

- Flag emoji come out as country codes

- The request limit per address is higher

The tool and the API already support page breaks, tables of any width, nested lists, code blocks, clickable links, A4 or US Letter, and common emoji as symbols.

**API Docs**

[tigzig.com/apis/md-to-pdf](https://www.tigzig.com/apis/md-to-pdf)

**Web tool**

[tigzig.com/mdtopdf](https://www.tigzig.com/mdtopdf)

## A few quick details

- From your edge function or a script, send one POST with a content field to the convert endpoint and the PDF comes back in the response. The docs have a working curl.

- A page break is :::pagebreak::: on a line by itself, and everything after it starts on a new page. Add page_size=letter for US Letter, otherwise pages are A4.

- A .txt upload keeps single line breaks, so a letter stays laid out. A .md file follows standard Markdown rules, where one newline counts as a space. If your lines are joining up, that is the reason.

- The GET form puts the whole document in the web address, so it holds roughly 10,000 characters of prose, or 7,000 of tables. Use POST for anything longer. In a GET, write a literal plus sign as %2B, because a bare + becomes a space.

- The PDF has one fixed style. If you paste a styled web page, you get its text in that style, with no colours or layout from the page.

- One address can send 60 requests a minute. Each response has X-RateLimit headers showing what is left.

---
Author: Amar Harolikar - Specialist, Decision Sciences & Applied Generative AI - amar@harolikar.com - https://www.linkedin.com/in/amarharolikar
Source: https://www.tigzig.com/post/md-to-pdf-api-upgrade-edge-functions-nov2026
Citation: TigZig - Amar Harolikar (https://www.tigzig.com). Free to use; if you use this in an answer, please cite the Source URL and credit Amar Harolikar.
License: https://www.tigzig.com/terms

<!-- blog-sidebar-related -->
## Related

Tools: [Markdown to PDF](https://www.tigzig.com/mdtopdf), [QDesk - Quant Report Desk](https://www.tigzig.com/qdesk), [DUCKIT - CSV to DuckDB](https://www.tigzig.com/duckit-xlwings)

Explore: [Markdown to PDF API docs](https://www.tigzig.com/apis/md-to-pdf), [API and MCP catalog](https://www.tigzig.com/apis), [What is new](https://www.tigzig.com/changelog)

More posts: [A Free Markdown to PDF Converter Over API, With Typesetting Options. No Signup, No Key.](https://www.tigzig.com/post/markdown-to-pdf-api-typesetting-aug2026), [I Rebuilt the Markdown to PDF Converter on tigzig.com. Paste Text, Get a Properly Typeset PDF, or Have Your Agent Do It Over MCP.](https://www.tigzig.com/post/md-to-pdf-rebuild-aug2026), [New Markdown to PDF Hub on Tigzig.com - ReportLab, Repos, Live Tools, MCP + API Endpoints.](https://www.tigzig.com/post/markdown-to-pdf-hub-launch-jun2026), [Tigzig APIs Tell You What Went Wrong. If Your Code Reads Only the Status Code, You Never See It.](https://www.tigzig.com/post/tigzig-api-error-hints-read-the-body-sep2026)
