Developer API Reference POST v1

Create Short Link (POST /api/v1/links)

Programmatically create short links with custom aliases, expiration, password protection, and UTM parameters.

Updated Yesterday 1 min read Verified
SDK & Request Quickstart Select your language
curl -X POST https://klic.in/api/v1/links   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{
    "destination": "https://mybrand.com/products/summer-collection",
    "customSlug": "summer-sale-2026",
    "title": "Summer Campaign"
  }'
const response = await fetch("https://klic.in/api/v1/links", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    destination: "https://mybrand.com/products/summer-collection",
    customSlug: "summer-sale-2026",
    title: "Summer Campaign"
  })
});

const data = await response.json();
console.log("Short URL:", data.data.shortUrl);
import requests

url = "https://klic.in/api/v1/links"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "destination": "https://mybrand.com/products/summer-collection",
    "customSlug": "summer-sale-2026",
    "title": "Summer Campaign"
}

response = requests.post(url, json=payload, headers=headers)
print("Short URL:", response.json()["data"]["shortUrl"])
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var jsonPayload = @"{
    ""destination"": ""https://mybrand.com/products/summer-collection"",
    ""customSlug"": ""summer-sale-2026"",
    ""title"": ""Summer Campaign""
}";

var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://klic.in/api/v1/links", content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
$curl = curl_init();

$payload = json_encode([
    "destination" => "https://mybrand.com/products/summer-collection",
    "customSlug"  => "summer-sale-2026",
    "title"       => "Summer Campaign"
]);

curl_setopt_array($curl, [
    CURLOPT_URL => "https://klic.in/api/v1/links",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $payload,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
echo "Short URL: " . $data["data"]["shortUrl"];
200 OK 18ms application/json
{
  "status": "success",
  "data": {
    "id": "link_9a482b1c",
    "shortUrl": "https://klic.in/launch2026",
    "destination": "https://mybrand.com/launch-promo",
    "domain": "klic.in",
    "clicks": 0,
    "createdAt": "2026-08-20T13:36:12.842Z"
  }
}

Create Short Link

Create a new shortened URL inside your workspace.

Endpoint

HTTP
POST https://klic.in/api/v1/links
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

Request Parameters

ParameterTypeRequiredDescription
destinationstringYesThe full target destination URL.
customSlugstringNoDesired custom alias (e.g. summer-sale-2026).
titlestringNoInternal campaign label.
domainstringNoCustom branded domain. Defaults to klic.in.

Response

JSON
{
  "success": true,
  "data": {
    "id": 14205,
    "shortCode": "summer-sale-2026",
    "shortUrl": "https://klic.in/summer-sale-2026",
    "destination": "https://mybrand.com/products/summer-collection",
    "title": "Summer Campaign Launch",
    "domain": "klic.in",
    "clicks": 0,
    "createdAt": "2026-08-20T14:30:00Z"
  }
}

HTTP Response Status Codes

{
  "success": true,
  "statusCode": 200,
  "data": {
    "id": "link_89412a8f",
    "shortCode": "summer-2026",
    "shortUrl": "https://klic.in/summer-2026",
    "destination": "https://mybrand.com/summer-collection",
    "clicks": 0,
    "createdAt": "2026-08-20T17:05:00Z"
  }
}
{
  "success": false,
  "statusCode": 400,
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "The destination URL must be a valid absolute URI (HTTP/HTTPS)."
  }
}
{
  "success": false,
  "statusCode": 401,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Missing or invalid Bearer API token in Authorization header."
  }
}
{
  "success": false,
  "statusCode": 429,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit of 100 requests per second exceeded for your workspace plan."
  }
}