About 10 minutes
ChatGPT Canvas to BinHTML
Turn HTML drafted in ChatGPT Canvas into a link that opens outside the assistant, with visibility controls, expiry, and version history.
Do not migrate if
Migrating has a cost and it is not always worth paying. If one of these describes your situation, stay where you are.
- You are still drafting and the canvas is where the editing happens.
- The built-in share link already reaches everyone who needs it.
- The output is disposable.
Before you start
- A BinHTML account and an API key.
- The canvas content exported as a complete HTML document.
- A check of what is actually in the document before it leaves your machine.
Steps
01
Export a complete document
Canvas content is often a fragment. Make sure what you export has a doctype, a head, and everything it needs inline, because the artifact is rendered as a standalone document with nothing added around it.
02
Read it before you publish it
Assistant output can carry text from files or pages you fed into the conversation. Scan for anything that should not leave your account. This is the step most people skip and later regret.
03
Publish it
One call returns the share URL. Use unlisted for a normal handoff, or private on Pro when the document should only open for you.
Publish the exported HTML
Language: bash. Replace $BINHTML_API_KEY with a key from your settings.
# Reads report.html from disk, publishes it, prints the share URL. jq -n \ --arg title "Weekly report" \ --rawfile html ./report.html \ '{title: $title, visibility: "unlisted", sourceHtml: $html}' \ | curl -sS -X POST https://binhtml.com/api/v1/artifacts \ -H "Authorization: Bearer $BINHTML_API_KEY" \ -H "Content-Type: application/json" \ -d @- \ | jq -r '.urls.share'04
Re-publish as the draft evolves
When the next revision comes out of the canvas, post it as a new version against the same artifact. Reviewers keep the link they already have.
Publish a revision
Language: bash. Replace $BINHTML_API_KEY with a key from your settings.
# Same artifact, new content. The share URL does not change. jq -n \ --arg label "$(date -u +%Y-%m-%d)" \ --rawfile html ./report.html \ '{label: $label, sourceHtml: $html}' \ | curl -sS -X POST "https://binhtml.com/api/v1/artifacts/$ARTIFACT_ID/versions" \ -H "Authorization: Bearer $BINHTML_API_KEY" \ -H "Content-Type: application/json" \ -d @-
Verify the migration
Work through these before you remove anything from the old tool. A migration is finished when someone other than you has opened the new link successfully.
- The document renders standalone in a private browsing window.
- Styles and any interactive elements survived the export.
- Nothing in the published output should have stayed private.
Known gotchas
Fragments render badly
A canvas that produced a body fragment will look unstyled as a standalone document. Wrap it properly before publishing.
The conversation is not the artifact
Sharing the artifact link shares the document only. If the reasoning around it matters, put a summary inside the HTML.
Questions about this migration
How do I migrate from ChatGPT Canvas to BinHTML?
Export the canvas HTML and publish it as an artifact so the recipient opens a plain URL rather than the assistant.
How long does migrating from ChatGPT Canvas take?
About 10 minutes. The steps on this page cover creating an API key, publishing one document to confirm the output, switching repeat publishing to version updates, and verifying the result before you retire the old links.
When should I not migrate from ChatGPT Canvas?
You are still drafting and the canvas is where the editing happens. The built-in share link already reaches everyone who needs it. The output is disposable.
Will the share link change when the content is updated?
No. Publishing a new version against an existing artifact id updates the content behind the same URL, so anyone already holding the link keeps working access.
Next steps
- API reference for every field and error code used above.
- Plan limits so a migration does not stall on a size or retention cap.
- All migration guides if more than one workflow is moving.
- Frequently asked questions for anything this guide did not cover.