Publish a ChatGPT conversation in one curl call
Quicky.Page is the publishing primitive for AI-generated web content. Any script — including the one running in your terminal right now — can publish a single shareable page in one HTTP call. No accounts, no API keys, no SDK.
Here's the canonical recipe for turning a ChatGPT or Claude conversation into a public URL:
The call
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "Why TCP slow start exists",
"content": "**You:** Explain TCP slow start in 3 short paragraphs.\n\n**Assistant:** TCP slow start is a congestion-control mechanism that prevents a new connection from immediately flooding the network..."
}'Response:
{
"id": "abc123",
"url": "https://quicky.page/abc123",
"editKey": "..."
}What's happening
The content field accepts markdown. The server converts it to qp.v1 blocks — the closed block vocabulary that Quicky.Page renders — and writes the page. You get a public URL back synchronously.
The bold-speaker-label convention (**You:** and **Assistant:** on their own lines) reads cleanly because the markdown converter folds the markers into <strong> runs around the speaker label. Nothing special, just markdown working the way markdown works.
Updating the page
The response includes an editKey. Pass it back to update the same URL in place:
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{ "id": "abc123", "editKey": "...", "content": "# New title\n\nUpdated body." }'Same URL, replaced content. There is no diff, no history, no rollback — Quicky.Page is intentionally not a CMS.
What you can't do
- You can't generate a multi-page site. One call, one page, one URL.
- You can't run JavaScript. The renderer is read-only.
- You can't embed arbitrary iframes. The embed allowlist is five providers (YouTube / Twitter / Figma / CodePen / sandboxed-iframe).
- You can't host arbitrary files. Images must be URLs to existing files.
Those constraints are what make it safe to expose this endpoint with no auth: a malicious caller can produce ugly text but not a working exploit.
You're reading this page on Quicky.Page. It was published with the curl call above.