ExaLink API
Beta
REST

ExaLink API

Build trackable communication experiences with smart links and analytics. Shorten destinations, brand URLs, attach UTM parameters, gate access, and measure every click — from SMS, WhatsApp, email, or any channel.

Smart Short Links

Turn long destinations into clean short URLs on sndx.in with optional custom slugs.

Click Analytics

Track total clicks, unique visitors, countries, devices, referrers, and timeseries — all via API.

UTM Automation

Attach source, medium, campaign, term, and content parameters so every click is attribution-ready.

Access Controls

Password-protect links, set expiry timestamps, and cap max clicks for campaigns and gated content.

Real-time Webhooks

Receive exalink.click and exalink.converted events the moment users engage with your links.

Branded Domains

Serve links from your custom domain (e.g. go.yourbrand.com) once verified in the dashboard.

Redirect Latency

<50ms

p95 edge redirect

Analytics Delay

~1s

click to API visibility

Rate Limit

100/s

per API key

Max Clicks Cap

Unlimited

or set per link

Quick Start

Create your first trackable smart link in under a minute. Base URL: https://api.sendexa.co

Bash
curl -X POST 'https://api.sendexa.co/v1/exalink/links' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \
-d '{
"destination": "https://shop.example.com/summer-sale",
"slug": "summer26",
"title": "Summer Sale 2026",
"utm": {
"source": "sms",
"medium": "campaign",
"campaign": "summer_sale_2026"
}
}'

Response

JSON
{
"success": true,
"code": "LINK_CREATED",
"message": "Smart link created successfully.",
"requestId": "REQ-1782200144001",
"timestamp": "2026-07-12T10:15:44.001Z",
"data": {
"id": "link_01HZXK9P2M7QVR8N4W3T6Y5B0A",
"shortUrl": "https://sndx.in/summer26",
"slug": "summer26",
"domain": "sndx.in",
"destination": "https://shop.example.com/summer-sale?utm_source=sms&utm_medium=campaign&utm_campaign=summer_sale_2026",
"title": "Summer Sale 2026",
"status": "active",
"utm": {
"source": "sms",
"medium": "campaign",
"campaign": "summer_sale_2026",
"term": null,
"content": null
},
"passwordProtected": false,
"maxClicks": null,
"expiresAt": null,
"clicks": 0,
"uniqueClicks": 0,
"createdAt": "2026-07-12T10:15:44.001Z",
"updatedAt": "2026-07-12T10:15:44.001Z"
}
}

API Endpoints

All paths are relative to https://api.sendexa.co.

How ExaLink Works
1

Create

POST a destination URL (and optional slug, domain, UTM, password, expiry).

2

Share

Put the short URL in SMS, WhatsApp, email, QR codes, or ads.

3

Redirect

Users hit the short URL; ExaLink records the click and 302s to the destination.

4

Measure

Poll analytics or receive webhooks for every click and conversion.

Common Use Cases
SMS & WhatsApp CTAs

Keep messages short while tracking which campaign, segment, or sender ID drives the most clicks and conversions.

Gated downloads

Password-protect PDF or portal links, expire them after an event, or stop traffic after a max-click budget.

Campaign attribution

Standardize UTM tagging across channels and pull country/device breakdowns without a separate analytics stack.

Link Statuses
StatusMeaningUser experience
activeLink is live and accepting clicks302 redirect to destination
pausedTemporarily disabled via PATCHShows paused / unavailable page
expiredexpiresAt is in the pastShows expired landing page
cappedmaxClicks reachedShows limit-reached page
deletedRemoved via DELETE404 — link no longer exists
Common Error Codes
HTTPCodeCause
400INVALID_DESTINATIONDestination is missing, not HTTPS/HTTP, or malformed
400INVALID_SLUGSlug has invalid characters or reserved words
401UNAUTHORIZEDMissing or invalid Authorization header
403DOMAIN_NOT_VERIFIEDCustom domain is not verified for this business
404LINK_NOT_FOUNDLink id does not exist or belongs to another account
409SLUG_TAKENSlug already in use on that domain
429RATE_LIMIT_EXCEEDEDExceeded 100 req/s — use exponential backoff