Share a ChatGPT conversation as a web page
Copy a ChatGPT conversation, paste it as markdown into one curl call, and get a clean public web page at a shareable URL. No login, no screenshots, no account — the page reads like a formatted transcript anyone can open with the link.
The recipe
Format each turn with a bold speaker label (**You:**, **ChatGPT:**) and separate exchanges with a --- divider. Then POST it:
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "How transformers work — a ChatGPT explainer",
"content": "**You:** Explain how a transformer model works, simply.\n\n**ChatGPT:** A transformer reads all the words at once and uses *attention* to decide which words matter to each other...\n\n---\n\n**You:** What is attention, concretely?\n\n**ChatGPT:** Attention is a weighted lookup..."
}'You get back a public URL and a private edit link:
{
"id": "abc123",
"url": "https://quicky.page/abc123",
"editUrl": "https://quicky.page/?id=abc123#edit=...",
"editKey": "..."
}Open the url and the conversation renders as a styled page with headings, bold speaker labels, and dividers between turns. Here is a real conversation page built with exactly this call.
What's happening
The content field is markdown. Quicky.Page converts it to its block format on the server: the bold **You:** / **ChatGPT:** labels stay inline, blank lines become paragraph breaks, and each ---becomes a horizontal divider between exchanges. The endpoint is anonymous and rate-limited (30 publishes / 5 minutes / IP) — there's no API key to manage.
Tips for a clean transcript
- Lead with a
titlethat says what the conversation is about — it becomes the page's<h1>and the link preview headline. - Trim the dead ends. A shared page is better as the useful 60% of a chat than the full transcript with every clarifying detour.
- Use
> [!NOTE]or> [!TIP]blockquotes to call out the key takeaway at the top — they render as colored callouts. - Code from the chat: wrap it in triple-backtick fences and it renders as a syntax-highlighted code block.
Updating or removing the page
Save the editKey from the response. POST again with the same id plus editKey and new contentto replace what's live (same URL, no history). The full request/response contract is on the HTTP API page.
Doing it from inside ChatGPT
Want ChatGPT itself to publish the page instead of copying markdown by hand? Import the Quicky.Page OpenAPI spec as a Custom GPT Action, or — on a plan with Developer Mode — connect the remote MCP server. Either way ChatGPT can call publish_page and hand you the URL directly.
See also: share any LLM-generated content, publish a web page from the terminal, and the HTTP API reference.