For developers

A URL shortener API that does not track the people who click

Create, list, update, pause, and delete short links programmatically with Bearer-token authentication and batch endpoints — against a service that records a redirect count and nothing else about your visitors.

Authentication

Create an API key from the web app while signed in — keys cannot be created with a Bearer token, only with a browser session. The secret is shown once at creation, so store it immediately.

Send it as a standard Bearer header. When an Authorization header is present, the API validates that key only and will not fall back to your session cookie, so a bad key fails cleanly rather than silently succeeding as your logged-in user.

curl -X POST https://api.linkonda.com/api/links \
  -H "Authorization: Bearer lk_your_secret_here" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/a-very-long-url","expiresInDays":30}'

Endpoints

EndpointMethodPurpose
/api/linksPOSTCreate one short link
/api/links/batch-createPOSTCreate up to 100 links in one request
/api/linksGETList your links
/api/links/{slug}PATCHPause, resume, or repoint a link
/api/links/{slug}DELETEDelete a link
/api/links/batch-patchPOSTPause or resume up to 100 links
/api/links/batch-deletePOSTDelete up to 100 links
/api/links/{slug}/statsGETTotal redirect count (public)
/api/quotaGETRemaining link allowance for the key's account
/api/plansGETPublic plan catalogue (no auth)

Batch operations

The three batch endpoints each accept up to 100 items per request, which keeps bulk imports and campaign teardown to a handful of calls rather than hundreds. Batch create takes the same per-link options as the single-link endpoint, including expiresInDays, so you can create short-lived links for an event and let them clean themselves up.

Batch routes require a key or a session — they are not available anonymously.

Predictable errors

Every error response carries a stable code field intended for branching in your own code, rather than a human-readable message that may be reworded later. Free accounts calling a Bearer-authenticated route get API_KEY_REQUIRES_PAID with a 403, so upgrade prompts are easy to wire up.

The complete list is on the API error codes page.

Custom domains through the API

Links created through the API can be served from your own hostname once it is verified by DNS TXT record, so programmatic links carry your brand rather than a shared shortener domain. Plus includes 3 custom domains and Pro includes 5 — see custom domain short links.

Frequently asked questions

How do I authenticate against the Linkonda API?
With an API key sent as an Authorization: Bearer header. Keys are created from the web app while signed in, and are shown once at creation. When an Authorization header is present the API validates only that key and does not fall back to a session cookie.
Which plans include API access?
Plus (€4.99/mo) includes 3 API keys, Pro (€14.99/mo) includes 10, and Enterprise includes 50. Free accounts receive a 403 with the code API_KEY_REQUIRES_PAID when using a Bearer token on link or quota routes.
Can I create links in bulk?
Yes. POST /api/links/batch-create accepts up to 100 links in one request. There are matching batch endpoints for deleting and pausing, each also capped at 100 items.
What data does the API return about clicks?
A total redirect count per link, from GET /api/links/{slug}/stats. There is no per-visitor data to return — no IP addresses, geolocation, device types, or referrers are recorded anywhere.
Are there rate limits and error codes?
Yes. Errors come back as a JSON object with a stable machine-readable code field, documented in full on the API error codes page, so you can branch on the code rather than parsing messages.