Documentation

Complete guide to using vsl.im

Getting Started

What is vsl.im?

vsl.im is a modern URL shortening and link management platform. It allows you to create short, memorable links, track their performance, and manage them through a powerful dashboard or API.

Quick Start
  1. Create a link: Paste any URL on the homepage or dashboard and click "Shorten"
  2. Share your link: Copy the short URL (e.g., vsl.im/abc123) and share it anywhere
  3. Track performance: View clicks, geographic data, and referrers in your dashboard
Account Benefits

While you can create links without an account, registered users get:

  • Custom aliases (e.g., vsl.im/summer-sale)
  • Link editing and management
  • Detailed analytics and reporting
  • QR code generation
  • API access for automation

Custom Domains

Adding a Domain
  1. Go to Settings → Custom Domains
  2. Enter your domain name (e.g., link.yourdomain.com)
  3. Add the required DNS records to your domain registrar
  4. Click "Verify" once DNS propagation is complete (usually 5-30 minutes)
Required DNS Records
Type Name Value Purpose
CNAME link links.vsl.im Points traffic to our servers
TXT _vsl-verify.link vsl-verify=abc123... Proves domain ownership
SSL Certificates

SSL certificates are automatically provisioned via Let's Encrypt once your domain is verified. This process typically takes 1-5 minutes.

Custom Landing Pages

You can customize the page visitors see when accessing your domain root (e.g., link.yourdomain.com). Add custom HTML, CSS, and JavaScript in the domain settings.

QR Codes

Every link you create can have a QR code generated. QR codes are ideal for:

  • Print materials (flyers, business cards, posters)
  • Product packaging
  • Digital signage
  • Event materials
Generating QR Codes
  1. Go to Tools → QR Generator
  2. Search and select the link you want
  3. Customize size and format (PNG, SVG, PDF)
  4. Download or copy the QR code
Best Practices
  • Use at least 300 DPI for print materials
  • Ensure adequate contrast between QR code and background
  • Test QR codes before printing at scale
  • Include a short URL text fallback for accessibility

Analytics

Available Metrics
  • Clicks: Total number of times your link was accessed
  • Unique visitors: Deduplicated by IP/device combination
  • Geographic data: Country, region, and city breakdown
  • Devices: Desktop, mobile, tablet breakdown
  • Browsers: Chrome, Firefox, Safari, Edge, etc.
  • Operating systems: Windows, macOS, iOS, Android, Linux
  • Referrers: Where traffic is coming from
  • Time series: Clicks over time with hourly/daily/weekly views
Data Retention

Analytics data is retained based on your plan:

  • Free: 30 days
  • Pro: 1 year
  • Business: 2 years
  • Enterprise: Unlimited
Exporting Data

Export analytics data as CSV or JSON from the link details page or via the API.

Password Protection

Protect sensitive links with a password. When visitors access the link, they'll be prompted to enter the password before being redirected.

Setting a Password
  1. When creating or editing a link, expand "Advanced Options"
  2. Enter a password in the "Password Protection" field
  3. Save the link
Password Requirements
  • Minimum 4 characters
  • Stored securely using bcrypt hashing
  • Can be changed or removed at any time

API Reference

Authentication

All API requests require authentication via Bearer token. Get your API token from Settings → API.

Authorization: Bearer your-api-token-here
Base URL
https://dev.vsl.im/api.php
Endpoints
POST /api.php

Create a new short link

Request Body:
{
  "url": "https://example.com/long-url",
  "alias": "my-custom-alias",  // optional
  "domain_id": 123,            // optional, use custom domain
  "password": "secret",        // optional
  "expiration": "2026-12-31"   // optional, ISO 8601 date
}
GET /api.php?action=list

List your links with optional search

Query Parameters:
  • q - Search query (optional)
  • limit - Results per page (default 50)
  • offset - Pagination offset
GET /api.php?action=stats&slug=abc123

Get analytics for a specific link

GET /api.php?action=domains

List your custom domains

PATCH /api.php?slug=abc123

Update an existing link

DELETE /api.php?slug=abc123

Delete a link

View Full API Documentation →

Integrations

Official Integrations
Chrome Extension

Right-click any page to create a short link instantly. Syncs with your vsl.im account.

Google Sheets

Create and manage links directly from Google Sheets. Bulk import/export support.

Slack

Create short links with /shorten command. Get notifications for link milestones.

Zapier

Connect vsl.im to 5,000+ apps. Automate link creation from form submissions, CRM events, etc.

Developer Libraries
JavaScript/Node.js
npm install vsl-im
Python
pip install vsl-im
PHP
composer require vsl/sdk
cURL Example
curl -X POST https://dev.vsl.im/api.php \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/my-long-url"}'

Organizations & Teams

Organizations allow you to collaborate with team members, share resources, and manage links collectively.

Creating an Organization
  1. Go to Tools → Organization
  2. Click "Create Organization"
  3. Enter a name for your organization
Roles
  • Owner: Full control, billing, can delete organization
  • Admin: Manage members, settings, domains
  • Member: Create and manage own links, use shared domains
Inviting Members

Click "Invite Member" in your organization dashboard. Enter their email address and select a role. They'll receive an invitation link to join.

SSO Configuration

Enterprise organizations can configure Single Sign-On (SSO) to allow members to authenticate using their existing identity provider.

Supported Providers
  • Microsoft Entra ID (Azure AD)
  • Google Workspace
  • Okta
  • Any SAML 2.0 provider
  • Any OAuth 2.0/OpenID Connect provider
Setup Steps
  1. Go to Organization → SSO Settings
  2. Select your identity provider type
  3. Enter Client ID, Client Secret, and issuer URL
  4. Configure the callback URL in your identity provider
  5. Test the connection and enable SSO

Webhooks

Receive real-time notifications when events occur in your account.

Available Events
  • link.created - New link created
  • link.clicked - Link was clicked
  • link.updated - Link was modified
  • link.deleted - Link was deleted
  • link.expired - Link reached expiration date
  • domain.verified - Custom domain verified
Payload Format
{
  "event": "link.clicked",
  "timestamp": "2026-01-26T12:00:00Z",
  "data": {
    "short_code": "abc123",
    "long_url": "https://example.com",
    "visitor": {
      "country": "US",
      "device": "mobile",
      "browser": "Chrome"
    }
  }
}

Rate Limits

API requests are rate-limited based on your plan:

Plan Requests/Hour Burst Limit
Free10010/minute
Pro1,00050/minute
Business10,000200/minute
EnterpriseCustomCustom
Rate Limit Headers

Every API response includes headers showing your current rate limit status:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1706270400

Security

Data Protection
  • All data encrypted in transit (TLS 1.3)
  • Sensitive data encrypted at rest (AES-256)
  • Passwords hashed using bcrypt
  • API tokens securely generated and stored
Link Security
  • Automatic malware scanning of destination URLs
  • Phishing detection and blocking
  • Spam and abuse prevention
  • Manual review and reporting system
Account Security
  • Two-factor authentication (TOTP)
  • Session management and revocation
  • Login history and notifications
  • API token rotation

Troubleshooting

Common Issues
Custom domain not working

Ensure DNS records are correctly configured and propagated. Use dig or online DNS checkers to verify. SSL provisioning may take up to 5 minutes after verification.

Link shows "expired" but shouldn't

Check the expiration date in link settings. Dates are in UTC timezone. Edit the link to update or remove the expiration.

API returning 401 Unauthorized

Verify your API token is correct and hasn't expired. Regenerate from Settings → API if needed. Ensure the Authorization header format is correct.

Analytics not showing clicks

Analytics may have a 1-5 minute delay. If using ad blockers or privacy browsers, some clicks may not be tracked. Check that the link is correctly redirecting.

Contact Support →