Sharing & Collaboration

Share, embed, and collaborate on calculations with permanent URLs.

Click Share to make a calc public. You’ll get a short link and can copy an edit link for collaborators.

URL Formats

View Links

Anyone with the link can use your calc (play with numbers), but the original is unchanged.

FormatExampleUse
/<shortId>instacalc.com/j2k8npmShort link
/<shortId>/<slug>instacalc.com/j2k8npm/mortgage-calcCanonical link (slug is cosmetic)
/<integer>instacalc.com/12345Legacy link (still works forever)

Edit Links

An edit link is a view link with #edit=<token> appended — it grants edit access. The token is a secret — only share it with people you trust to edit.

FormatExample
/<shortId>#edit=<token>instacalc.com/j2k8npm#edit=x9Km4pB2tQw7RfLs

(Older links used a bare #<token> — those still work forever.)

Editors see the same calc and their changes sync in real time. The token is never sent to the server — it stays in the browser, so it won’t leak in server logs or social previews.

Scenario Overrides

Add ?key=value to a view link to pre-fill variables. Great for sharing specific scenarios.

FormatExample
/<shortId>?rate=7.5&years=15instacalc.com/j2k8npm?rate=7.5&years=15

Overrides are read-only — the viewer sees your calc with different numbers, but nothing is saved.

Embeds

Use /embed/<id> for an iframe-friendly version of any calc. This is the canonical form — it’s what the Copy embed code button emits.

FormatExample
/embed/<id> (canonical)instacalc.com/embed/j2k8npm

Embed code (responsive, lazy, and auto-resizing — what Copy embed code now emits):

<iframe src="https://instacalc.com/embed/graphing-studio" width="100%" height="400" loading="lazy" style="max-width:600px;border:0" frameborder="0"></iframe>
<script src="https://instacalc.com/embed-resize.js" async>
	import CalcEmbed from "$lib/components/embed/InstaCalcEmbed.svelte";
	import MiniCalc from "$lib/components/docs/MiniCalc.svelte";
	import TourEmbed from "$lib/components/docs/TourEmbed.svelte";
	import ThemePreview from "$lib/components/docs/ThemePreview.svelte";
	import DecoratorExplorer from "$lib/components/docs/DecoratorExplorer.svelte";
	import FunctionExplorer from "$lib/components/docs/FunctionExplorer.svelte";
	import UnitExplorer from "$lib/components/docs/UnitExplorer.svelte";
	import ThemeGallery from "$lib/components/docs/ThemeGallery.svelte";
</script>

The embed-resize.js line is optional — it grows the iframe to the calc’s content height so there’s no inner scrollbar. Remove it to keep the fixed height. The explicit height is always present so the page doesn’t shift (CLS 0) before the resize runs.

Tweak the embed with URL params: ?view=graph (open in graph view — also present or calc), ?theme=night, ?hideTitle=1, ?branding=0 (hide the footer), ?rows=5 (first N rows only), or ?price=99&qty=5 to pre-fill variables by name.

The suffix form /<id>/embed (e.g., instacalc.com/j2k8npm/embed) also works — it’s a permanent redirect to /embed/<id>, kept so historical iframes in the wild keep resolving.

Formula URLs

Encode a calc directly in the URL — no account or saving needed.

FormatExample
/<expression>instacalc.com/x=100;tax=x*8%;total=x+tax

Semicolons separate rows. Underscores become spaces. These are stateless — the calc lives entirely in the URL. For every supported shape (path, = formulas, bare math, hash, and the legacy ?d= form), see URL Integrations → Data Links.

Live Rooms

Hash-based rooms for ephemeral collaboration.

FormatExample
/#<room-name>instacalc.com/#team-budget

Anyone with the same link edits the same calc in real time. No account required.

Demo

Shared calc: instacalc.com/graphing-studio

Embed:

Three Signals

The URL tells you everything:

  • # = edit key (or live room)
  • ? = scenario override
  • no fragment = read-only view