Custom endings

Live, free

Links that say where they go.

Swap the random code for words you choose, like zou.sh/spring-sale. A readable link is easier to trust, to say out loud and to type from a poster.

Free, no account. Custom links never expire.

How it works

How to create a custom short link

  1. 1

    Open the custom ending

    Before you paste anything, click “Custom ending” (the pencil icon) on blinkhop.com, or tap “Choose your ending” on a phone.

  2. 2

    Type your words

    Write the ending after zou.sh/, for example spring-sale. Lowercase words joined by dashes read best in print and on screen.

  3. 3

    Paste, then share

    Paste the long URL and shorten it. zou.sh/spring-sale lands on your clipboard, with its QR code one click away.

Why it helps

Why readable endings work better

A random code tells people nothing. A few well-chosen words tell them where the link goes before they open it.

  • Context before the click

    zou.sh/q3-report tells readers what to expect. Add a short line of context next to it and nobody has to guess where it leads.

  • Easy to say and type

    Readable endings hold up on podcasts, slides and printed flyers, where people type the link by hand. Letter case doesn’t matter when they do.

  • One ending, one link

    Each ending belongs to a single link, and uniqueness ignores letter case. Once zou.sh/launch exists, nobody can create zou.sh/Launch.

  • An alias field in the API

    Send alias next to url in POST /links. A taken ending returns HTTP 409 with alias_taken, so your code can offer another choice.

  • Ask your assistant

    Through MCP, ask “shorten this with the ending q3-report”. The shorten_link tool takes the same optional alias and follows the same rules.

  • Clear rules, clear errors

    An ending that breaks the format returns invalid_alias. One that is taken or reserved, like api or login, returns alias_taken.

The rules

What makes a valid custom ending

Whether you type the ending on blinkhop.com, send it to the API or ask your assistant, it is checked against these rules. They keep endings readable inside a URL and set aside a few words for the service itself.

  • 3 to 40 characters
  • Letters, numbers, dashes (-) and underscores (_)
  • Starts with a letter or a number
  • Unique regardless of letter case
  • Reserved: api, admin, login, docs, help, pricing, mcp, qr and others

For developers

Custom endings through the API

Pass an alias with the url when you create a link. A new link returns HTTP 201, and an ending that is taken or reserved returns HTTP 409 with the error code alias_taken.

  • alias is optional in the POST /links body
  • invalid_alias: the ending breaks a format rule
  • alias_taken (409): already used or reserved
  • MCP: shorten_link accepts the same optional alias
See the API reference

terminal

curl -s https://api.blinkhop.com/v1/links \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/reports/2026/q3-results",
    "alias": "q3-report"
  }'

201 Created response

{
  "id": "lnk_q3-report",
  "code": "q3-report",
  "short_url": "https://zou.sh/q3-report",
  "url": "https://example.com/reports/2026/q3-results",
  "qr_url": "https://zou.sh/q3-report/qr",
  "preview_url": "https://zou.sh/q3-report+",
  "clicks": 0,
  "created_at": "2026-10-11T14:02:11Z"
}

Availability

Free today. More with an account.

Everything in the first column works right now, with no account. The second comes with accounts, now in early access.

Live Today, free, no account

  • Custom endings on the website, in the API and over MCP
  • Endings of 3 to 40 characters, unique regardless of case
  • A QR code and a + preview page for each custom link
  • Custom links that never expire
Shorten a link

Early access With an account

  • Edit where a custom link points, keeping its ending
  • Short links on your own domain, like go.yourbrand.com/launch
  • Clicks per link in an analytics dashboard
Join early access

FAQ

Questions, answered.

Can I change the ending of a short link later?

No. An ending stays attached to the destination it was created with. Shorten the URL again with the ending you want, and you get a second link to the same page.

Is zou.sh/Launch the same link as zou.sh/launch?

Yes. Endings are unique regardless of letter case, so both spellings open the same link. If one is taken, so is the other.

Why was my custom ending refused?

Either it breaks a format rule (invalid_alias), or it’s already in use or reserved (alias_taken). Why was my link refused? explains every error code.

Which words can’t I use as an ending?

Words the service keeps for itself, such as api, admin, login, docs, help, pricing, mcp and qr. Endings under 3 characters, or starting with a dash or an underscore, are refused too.

Can one URL have several custom endings?

Yes. The same URL, same link rule only applies when you skip the ending, so each new ending creates its own link. That makes it easy to compare placements, such as zou.sh/q3-email and zou.sh/q3-slides.

How do I set a custom ending through the API?

Add alias to the JSON body of POST /links. A taken ending returns HTTP 409 with alias_taken, and the API reference documents every field.

Related

Give your next link a name.

Choose an ending, paste your URL and share a link people can read and remember.