spoo.me
App · 7 actions
Shorten links with spoo.me, the open source link shortener that counts every click. Make a short link with your own ending, emoji included, a password, a click limit or an expiry time, then read its clicks by day, country, browser and source. Also follow any link's redirects, read a page's link preview, and look up a domain's records. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Check if a custom ending is free | Find out whether a short link ending such as spring-sale can still be had on spoo.me before shortening with it, and if not, why not: taken, reserved, the wrong length or characters spoo.me doesn't allow. |
| Follow a link's redirects | Follow any link, from spoo.me or any other shortener, through every redirect to where it really ends up, with each stop on the way. |
| Get a page's link preview | Read the title, description, picture and icon a web page shows when its link is shared in a chat or a post, to build your own link cards or check a page before sharing it. |
| Get a short link's click stats | Count a spoo.me link's clicks over a period: total and unique visitors, first and last click, clicks day by day, and the top countries, cities, browsers, devices and sites they came from. |
| Look up a domain | Read a domain's public records: the addresses and mail servers in its DNS, who it's registered with and since when, and its security certificate's issuer and expiry date. |
| Preview where a short link goes | See where a spoo.me link leads without opening it, and whether it still works or needs a password. |
| Shorten a link | Turn a long web address into a short spoo.me link that counts its clicks. |
Check if a custom ending is free
Find out whether a short link ending such as spring-sale can still be had on spoo.me before shortening with it, and if not, why not: taken, reserved, the wrong length or characters spoo.me doesn't allow. No account or API key required.
Inputs
- Custom ending
custom_endingtextRequired - The ending to check: the part after spoo.me/, letters and numbers or emoji.
Outputs
availabletrue/false- Whether the ending can be used now.
custom_endingtext- The ending that was checked.
messagetext- The answer as a sentence, to show a person.
reasontext- Why it can't be used: 'taken', 'reserved', 'wrong_length', 'invalid_characters' or 'unsupported_emoji'. Null when it is free.
short_urltext- The short link this ending makes, e.g. https://spoo.me/spring-sale.
Example output
{
"available": false,
"custom_ending": "lxPhgdE",
"message": "Another short link already uses this ending.",
"reason": "taken",
"short_url": "https://spoo.me/lxPhgdE"
}Follow a link's redirects
Follow any link, from spoo.me or any other shortener, through every redirect to where it really ends up, with each stop on the way. The pages themselves are never loaded, so this is safe for checking a link somebody sent you. No account or API key required.
Inputs
- Link
urltextRequired - The link to follow, such as a bit.ly, is.gd or spoo.me link.
Outputs
final_status_codenumber- The final page's web status: 200 means it loads, 404 that it's missing. Null when it didn't answer.
final_urltext- Where the link ends up after every redirect.
hopslist- Every stop in order, the link first.
on_blocklisttrue/false- Whether any stop is on spoo.me's list of known harmful sites.
redirect_countnumber- How many redirects there were on the way.
stopped_earlytrue/false- True when there were too many redirects to follow them all.
urltext- The link followed.
Example output
{
"final_status_code": 200,
"final_url": "https://en.wikipedia.org/wiki/URL_shortening?utm_source=lodol&utm_medium=qa",
"hops": [
{
"is_secure": true,
"status_code": 302,
"url": "https://spoo.me/lxPhgdE"
},
{
"is_secure": true,
"status_code": 200,
"url": "https://en.wikipedia.org/wiki/URL_shortening?utm_source=lodol&utm_medium=qa"
}
],
"on_blocklist": false,
"redirect_count": 1,
"stopped_early": false,
"url": "https://spoo.me/lxPhgdE"
}Get a page's link preview
Read the title, description, picture and icon a web page shows when its link is shared in a chat or a post, to build your own link cards or check a page before sharing it. No account or API key required.
Inputs
- Page
urltextRequired - The https:// address of the page.
Outputs
descriptiontext- Its summary line. Null when it has none.
favicon_urltext- The site's small icon.
final_urltext- The page reached after any redirects.
image_urltext- The picture shown with the link. Null when it has none.
site_nametext- The site's own name. Null when not given.
theme_colortext- The page's accent colour, e.g. #1A73E8. Null when not given.
titletext- The page's title.
urltext- The page asked about.
Example output
{
"description": null,
"favicon_url": "https://en.wikipedia.org/static/apple-touch/wikipedia.png",
"final_url": "https://en.wikipedia.org/wiki/URL_shortening",
"image_url": null,
"site_name": null,
"theme_color": null,
"title": "URL shortening - Wikipedia",
"url": "https://en.wikipedia.org/wiki/URL_shortening"
}Get a short link's click stats
Count a spoo.me link's clicks over a period: total and unique visitors, first and last click, clicks day by day, and the top countries, cities, browsers, devices and sites they came from. Works for any spoo.me link whose stats are public, or with its password. No account or API key required.
Inputs
- Short link
short_urltextRequired - The spoo.me link: the whole link or just its code. Capitals count.
- From
startdate and time - Optional. The start of the period, up to 90 days before To. Leave empty for the 7 days before To.
- To
enddate and time - Optional. The end of the period. Leave empty for now.
- Timezone
timezonetext - Whose days the clicks are counted in.One of:
UTC,Europe/London(London, Dublin, Lisbon),Europe/Paris(Paris, Berlin, Madrid, Rome),Europe/Athens(Athens, Helsinki, Kyiv),Europe/Istanbul(Istanbul),Europe/Moscow(Moscow),Africa/Lagos(Lagos),Africa/Cairo(Cairo),Africa/Johannesburg(Johannesburg),Africa/Nairobi(Nairobi), and 26 more. Default:UTC. - Password
passwordtext - Only for a link made with a password: the same password.
Outputs
block_botstrue/false- Whether known bots and crawlers are turned away.
clicks_over_timelist- Clicks in each day of the period (each hour for a period of a day or less), oldest first.
codetext- The end of the short link, after spoo.me/, e.g. lxPhgdE. Capitals count.
created_attext- When the short link was made, e.g. 2026-10-16T00:04:34Z.
first_clicktext- When the first click in the period came. Null when there were none.
last_clicktext- When the latest click in the period came. Null when there were none.
max_clicksnumber- How many clicks the link allows before it stops working. Null for no limit.
original_urltext- The long link the short one opens.
password_protectedtrue/false- Whether visitors and stats readers need a password.
period_endtext- The end of the period counted.
period_starttext- The start of the period counted.
short_urltext- The short link, e.g. https://spoo.me/lxPhgdE.
stats_page_urltext- spoo.me's public page of charts for this link, e.g. https://spoo.me/stats/lxPhgdE.
statustext- Whether the link works: 'active', or 'expired' once its expiry time or click limit is reached, 'inactive', 'blocked' or 'scheduled'.
timezonetext- The timezone the days are counted in.
top_browserslist- Up to 10 browsers with the most clicks.
top_citieslist- Up to 10 cities with the most clicks.
top_countrieslist- Up to 10 countries with the most clicks, named by their two-letter code, e.g. US.
top_deviceslist- Clicks by kind of device: desktop, mobile or tablet.
top_operating_systemslist- Up to 10 operating systems with the most clicks, e.g. Windows, iOS.
top_referrerslist- Up to 10 sites the clicks came from, e.g. google.com. Direct means the link was typed or opened from an app.
total_clicksnumber- Every click in the period.
unique_clicksnumber- Different visitors in the period.
Example output
{
"block_bots": false,
"clicks_over_time": [
{
"clicks": 0,
"period": "2026-10-15",
"unique_clicks": 0
},
{
"clicks": 2,
"period": "2026-10-16",
"unique_clicks": 1
}
],
"code": "lxPhgdE",
"created_at": "2026-10-16T00:04:34Z",
"first_click": "2026-10-16T00:05:48Z",
"last_click": "2026-10-16T00:05:49Z",
"max_clicks": null,
"original_url": "https://en.wikipedia.org/wiki/URL_shortening?utm_source=lodol&utm_medium=qa",
"password_protected": false,
"period_end": "2026-10-16T00:05:12Z",
"period_start": "2026-10-09T00:05:12Z",
"short_url": "https://spoo.me/lxPhgdE",
"stats_page_url": "https://spoo.me/stats/lxPhgdE",
"status": "active",
"timezone": "UTC",
"top_browsers": [
{
"clicks": 2,
"name": "Chrome",
"share_percent": 100.0,
"unique_clicks": 1
}
],
"top_cities": [
{
"clicks": 2,
"name": "Columbus",
"share_percent": 100.0,
"unique_clicks": 1
}
],
"top_countries": [
{
"clicks": 2,
"name": "US",
"share_percent": 100.0,
"unique_clicks": 1
}
],
"top_devices": [
{
"clicks": 2,
"name": "desktop",
"share_percent": 100.0,
"unique_clicks": 1
}
],
"top_operating_systems": [
{
"clicks": 2,
"name": "Windows",
"share_percent": 100.0,
"unique_clicks": 1
}
],
"top_referrers": [
{
"clicks": 1,
"name": "Direct",
"share_percent": 50.0,
"unique_clicks": 1
},
{
"clicks": 1,
"name": "google.com",
"share_percent": 50.0,
"unique_clicks": 1
}
],
"total_clicks": 2,
"unique_clicks": 1
}Look up a domain
Read a domain's public records: the addresses and mail servers in its DNS, who it's registered with and since when, and its security certificate's issuer and expiry date. A domain only a few days old is a common sign of a scam link. No account or API key required.
Inputs
- Domain
domaintextRequired - The domain to look up, such as example.com. A whole link works too: its domain is used.
Outputs
certificate_days_leftnumber- Days until the certificate runs out.
certificate_expires_attext- When the certificate runs out.
certificate_issuertext- Who issued its security certificate. Null when the site has none.
certificate_nameslist- The site names the certificate covers.
certificate_valid_fromtext- When the certificate started.
domaintext- The domain looked up, e.g. en.wikipedia.org.
domain_age_daysnumber- How many days since it was registered. A very young domain is worth a second look.
ip_addresseslist- The server addresses it points at.
ipv6_addresseslist- Its newer, longer style addresses.
mail_serverslist- The servers that take its email. Empty when it takes none.
name_serverslist- The servers that answer for its records.
registered_attext- When it was first registered.
registered_domaintext- The part someone registered, e.g. wikipedia.org.
registrartext- Who the domain is registered with.
registration_expires_attext- When the registration runs out.
txt_recordslist- Its text records, such as email sender rules and ownership checks.
Example output
{
"certificate_days_left": 78,
"certificate_expires_at": "2027-01-02T18:34:50Z",
"certificate_issuer": "Let's Encrypt",
"certificate_names": [
"*.wikipedia.org",
"*.m.wikipedia.org"
],
"certificate_valid_from": "2026-10-04T18:34:51Z",
"domain": "en.wikipedia.org",
"domain_age_days": 9406,
"ip_addresses": [
"208.80.154.224"
],
"ipv6_addresses": [
"2620:0:861:ed1a::1"
],
"mail_servers": [],
"name_servers": [],
"registered_at": "2001-01-13T00:12:14Z",
"registered_domain": "wikipedia.org",
"registrar": "MarkMonitor Inc.",
"registration_expires_at": "2027-01-13T00:12:14Z",
"txt_records": []
}Preview where a short link goes
See where a spoo.me link leads without opening it, and whether it still works or needs a password. A password protected link keeps its destination hidden. No account or API key required.
Inputs
- Short link
short_urltextRequired - The spoo.me link: the whole link or just its code. Capitals count.
Outputs
codetext- The end of the short link, after spoo.me/, e.g. lxPhgdE. Capitals count.
created_attext- When the short link was made, e.g. 2026-10-16T00:04:34Z.
destination_domaintext- The site it opens, e.g. en.wikipedia.org.
destination_is_securetrue/false- Whether the destination uses https.
is_activetrue/false- Whether the link works right now.
original_urltext- The address the link opens. Null while the link is password protected or no longer works.
password_protectedtrue/false- Whether visitors and stats readers need a password.
short_urltext- The short link, e.g. https://spoo.me/lxPhgdE.
statustext- Whether the link works: 'active', or 'expired' once its expiry time or click limit is reached, 'inactive', 'blocked' or 'scheduled'.
Example output
{
"code": "lxPhgdE",
"created_at": "2026-10-16T00:04:34Z",
"destination_domain": "en.wikipedia.org",
"destination_is_secure": true,
"is_active": true,
"original_url": "https://en.wikipedia.org/wiki/URL_shortening?utm_source=lodol&utm_medium=qa",
"password_protected": false,
"short_url": "https://spoo.me/lxPhgdE",
"status": "active"
}Shorten a link
Turn a long web address into a short spoo.me link that counts its clicks. Choose how it ends, words or emoji, and optionally protect it with a password, turn bots away, or have it stop working after a number of clicks or at a set time. No account or API key required.
Inputs
- Link
urltextRequired - The web address to shorten, exactly as it appears in the address bar: question marks, ampersands and tracking parameters are all fine, and an address typed without https:// gets it added.
- Custom ending
custom_endingtext - Optional. What the link ends with instead of a random code, such as spring-sale for spoo.me/spring-sale: 3 to 16 letters, numbers, dashes or underscores, or 1 to 15 emoji. Leave empty for a random code.
- Random ending style
ending_styletext - What a random ending is made of, when Custom ending is empty.One of:
letters(Letters and numbers (spoo.me/aB3xY9z)),emoji(Emoji (spoo.me/🌘🎷🏄)). Default:letters. - Password
passwordtext - Optional. Visitors must type this before they are sent on, and it also guards the link's click stats. At least 8 characters; mix letters, numbers and a symbol.
- Block bots
block_botstrue/false - Turn away known bots and crawlers, so the click count is people.Default:
false. - Click limit
max_clicksnumber - Optional. The link stops working after this many clicks, for a one-off offer or a limited invite. Leave empty for no limit.From 1 to 1000000.
- Expires at
expires_atdate and time - Optional. The moment the link stops working. Leave empty for a link that never expires.
Outputs
block_botstrue/false- Whether known bots and crawlers are turned away.
claim_tokentext- A one-time token proving this workflow made the link. It is shown only once: keep it, with the link id, if you may want to move the link into a spoo.me account to edit or delete it.
codetext- The end of the short link, after spoo.me/, e.g. lxPhgdE. Capitals count.
created_attext- When the short link was made, e.g. 2026-10-16T00:04:34Z.
expires_attext- When the link stops working, e.g. 2026-12-31T23:59:00Z. Null when it never expires.
link_idtext- spoo.me's id for the link, needed with the claim token to add it to a spoo.me account later.
max_clicksnumber- How many clicks the link allows before it stops working. Null for no limit.
original_urltext- The long link the short one opens.
password_protectedtrue/false- Whether visitors and stats readers need a password.
short_urltext- The short link, e.g. https://spoo.me/lxPhgdE.
stats_page_urltext- spoo.me's public page of charts for this link, e.g. https://spoo.me/stats/lxPhgdE.
statustext- Whether the link works: 'active', or 'expired' once its expiry time or click limit is reached, 'inactive', 'blocked' or 'scheduled'.
Example output
{
"block_bots": false,
"claim_token": "Xq7v2Lk9Rm4tWz8Ny3Bc6Hd1Jf5Gs0PaQe2UiOo7Kl4",
"code": "lxPhgdE",
"created_at": "2026-10-16T00:04:34Z",
"expires_at": null,
"link_id": "6ad16a125c024624e5ca1c60",
"max_clicks": null,
"original_url": "https://en.wikipedia.org/wiki/URL_shortening?utm_source=lodol&utm_medium=qa",
"password_protected": false,
"short_url": "https://spoo.me/lxPhgdE",
"stats_page_url": "https://spoo.me/stats/lxPhgdE",
"status": "active"
}