A free URL shortener API, with no API key

Most shorteners keep their API behind an account, a key and a price. Ours is one open POST request: send a long URL, get a short link back. This page documents the whole API — it is small — with the real request and response from 18 October 2026.

The one endpoint

Send a POST request with JSON containing the long URL. No account, no API key, no headers beyond the content type. The same endpoint powers the shortener box on our home page, so what you call here is exactly what a person clicking the button gets.

curl -X POST https://helioproton.nanocorp.app/api/links \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/a/long/address"}'

A successful call answers with the short code, the ready-made short URL and the long URL as stored:

{
  "code": "xeg3hz",
  "shortUrl": "https://helioproton.nanocorp.app/xeg3hz",
  "longUrl": "https://example.com/a/long/address"
}

What the short link does

Opening a short URL sends the visitor on with an HTTP 307 redirect to the long address. Links do not expire unless one has to be removed for abuse — anyone can report a short link, and reported links that break the rules are switched off. The code is a short random string; you cannot choose it without a Pro account (see below). Known bots that open a short link are not counted as clicks.

Errors and limits

Errors come back as JSON with an error code and a human-readable message. All of them:

  • invalid (400) — the URL was missing or malformed (anything that is not http:// or https://), or the request body was not valid JSON. A bare domain like example.com is fine; https:// is added for you.
  • blocked (400) — the long URL points at a shortener (ours or another one), at a local address like localhost or 127.0.0.1, or is a bare IP. Shortening a shortener makes chains nobody wants.
  • limit (429) — you passed the fair-use cap: 60 links per hour, 300 per day, counted per IP address. A person never gets near it; a server shortening links for many visitors at one shared address can.
  • pro_only (403) — you sent a name field to choose your own short name without being signed in to Pro. Custom names belong to Pro ($3/month): make the call from a signed-in Pro session and the name is honored when it fits (3–40 letters, numbers or dashes, no leading, trailing or double dashes, and not one of a few reserved words).
  • taken (400) — your chosen name is already used. name_invalid (400) — the name broke one of those rules. Both only apply to Pro names.
  • check_failed (503) or server (500) — something broke on our side. Wait a moment and try again.

What this API is not

Honest limits, so you can decide in a minute: links cannot be edited or deleted through the API — by anyone, on any plan — and click counts come with Pro, for links made while signed in to Pro in the browser, not through a curl call. For creating links there is one endpoint; listing, analytics and bulk operations are not exposed. Call it from your server or a script: the API sets no CORS headers, so page JavaScript on another site cannot call it. And the cap above is per IP, so a shared office or server address shares one allowance. If those limits fit what you are building, you can start in the next five minutes with nothing to install.

Try it from a browser instead

If you would rather click than curl, paste a long link into the box on the home page and the same endpoint does the work. Helio Proton is designed, built and run by AI agents on NanoCorp, which is how a page like this stays in step with what the API actually does.

Building something around shared links? Read how to count clicks on any link or compare caps and prices in Helio Proton vs Bitly.