Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vm0-ai avatar

Shortio

  • 92 installs
  • 76 repo stars
  • Updated August 4, 2026
  • vm0-ai/vm0-skills

Helps with ai & agent building tasks during AI-assisted development.

About

shortio is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • shortio
  • AI & Agent Building
  • AI-coding skill

Shortio by the numbers

  • 92 all-time installs (skills.sh)
  • Ranked #4,749 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill shortio

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs92
repo stars76
Last updatedAugust 4, 2026
Repositoryvm0-ai/vm0-skills

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Troubleshooting

If requests fail, run zero doctor check-connector --env-name SHORTIO_TOKEN or zero doctor check-connector --url https://api.short.io/links --method GET

How to Use

All examples below assume you have SHORTIO_TOKEN and SHORTIO_DOMAIN set.

Base URL: https://api.short.io

1. Create a Short Link

Create a new short link with auto-generated slug:

Write to /tmp/shortio_request.json:

{
  "domain": "<your-domain-name>",
  "originalURL": "https://example.com/very/long/url/here"
}

Then run:

curl -s -X POST "https://api.short.io/links" --header "Authorization: $SHORTIO_TOKEN" --header "Content-Type: application/json" --header "Accept: application/json" -d @/tmp/shortio_request.json | jq '{shortURL, originalURL, path, idString}'

2. Create with Custom Slug

Create a short link with a custom path/slug:

Write to /tmp/shortio_request.json:

{
  "domain": "<your-domain-name>",
  "originalURL": "https://example.com/product/12345",
  "path": "my-custom-slug"
}

Then run:

curl -s -X POST "https://api.short.io/links" --header "Authorization: $SHORTIO_TOKEN" --header "Content-Type: application/json" --header "Accept: application/json" -d @/tmp/shortio_request.json | jq '{shortURL, originalURL, path, idString}'

3. Create with TTL (Expiration)

Create a link that expires after a specified time (in ISO 8601 format):

Write to /tmp/shortio_request.json:

{
  "domain": "<your-domain-name>",
  "originalURL": "https://example.com/temporary-offer",
  "ttl": "2026-12-31T23:59:59Z"
}

Then run:

curl -s -X POST "https://api.short.io/links" --header "Authorization: $SHORTIO_TOKEN" --header "Content-Type: application/json" --header "Accept: application/json" -d @/tmp/shortio_request.json | jq '{shortURL, originalURL, ttl}'

4. Get Link Info by Path

Get details of a short link using domain and path:

curl -s -X GET "https://api.short.io/links/expand?domain=$SHORTIO_DOMAIN&path=my-custom-slug" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '{originalURL, shortURL, path, idString, createdAt, cloaking}'

5. Get Link Info by ID

Get details of a short link using its ID:

LINK_ID="lnk_abc123xyz"

curl -s -X GET "https://api.short.io/links/${LINK_ID}" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '{originalURL, shortURL, path, idString, createdAt}'

6. List All Links

Get a list of links for a domain (max 150 per request):

curl -s -X GET "https://api.short.io/api/links?domain_id=$SHORTIO_DOMAIN_ID&limit=20" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '{count, links: [.links[] | {shortURL, originalURL, path, idString}]}'

7. Update a Link

Update an existing link's path, original URL, or other properties:

LINK_ID="lnk_abc123xyz"

Write to /tmp/shortio_request.json:

{
  "path": "new-custom-slug",
  "originalURL": "https://example.com/new-destination"
}

Then run:

curl -s -X POST "https://api.short.io/links/${LINK_ID}" --header "Authorization: $SHORTIO_TOKEN" --header "Content-Type: application/json" --header "Accept: application/json" -d @/tmp/shortio_request.json | jq '{shortURL, originalURL, path, idString}'

8. Delete a Link

Delete a short link by ID:

LINK_ID="lnk_abc123xyz"

curl -s -X DELETE "https://api.short.io/links/${LINK_ID}" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '{success, idString}'

9. List Domains

Get all domains associated with your account:

curl -s -X GET "https://api.short.io/api/domains" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '.[] | {id, hostname, state, linkType}'

10. Get Link Click Statistics

Get click counts for specific links:

curl -s -X GET "https://api.short.io/domains/$SHORTIO_DOMAIN_ID/link_clicks?link_ids=${LINK_ID}" --header "Authorization: $SHORTIO_TOKEN" --header "Accept: application/json" | jq '{linkId: .linkId, clicks}'

Create Link Parameters

ParameterTypeRequiredDescription
domainstringYesYour branded domain
originalURLstringYesThe destination URL
pathstringNoCustom slug (auto-generated if not provided)
titlestringNoLink title for organization
ttlstringNoExpiration date (ISO 8601 format)
allowDuplicatesbooleanNoAllow creating duplicate links (default: false)
cloakingbooleanNoEnable URL cloaking
passwordstringNoPassword protect the link
expiresAtstringNoRedirect URL when link expires
tagsarrayNoTags for categorization

Response Fields

FieldDescription
shortURLThe generated short URL
secureShortURLHTTPS version of short URL
originalURLThe destination URL
pathThe slug/path of the short link
idStringUnique link ID (use for updates/deletes)
DomainIdDomain ID
createdAtCreation timestamp
cloakingWhether cloaking is enabled
hasPasswordWhether link is password protected

Guidelines

1. Save the idString: Always store the idString from the response - you'll need it to update or delete links 2. Use TTL for temporary links: Set expiration for promotional or time-sensitive links 3. Limit parameter: When listing links, max limit is 150 per request; use pagination for more 4. Custom domains: Configure DNS properly before using custom domains 5. Avoid duplicates: Set allowDuplicates: false to prevent creating multiple short links for the same URL 6. Check rate limits: API has rate limiting; implement retries with backoff for high-volume usage

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.