eSMS Links
Quickstart
Create your first short link and QR code with the eSMS Links API.
Create a short link, follow it, and read its analytics in three requests.
1. Get an API key
Sign in at links.esmsafrica.io, open API Keys, and create a live key. It looks like esms_l_… and is shown only once. See Authentication for details.
A paid plan is required to create links and keys - eSMS Links has no free tier.
2. Create a short link
curl -X POST https://links.esmsafrica.io/v1/links \
-H "Authorization: Bearer esms_l_your_key" \
-H "Content-Type: application/json" \
-d '{
"destination_url": "https://example.com/a/very/long/path?utm_campaign=launch"
}'Response:
{
"id": "0f5c84e2-7a1e-43d2-8aa1-c0ce93114605",
"alias": "Ab12Xy",
"short_url": "https://go.esmsafrica.io/Ab12Xy",
"destination_url": "https://example.com/a/very/long/path?utm_campaign=launch",
"status": "active",
"click_count": 0,
"created_at": "2026-08-03T09:00:00Z"
}Want a custom back-half? Add "alias": "launch" to get https://go.esmsafrica.io/launch.
3. Share it
Anyone who opens https://go.esmsafrica.io/Ab12Xy is redirected to your destination, and the click is tracked.
4. Read the analytics
Use the id from step 2:
curl https://links.esmsafrica.io/v1/analytics/0f5c84e2-7a1e-43d2-8aa1-c0ce93114605?days=30 \
-H "Authorization: Bearer esms_l_your_key"{
"link_id": "0f5c84e2-7a1e-43d2-8aa1-c0ce93114605",
"range_days": 30,
"totals": { "clicks": 128, "uniques": 96 },
"timeline": [ { "day": "2026-08-03", "clicks": 12, "uniques": 9 } ],
"by_country": { "NG": 48, "KE": 34, "GH": 21 },
"by_device": { "mobile": 105, "desktop": 20, "tablet": 3 },
"by_browser": { "Chrome": 88, "Safari": 30 },
"by_referrer": { "twitter.com": 40, "direct": 60 }
}Generate a QR code
curl -X POST https://links.esmsafrica.io/v1/qr \
-H "Authorization: Bearer esms_l_your_key" \
-H "Content-Type: application/json" \
-d '{ "url": "https://go.esmsafrica.io/Ab12Xy", "fg_color": "#1F1B17" }'The response includes a png field with a data:image/png;base64,… URI you can render or save. You can also download any saved QR at GET /v1/qr/{id}.png.