DocsChart URLs
Unsigned, signed or short URLs
Every chart can be written as three kinds of URL. All three draw the same chart. They differ in who can make them, whether the chart carries the watermark, and what happens once you have used your plan's renders for the month. Choose by where the URL is made.
The short answer
- Your code builds the URL (a report job, a Slack bot, a web page's server): sign it. No watermark on paid plans, nobody can change the data, and on paid plans signed charts go on past your allowance as extra renders.
- You paste a finished chart in by hand (Notion, a wiki, slides, a README), the data should stay private, or the URL is too long: save it as a short URL (Starter and above). On Pro you can change its data later and keep the same URL.
- A tool that cannot run code builds the URL (a Google Sheets formula, email merge tags, a no-code automation, an AI agent writing URLs by itself): it has to be unsigned. Unsigned charts carry the watermark on every plan, and on paid plans they stop at your allowance unless their key allows extra renders for unsigned URLs.
Side by side
| Unsigned | Signed | Short | |
|---|---|---|---|
| Looks like | https://c.renderchart.com/?key=rc_pub_live_...&type=bar&y=1,2,3 |
The same with &sig=... on the end |
https://c.renderchart.com/s/aB3dE5gH7k |
| Made by | Anyone with your public key: by hand, in a formula, in a template | Your server with your secret key, or the builder's "Sign this URL", the keys page's "Sign a URL" or POST /api/v1/sign |
You, with "Save as short URL" in the builder or POST /api/v1/charts |
| Plans | Every plan | Every plan | Starter and above, with a verified email address |
| Watermark | Always, on every plan | On Free. None on paid plans | None on paid plans |
| Shows your key and data | Yes | Yes | No |
| Can someone change the data? | Yes. An edited URL is a new chart on your allowance | No. Any change breaks the signature | No. The data is stored with us |
| New data | Write a new URL | Write and sign a new URL | Pro: update it and the same URL shows the new chart. Starter: save a new one |
| Past your allowance, paid plans | New charts show the 401 image, unless the key allows extra renders for unsigned URLs | New charts go on as extra renders | New charts go on as extra renders |
| Past your allowance, Free | New charts show the 402 image | New charts show the 402 image | Free cannot make them |
| Key set to accept signed URLs only | Refused: the 401 image | Works | Works |
| Expiry | None | Optional, with exp |
None. Delete it to stop it |
| Cached by browsers and image proxies | Up to a year | Up to a year | Five minutes, so new data shows |
All three count renders the same way: the first request for a chart is a render, and every later request comes from the cache and is free. Extra renders are billed per render at your plan's rate when the month ends; you can turn them off or cap what they cost on the billing page, and then every new chart shows the 402 image until the allowance renews. A chart already rendered keeps showing whatever stops new ones.
Where each one fits
| Where the chart goes | Use | Why |
|---|---|---|
| Email report sent by your code | Signed | Your job signs each URL as it writes the email. |
| Email template filled with merge tags | Unsigned | Merge tags cannot sign. Use a key that accepts unsigned URLs. |
Google Sheets =IMAGE() |
Unsigned | A formula cannot sign. A short URL holds saved data, so it would not follow your cells. Give sheets their own key (see below). |
| Slack bot or scheduled job | Signed | Sign when you post. |
| Slack Workflow Builder, Zapier and other no-code tools | Unsigned | Unless the tool can run code, it cannot sign. |
| Web page or dashboard | Signed | Sign on your server as it renders the page. Never sign in the browser: the secret would be public. |
| Notion, Confluence, a wiki or a README | Short, or signed | Paste a short URL to keep the data private and the link tidy, or a signed URL from the builder. On Pro a short URL stays live. |
| Google Docs or Slides | Signed, or short | They keep a copy of the image when you insert it, so a chart there does not change afterwards. |
| AI assistant connected through MCP | Signed, or short | The MCP server signs for you, or saves a short URL when you ask. See MCP server. |
| AI agent writing URLs from a prompt | Unsigned | It has no secret, so its URLs are unsigned and watermarked. Connect it through MCP to sign. |
| Trying things out by hand | Unsigned | Then sign it or save it as a short URL when you publish it. |
Unsigned URLs
An unsigned URL is your public key plus the chart's parameters. Anyone can write one, which is what makes them work in spreadsheets and templates. The public key is safe to publish (see "Is my public key safe to publish?" in Signing), but anyone who copies it can make unsigned charts on your allowance.
- They always carry a small "renderchart.com" watermark, on every plan. Only signing or a short URL on a paid plan removes it.
- On paid plans they stop at your allowance: new unsigned charts show the 401 image until it renews, while signed and short charts go on as extra renders. To let a key's unsigned charts go on too, tick "Allow extra renders for unsigned URLs" on that key. It is off by default because anyone who copies the key could add to your bill.
- They only work with a key that accepts unsigned URLs. Keys do by default, including the key every account starts with. Keys you create on a paid plan start with "Accept signed URLs only" ticked: untick it for a key you will use unsigned.
If some of your charts have to be unsigned, give them a key of their own and lock the rest:
- Create a key for them (say "Sheets") with "Accept signed URLs only" unticked.
- On a paid plan, tick "Allow extra renders for unsigned URLs" on it if those charts should keep going past your allowance, and give it a monthly render limit so a copied key can only use so much.
- Set your other keys to accept signed URLs only. That stops every unsigned URL with them, including ones already published.
Signed URLs
A signed URL is an unsigned one with a signature (sig) on the end, made with the key's secret. Sign on your server; the code is in Signing. Without a server, the builder's "Sign this URL" button and the keys page's "Sign a URL" helper sign one for you to paste.
- On paid plans signed charts have no watermark and go on past your allowance as extra renders (we email you as you approach it and when you pass it).
- Nobody can change a signed URL's data: an edited URL shows the 401 image.
- Add
expto make one stop working at a set time. - New data means a new URL, signed again.
Short URLs
A short URL (/s/{id}) is a chart saved in your account. The URL shows neither your key nor your data. See Short URLs.
- Starter and above, with a verified email address. No watermark on paid plans, and they go on past your allowance as extra renders.
- On Pro the data can change and the same URL shows the new chart within about five minutes. On Starter a short URL is a snapshot.
- They are cached for five minutes rather than a year, so each new version of the data is one render.
Changing plan
When your plan changes (up or down), when you verify your email address and when you save a brand theme, every chart is drawn again the next time it is requested, and that counts as a render. After a move from a paid plan to Free:
- signed and short charts carry the watermark again;
- short URLs keep working, watermarked, but their data can no longer be changed;
format=pdfand thebrandtheme stop applying: PDF URLs show the 400 image andtheme=branddraws the light theme.
Next: Signing