Wasoolo Tools URL Shortener API

Wasoolo Tools gives you a free REST API to create short links and custom keywords from your own code. It returns clean JSON, needs no API key and no sign-up, and applies only fair-use rate limits per IP. Send a long URL to one endpoint and get a ready-to-share short link plus a free QR code and click analytics page in return.

The API powers the same free URL shortener you use in the browser, so anything you can do on the website you can also automate: shorten links in bulk, attach a memorable custom keyword, and hand each short link a free QR code and a click-analytics page. There is exactly one write endpoint and it is documented in full below — nothing here is hidden behind a paywall or a token.

Quick start

The base URL for every request is https://tools.wasoolo.com. There is no authentication, no header to set, and no key to manage — just POST your URL and read the JSON back. To keep the service fast and free for everyone, requests are limited per IP address on a sliding window. When you go over a limit you get a 429 response with a Retry-After header telling you how many seconds to wait before retrying.

PropertyValue
Base URLhttps://tools.wasoolo.com
AuthNone — no API key, no account
Per-minute limit~6 requests / minute / IP
Per-hour limit30 requests / hour / IP
Per-day limit120 requests / day / IP
When exceeded429 Too Many Requests + Retry-After (seconds)

Limits are generous for normal scripting and one-off jobs. If you need higher throughput for a legitimate use, write to help@wasoolo.com and tell us what you are building.

Create a short link

Send a single POST with a form body. The endpoint accepts both application/x-www-form-urlencoded and multipart/form-data, so a plain HTML form, a curl -d call, or a fetch with FormData all work.

POST https://tools.wasoolo.com/api/shorten Creates one short link and returns it as JSON.
FieldTypeRequiredDescription
urlstringYesThe long destination to shorten. Must be a valid http or https URL.
keywordstringNoA custom keyword for the path, e.g. sale/sale/x7Qk9. Letters, numbers and hyphens. Omit it for a short auto code only.

Response

On success you get "ok": true and the new link. The statsUrl field is the address of an HTML click-analytics page you open in a browser — it is not a JSON endpoint, so don't try to parse it. The createdAt value is a Unix timestamp in seconds.

{
  "ok": true,
  "shortUrl": "https://tools.wasoolo.com/sale/x7Qk9",
  "code": "x7Qk9",
  "keyword": "sale",
  "path": "sale/x7Qk9",
  "destination": "https://example.com/...",
  "statsUrl": "https://tools.wasoolo.com/stats/x7Qk9",
  "createdAt": 1782560000
}

Errors

When something is wrong the response carries "ok": false and an error message, with a matching HTTP status. Always check the status code as well as the ok flag.

StatusMeaningExample body
400Invalid or blocked URL (missing url, not http/https, or flagged as malicious){"ok":false,"error":"Invalid URL"}
429Rate limited — too many requests from your IP; see Retry-After{"ok":false,"error":"Rate limit exceeded"}

Code examples

Each example POSTs a url (and an optional keyword) to /api/shorten and reads shortUrl from the JSON.

curl

# url is required, keyword is optional
curl -X POST https://tools.wasoolo.com/api/shorten \
  -d "url=https://example.com/very/long/path" \
  -d "keyword=sale"

JavaScript (fetch)

const body = new URLSearchParams({
  url: "https://example.com/very/long/path",
  keyword: "sale" // optional
});

const res = await fetch("https://tools.wasoolo.com/api/shorten", {
  method: "POST",
  body
});
const data = await res.json();
console.log(data.shortUrl); // https://tools.wasoolo.com/sale/x7Qk9

PHP (curl)

// url required, keyword optional
$ch = curl_init("https://tools.wasoolo.com/api/shorten");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
  "url"     => "https://example.com/very/long/path",
  "keyword" => "sale",
]));

$data = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $data["shortUrl"]; // https://tools.wasoolo.com/sale/x7Qk9

Fair use

The API is free, so please keep it clean: no spam, no abuse, and no automated bulk creation of throwaway links. Every destination is validated, and links found to be malicious or in breach of our rules are removed. By using the API you agree to our terms of use. If you build something useful with it, we'd love to hear about it.

Do I need an API key?
No. The create endpoint is open and requires no API key. Fair-use rate limits apply per IP to keep the service healthy.
What does the API return?
A JSON object with the short URL, the code, the optional keyword and the destination. See the examples on this page.
Is the API free?
Yes, the API is free under fair use. Please do not use it to create spam or abusive links — those are blocked and removed.

Try it first

Shorten a link in the browser, then automate it

See exactly what the API returns by creating a link by hand — then drop the same request into your code.

Open the URL shortener

Free forever · no account · links never expire · from the Wasoolo team