Bulk shortening

Live, free

Send a list of URLs. Get back a list of short links.

Send up to 100 URLs in one API request, or ask your AI assistant to shorten every link in a draft. Each URL gets its own result, in the order you sent them.

No key needed. Each URL counts toward the 300 free links per day.

How it works

How the bulk URL shortener works

  1. 1

    Send the list

    POST a JSON body with a urls array of up to 100 URLs to /links/bulk. No key is needed to try it.

  2. 2

    Read results in order

    The response holds one result per URL, in the order you sent them: a short link, or an error that explains the refusal.

  3. 3

    Retry only the failures

    One bad URL doesn’t fail the batch. Store the links, fix the URLs that came back with errors and send just those again.

Why it helps

Built for lists, scripts and agents

  • Up to 100 URLs per request

    One POST /links/bulk call takes up to 100 URLs. Without a key, a bulk call uses that minute’s allowance and each URL counts toward 300 links a day.

  • Results in the same order

    The third result belongs to the third URL. No matching by hand, even when some URLs fail.

  • Errors don’t sink the batch

    An invalid URL gets an error object with its own code, and the rest of the batch is shortened as usual.

  • Rerun without duplicates

    A URL that already has a link returns that link, so running the same job again doesn’t create duplicates.

  • 50 links from your assistant

    Through MCP, the shorten_links tool takes up to 50 URLs. Ask “shorten every link in this draft” and get the draft back with zou.sh links.

  • Early access

    CSV upload

    With Pro (early access), upload a CSV file of up to 5,000 rows instead of writing code.

API

One request, one result per URL

POST /links/bulk takes a urls array of up to 100 URLs and answers with one result per URL, in order. Valid URLs come back as links, and the others come back as error objects without failing the batch.

  • Endpoint: POST https://api.blinkhop.com/v1/links/bulk
  • Body: a urls array of up to 100 URLs
  • Each result: a link or an error object
  • Same safety checks as single links
Bulk endpoint reference

terminal

curl -s https://api.blinkhop.com/v1/links/bulk \
  -H "Content-Type: application/json" \
  -d '{"urls": [
    "https://example.com/menu",
    "https://example.com/launch",
    "not a url"
  ]}' \
  | jq -r '.links[] | .short_url // .error.code'

200 OK output

https://zou.sh/T4kq9
https://zou.sh/m8Rzw
invalid_url

Limits

Plan big jobs around the rate limit

Without a key, each IP address can create 300 links per day. A bulk call uses the whole minute’s allowance of 20, so space calls a minute apart, and wait for Retry-After after a 429.

  • Each URL in the batch counts toward the 300 links per day
  • X-RateLimit-Limit, -Remaining and -Reset on each response
  • 429 responses add a Retry-After header
  • MCP: 120 calls per minute and 5,000 per day
  • Higher limits with an API key (early access)

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

  • POST /links/bulk with up to 100 URLs, no key needed
  • One result per URL, in the order sent
  • The MCP tool shorten_links, with up to 50 URLs
  • Without a key: up to 100 URLs per call and 300 links per day
Shorten a link

Early access With an account

  • CSV upload of up to 5,000 rows (Pro)
  • API keys: 1,000 links a day on a free account, 50,000 a month on Pro, 250,000 on Team
Join early access

FAQ

Questions, answered.

How many URLs can I shorten at once?

Up to 100 per request with POST /links/bulk, and up to 50 per call with the MCP tool shorten_links. Without a key, a bulk call uses the minute’s allowance and every URL counts toward 300 new links per day.

What happens if one URL in the batch is invalid?

That URL gets an error object with a code, such as invalid_url, and the other URLs are shortened as usual. Results come back in the order you sent them.

Do I need an API key for bulk shortening?

No. The bulk endpoint works without a key, within the free rate limits. API keys with higher limits come with accounts, in early access.

Can I upload a CSV file of links?

CSV upload comes with the Pro plan, in early access, for files of up to 5,000 rows. Today, send the URLs to the API in batches, or hand the list to your AI assistant.

Can my AI assistant shorten every link in a document?

Yes. Connect the MCP server, then ask it to shorten every link in your draft. Its shorten_links tool handles up to 50 URLs in one call.

Will running a bulk job twice create duplicate links?

No. A URL that already has a short link returns that link, so the same list gives you the same short links each time.

Related

  • Guide

    URL shortener API: shorten links from code, no key required

    Use the Blinkhop URL shortener API without a key: create zou.sh links with curl, Python or JavaScript, shorten 100 URLs at once, and handle errors and rate limits.

  • Developers

    MCP server

    Let Claude, ChatGPT, Cursor or VS Code shorten links for you.

  • Help

    What are the API rate limits?

    Without a key, each IP address can create 20 links per minute and 300 per day. The MCP server allows 120 calls per minute and 5,000 per day.

  • Developers

    Code samples

    Copy-paste examples in JavaScript, Python, Go, PHP and the shell.

Shorten the whole list.

Up to 100 URLs per API request, or 50 through your AI assistant, without an API key.