Features

Everything Kondaino can do, plan by plan. No feature is held back behind a "contact sales" wall — if it's not on your plan, it's listed here so you know exactly what upgrading gets you.

How short links work

Submit a long URL from your dashboard, the bulk-import CSV, or the API, and Kondaino returns a short code that resolves at https://kdourl.com/<code> — for example https://kdourl.com/g. Visiting that link redirects straight to your original URL; nothing is shown in between. Registration, login, the dashboard, and the API all live at kdourl.com as well — this site (kondaino.com) is the marketing pitch for that product, not where links are created or resolved.

Beyond the free plan, Kondaino comes in two paid tiers: Standard Services (link shortening + full API) and Custom Services (Standard Services plus a domain of your own, bundled into one term). Feature-for-feature they're identical except for the domain — see /pricing for the full price breakdown by commitment term.

FeatureFreeStandard ServicesCustom Services
Active links 25 100,000 100,000
Link expiry 6 months (fixed) Up to 24 months — pick your own date Up to 24 months — pick your own date
Link health monitoring (malware, broken links, SSL) Yes Yes Yes
One-time & click-limited links Yes Yes
Link groups / campaigns Yes Yes Yes
Bulk CSV import Yes (up to 200 rows/upload) Yes (up to 200 rows/upload) Yes (up to 200 rows/upload)
Click counts on your dashboard Yes Yes Yes
One-click clipboard copy Yes Yes Yes
QR code for each short link Yes Yes
API access (create/list links by token) Yes Yes
Domain of your own, bundled into your term Yes — at Hostinger's cost, no markup
Minimum term 6 months 1 year
Credit card required No No — upgrade by email, cancel by email No — upgrade by email, cancel by email

Every plan gets the same privacy guarantee: we only ever log a click count, never an IP address, device fingerprint, or referrer. See /about for the full pitch on pricing and privacy.

Link health monitoring

Every link is checked for known malware/phishing listings and basic reachability when you create it, and re-checked automatically about once a day after that — broken destinations, malware/abuse listings, expired or soon-to-expire SSL certificates, and long redirect chains are all flagged. Available on every plan, including free.

One-time & click-limited links (Standard & Custom Services)

Standard Services and Custom Services accounts can cap a link at a set number of visits — a one-time link that stops working after its first click, or a custom limit up to 100,000 — instead of relying on a time-based expiry. The link stops resolving the moment it hits its limit, same as a normal expired link. Not included on the free plan.

Link groups

Organize links into named groups — e.g. one per marketing campaign or newsletter issue — from the "Groups" section of your dashboard. Create, rename, and delete groups; assign a group when creating a link or importing a CSV; move an existing link between groups inline; and filter your links table down to a single group. Deleting a group never deletes its links — they just become ungrouped.

Bulk import

Upload a CSV with one URL per line and Kondaino creates a short link for each row, skipping a header row automatically if the first line isn't a URL. Optionally assign the whole batch to a group. Rows that would exceed your plan's link limit are reported as skipped rather than erroring out the whole upload.

QR codes (Standard & Custom Services)

Standard Services and Custom Services links come with a scannable QR code, available right from the link's row in your dashboard, with a choice of image size. Handy for print materials, signage, or anywhere a tap-to-scan beats typing out a URL. Scanning the code doesn't count as a click on the link's stats. Not included on the free plan.

Custom expiry dates (Standard & Custom Services)

Free links always expire 6 months after creation. Standard Services and Custom Services accounts can instead pick any date up to 24 months out on the create-link form — useful for a campaign link that should outlive (or expire well before) the default window.

API (Standard & Custom Services)

Generate a token from the "API access" section of your dashboard (shown once, at creation) and send it as a bearer token on every request:

Authorization: Bearer kdo_<token>

GET /api/links lists your active links. POST /api/links creates one, accepting either application/json or a form-encoded body with a long_url field. Responses are JSON with a top-level data key on success or error on failure. The API obeys the same plan limits as the dashboard, since both call the same underlying functions. There's no delete/revoke-link endpoint yet, and link groups can currently only be managed from the dashboard, not the API.

Each token is scoped — links:read for GET, links:write for POST — and rate-limited to 1,000 requests/hour by default. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers; going over the limit returns 429 with a Retry-After header.

Python

import requests

API_TOKEN = "kdo_..."
API_URL = "https://kdourl.com/api/links"
headers = {"Authorization": f"Bearer {API_TOKEN}"}

# Create a short link
resp = requests.post(API_URL, headers=headers, json={
    "long_url": "https://example.com/some/long/path",
})
resp.raise_for_status()
print(resp.json())
# {'data': {'id': 42, 'code': 'g', 'short_url': 'https://kdourl.com/g', 'long_url': '...'}}

# List your links
resp = requests.get(API_URL, headers=headers)
resp.raise_for_status()
for link in resp.json()["data"]:
    print(link["short_url"], "->", link["long_url"], f"({link['clicks']} clicks)")

PHP

<?php

$token = 'kdo_...';
$apiUrl = 'https://kdourl.com/api/links';

function kondaino_api(string $method, string $url, string $token, ?array $body = null): array
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $headers = ["Authorization: Bearer $token"];
    if ($body !== null) {
        $headers[] = 'Content-Type: application/json';
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}

// Create a short link
$created = kondaino_api('POST', $apiUrl, $token, [
    'long_url' => 'https://example.com/some/long/path',
]);
echo $created['data']['short_url'], "\n";

// List your links
$list = kondaino_api('GET', $apiUrl, $token);
foreach ($list['data'] as $link) {
    echo "{$link['short_url']} -> {$link['long_url']} ({$link['clicks']} clicks)\n";
}

Don't have a paid account yet? Email us to upgrade and we'll turn on API access — no demo, no sales call.

Hosting & Monitoring

Kondaino is built and deployed on Hostinger shared hosting day to day, with their VPS plans as the next step up if we ever outgrow it. We're a paying, satisfied customer of both — the link above is our referral code if you want to try Hostinger's shared hosting or VPS plans yourself.

Uptime is monitored around the clock by UptimeRobot — see our live status page for current and historical uptime. We're a happy customer there too; the link above is our referral link if you want to monitor your own sites.

Create your free account to get started.