Shorten URLs programmatically from your own app, script, or backend service. Free, 60 requests per hour per key.
API access is currently by request. Email [email protected] with a short description of what you're building. We'll reply within two business days with your key.
Keys look like eai_live_ followed by 40 mixed-case characters. Treat them like passwords — anyone with the key can make requests on your behalf. We only store a hash server-side, so if you lose your key, we'll issue a new one.
Every request must include your key in the X-API-Key request header. No other auth is required.
curl -X POST https://api.edtecinfo.com/api/v1/shorten \
-H "X-API-Key: eai_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/very/long/path"}'Missing, malformed, or revoked keys return 401.
/api/v1/shortenCreate a short URL. Returns the new short code and the full shortened URL.
Send as application/json.
| Field | Type | Required | Notes |
|---|---|---|---|
url | string | yes | The destination URL. Must include the scheme (https://). |
alias | string | no | Custom short code, e.g. my-link. 3–32 chars, letters/numbers/dash/underscore. If omitted, a 7-character code is generated. |
label | string | no | Internal note for your own reference. Not shown publicly. |
curl -X POST https://api.edtecinfo.com/api/v1/shorten \
-H "X-API-Key: eai_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/very/long/path"}'201{
"code": "GK7TeT2",
"short_url": "https://sikai.io/GK7TeT2",
"destination_url": "https://example.com/very/long/path",
"created_at": "2026-10-05T15:03:27+05:45"
}destination_url echoes the URL you sent. The actual redirect is served by the short_url.
{
"error": "Invalid or revoked API key."
}Returned when url or alias fails validation. Possible messages:
URL is required.URL is too long. — over 2000 charactersPlease enter a valid URL (including https://).Only http and https URLs are allowed.URL is missing a host.URL host looks invalid.Alias must be 3–32 characters: letters, numbers, dash, underscore.That alias is reserved. — reserved words like api, admin, login{
"error": "URL is required."
}The custom alias you requested is already in use. Choose a different one, or omit alias to let the server generate a unique code.
{
"error": "Alias already taken."
}You've exceeded the per-key hourly quota. Back off and retry after the hour resets.
{
"error": "Rate limit exceeded. Try again later."
}Something went wrong on our side. Retry with exponential backoff; if it persists, email [email protected].
{
"error": "Unexpected server error."
}Each key is limited to 60 requests per hour by default. The limit is per key, not per IP. If you need more, email us and we'll raise it.
Exceeding the limit returns 429. Build in exponential backoff on your side rather than retrying immediately.
The current version is v1. If we need to ship a breaking change, it goes out under /api/v2/ and/api/v1/ stays live for at least six months after the announcement. Non-breaking additions (new optional fields, new endpoints) can ship on v1 without notice.
Key requests, rate-limit increases, bug reports, and everything else: [email protected].