Developer centre · API v1
Create and manage short links from your website, application, backend or automation. This guide covers authentication, request fields, code samples, responses and usage limits.
Use the production API base URL below. All request and response bodies use JSON. Send requests over HTTPS.
Quick setup: Sign in to your Zynko publisher account, generate an API key, store it as a server-side secret, then call the create-link endpoint.
Never put your API key in browser JavaScript, mobile app bundles, public repositories or client-side environment variables.
The API uses a personal API key with the HTTP Bearer authentication scheme. Include the key in the Authorization header on every API request.
Authorization: Bearer YOUR_ZYNKO_API_KEY
Content-Type: application/jsonKeys begin with lv_live_. Generate, rotate and revoke keys from the signed-in API documentation page. The complete key is shown only once immediately after generation; only its prefix is stored for later display.
Rotating a key replaces the previous key. Revoking it immediately makes requests using that key return 401 Unauthorized.
/api/v1/linksCreate a short link owned by the publisher account associated with the API key.
Request body
{
"url": "https://example.com/article",
"customCode": "my-link",
"expiresAt": "2027-01-01T00:00:00.000Z"
}Successful response · 201 Created
{
"code": "my-link",
"shortUrl": "https://linkveda-shortner.vercel.app/my-link",
"destinationHost": "example.com"
}/api/links/:codeNo API key requiredFetch basic public metadata for an existing short code. Replace :code with the short code.
GET https://linkveda-api.onrender.com/api/links/my-link{
"code": "my-link",
"destinationHost": "example.com",
"status": "active",
"expiresAt": null,
"clicks": 12,
"createdAt": "2026-01-01T12:00:00.000Z"
}This lookup returns metadata only; it does not reveal the full destination URL. A missing code returns 404. The short-link redirect itself may return 410 Gone when disabled or expired.
All management endpoints below require the same Bearer API key and operate only on links owned by that publisher account.
/api/v1/links?page=1&limit=20List your links with pagination. The limit is 1–100 (default 20). Response includes links, shortUrl, status, expiry, clicks and page metadata.
curl "https://linkveda-api.onrender.com/api/v1/links?page=1&limit=20" -H "Authorization: Bearer YOUR_ZYNKO_API_KEY"/api/v1/links/:codeEnable or disable a link you own. JSON body:
{
"status": "disabled"
}curl -X PATCH "https://linkveda-api.onrender.com/api/v1/links/my-link" -H "Authorization: Bearer YOUR_ZYNKO_API_KEY" -H "Content-Type: application/json" -d '{"status":"disabled"}'/api/v1/links/:codePermanently delete a link you own and its associated click analytics records. This action cannot be undone.
curl -X DELETE "https://linkveda-api.onrender.com/api/v1/links/my-link" -H "Authorization: Bearer YOUR_ZYNKO_API_KEY"Analytics are scoped to links owned by the API-key account. Click data includes totals, daily activity for the last 30 days, countries, devices and browsers.
/api/v1/analyticsGet account-wide analytics across all your links.
curl "https://linkveda-api.onrender.com/api/v1/analytics" -H "Authorization: Bearer YOUR_ZYNKO_API_KEY"/api/v1/links/:code/analyticsGet analytics for one link you own.
curl "https://linkveda-api.onrender.com/api/v1/links/my-link/analytics" -H "Authorization: Bearer YOUR_ZYNKO_API_KEY"Analytics response fields: totalClicks, validClicks, daily, countries, devices and browsers. Per-link analytics also includes the link summary.
| Field | Type | Required | Rules |
|---|---|---|---|
| url | string | Yes | Valid HTTP/HTTPS URL; max 2048 characters. Local/private network destinations and URLs with embedded credentials are blocked. |
| customCode | string | No | 4–24 characters; letters, numbers, underscore or hyphen. Must be unique. |
| expiresAt | ISO 8601 datetime | No | Valid date-time, e.g. 2027-01-01T00:00:00.000Z. Expired links return HTTP 410 when opened. |
Omit optional fields when they are not needed. If customCode is omitted, the service generates a short code automatically.
curl -X POST "https://linkveda-api.onrender.com/api/v1/links" \ -H "Authorization: Bearer YOUR_ZYNKO_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com/article","customCode":"my-link"}'Install the relevant HTTP client if required. Keep the API key in a server-side environment variable named ZYNKO_API_KEY.
Send a real request to the production endpoint. Each successful test creates an actual short link in your publisher account.
Checking your account…
The key is held temporarily in this page and sent to the API endpoint for this request. Use this tester only on a trusted device; never share this page while a key is entered.
Successful responses use JSON. Validation and application errors return JSON; rate-limit responses may be plain text depending on the limiter response. Successful creation returns 201. Common errors:
| HTTP | Meaning | What to do |
|---|---|---|
| 400 | Invalid URL, custom code or expiry date; unsafe destination. | Check the request fields and use a public HTTP/HTTPS destination. |
| 401 | Missing, invalid or revoked API key. | Send a valid Bearer key or generate a new key. |
| 409 | Custom short code is already in use. | Choose another custom code. |
| 404 | Unknown API route or short-link code. | Check the endpoint path and short code. |
| 413 | Request body exceeds the 32 KB JSON limit. | Reduce the request payload. |
| 429 | Rate limit exceeded. | Wait for the limit window to reset and respect the response headers. |
| 500 | Unexpected server error. | Retry later; contact support if it continues. |
Error response example:
{
"error": "This short code is already in use."
}Validation errors may also include a details object with field-level information.
The API-key create-link endpoint is limited to 60 requests per hour. A global API limit of 120 requests per minute also applies. The server rate limiter applies these limits using its configured client identity; they are not per-account quotas.
Rate-limit headers may include RateLimit-Policy and RateLimit. When you receive HTTP 429, stop retrying immediately and wait before sending more requests. Do not assume an exact reset timestamp unless a response header provides one.
Request bodies are limited to 32 KB JSON by the API server.