URL Shortener
Create and manage smart short links with advanced tracking and customization
Overview
The URL Shortener is the core of GrowQR. Every short link you create is more than a redirect — it's a trackable, customizable asset that captures click data, supports conditional routing, and integrates with the rest of the platform (campaigns, QR codes, landing pages). Links can be created one at a time from the dashboard, in bulk via CSV, or programmatically through the REST API.
What Problem It Solves
Raw URLs are long, ugly, and impossible to track. Sharing https://example.com/products/widget-pro?utm_source=twitter&utm_medium=social&utm_campaign=spring on a social post looks unprofessional and tells you nothing about who clicked. GrowQR replaces that with a clean, branded link like brand.link/widget while silently recording every interaction — device, location, referrer, and timestamp — so you can measure what's working.
How It Works
When a visitor clicks a short link, the GrowQR edge network resolves the alias, logs the click metadata, and issues a 301 or 302 redirect to the destination URL — all in under 50 ms. If the link has conditions (password, expiration, geo-targeting), those are evaluated at the edge before the redirect fires.
Visitor clicks brand.link/widget
→ Edge resolves alias "widget"
→ Evaluates conditions (active, not expired, no password)
→ Logs click (IP, UA, referrer, timestamp)
→ 301 redirect to destination URL
Step-by-Step Usage
Creating a Link
- Navigate to Dashboard → Links and click New Link.
- Paste the destination URL in the Long URL field.
- Set a title for easy identification in the dashboard (optional).
- Set a custom alias or leave blank for an auto-generated short code.
- Select a campaign to associate the link with (optional).
- Choose a custom domain from the dropdown (optional — only verified and active domains appear). When a custom domain is selected, your short link becomes
yourdomain.com/aliasinstead of the default platform URL. - Configure advanced options: expiration date, password protection, or UTM parameters.
- Click Create Link.
Custom Aliases
Custom aliases make links memorable and on-brand. Rules:
- 3–64 characters
- Alphanumeric, hyphens, and underscores only
- Case-insensitive (
/Saleand/saleresolve to the same link) - Must be unique within the selected domain
UTM Parameters
GrowQR has a built-in UTM builder so you never have to manually construct query strings. Fill in any combination of the five standard UTM fields:
| Parameter | Purpose | Example |
|---|---|---|
utm_source | Traffic origin | twitter, newsletter |
utm_medium | Marketing medium | social, email, cpc |
utm_campaign | Campaign name | spring-sale-2026 |
utm_term | Paid keyword | url+shortener |
utm_content | Ad variation | hero-banner-v2 |
The UTM values are appended to the destination URL at redirect time, keeping the short link itself clean.
Password Protection
Toggle Password Protection when creating or editing a link. Visitors who click the link will see a prompt before being redirected. Use cases include:
- Gated content for paid subscribers
- Early-access links for beta testers
- Internal links shared in public channels
Expiration
Set an Expiration Date to automatically deactivate a link after a deadline. Expired links return a configurable 404 page or redirect to a fallback URL. This is useful for:
- Limited-time offers
- Event registrations
- Temporary download links
Bulk Link Creation
For large campaigns, create links in bulk:
- Go to Links → Bulk Create (or click the Bulk Create button on the Links page).
- Upload a CSV file or add rows manually. The CSV supports these columns:
destination_url(required) — the long URL to shortenalias(optional) — custom short code; leave empty for auto-generatedtitle(optional) — a friendly label for the link
- Review the preview table. The system validates each row in real time:
- Checks URL format (must be a valid
http://orhttps://URL) - Validates alias format (alphanumeric, hyphens, underscores, max 50 chars)
- Detects duplicate aliases within the batch
- Color-coded status: green check = valid, red X = error with details
- Checks URL format (must be a valid
- Edit any row inline to fix errors — the table updates validation instantly.
- Optionally select a campaign to associate all links with.
- Click Create All. Error rows are skipped; valid rows are created.
- Review the results page showing success/failure counts and details of any failures.
You can also download a CSV template from the Bulk Create page to get started quickly.
CSV format example:
destination_url,alias,title
https://example.com/page1,my-link,My First Link
https://example.com/page2,,My Second Link
https://example.com/page3,sale-page,
API Usage
Create links programmatically using the REST API. Both JWT tokens and API keys are supported for authentication.
Basic link creation:
curl -X POST https://api.growqr.io/v1/urls \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"destinationUrl": "https://example.com/landing",
"customAlias": "spring-sale",
"tags": ["email", "q2"],
"utmSource": "newsletter",
"utmMedium": "email",
"utmCampaign": "spring-sale-2026",
"expiresAt": "2026-06-01T00:00:00Z"
}'With custom domain and campaign:
curl -X POST https://api.growqr.io/v1/urls \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"destinationUrl": "https://example.com/landing",
"customAlias": "spring-sale",
"domainId": "uuid-of-verified-domain",
"campaignId": "uuid-of-campaign",
"utmSource": "newsletter"
}'Bulk creation:
curl -X POST https://api.growqr.io/v1/urls/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": [
{ "destinationUrl": "https://example.com/page1", "customAlias": "page1" },
{ "destinationUrl": "https://example.com/page2", "customAlias": "page2" }
]
}'The response includes the full short URL, a unique link ID, and associated domain:
{
"id": "lnk_abc123",
"shortUrl": "https://promo.brand.com/spring-sale",
"destinationUrl": "https://example.com/landing",
"domain": { "id": "...", "domain": "promo.brand.com" },
"createdAt": "2026-03-05T10:30:00Z"
}Best Practices
- Keep aliases short and descriptive.
/spring-salebeats/ss2026q2promo. - Use tags consistently. Agree on a tagging taxonomy with your team before you have hundreds of links.
- Set fallback URLs for expiring links so visitors aren't left on a dead page.
- Rotate API keys periodically and scope them to the minimum required permissions.
- Leverage the
metafield in the API to store internal reference IDs from your CRM or ad platform for easier reconciliation. - Avoid editing destination URLs on high-traffic links without a redirect chain plan — analytics continuity depends on it.
Example Workflows
Email Campaign with A/B Subject Lines
- Create two links with the same destination but different UTM content values (
subject-a,subject-b). - Place each link in the corresponding email variant.
- After sending, compare click-through rates on the campaign analytics page to determine the winning subject line.
Social Media Content Calendar
- At the start of each week, bulk-create links for every post in your content calendar.
- Tag each link with the platform (
twitter,linkedin,instagram) and content pillar. - Use the tag filter in Analytics to see which platforms and topics drive the most engagement.
Partner & Affiliate Tracking
- Create a unique short link for each partner pointing to the same landing page.
- Assign a
partnertag and setutm_sourceto the partner name. - Share only that partner's link with them.
- Use per-link analytics to attribute traffic and conversions to each partner without third-party tracking scripts.