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

ActionWhat it does
Check if a custom ending is freeFind 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 redirectsFollow 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 previewRead 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 statsCount 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 domainRead 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 goesSee where a spoo.me link leads without opening it, and whether it still works or needs a password.
Shorten a linkTurn 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 endingcustom_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 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

LinkurltextRequired
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"
}

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

PageurltextRequired
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"
}

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 linkshort_urltextRequired
The spoo.me link: the whole link or just its code. Capitals count.
Fromstartdate and time
Optional. The start of the period, up to 90 days before To. Leave empty for the 7 days before To.
Toenddate and time
Optional. The end of the period. Leave empty for now.
Timezonetimezonetext
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.
Passwordpasswordtext
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

DomaindomaintextRequired
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": []
}

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 linkshort_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"
}

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

LinkurltextRequired
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 endingcustom_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 styleending_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.
Passwordpasswordtext
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 botsblock_botstrue/false
Turn away known bots and crawlers, so the click count is people.Default: false.
Click limitmax_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 atexpires_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"
}

On this page