Quick start
To call the link-management API, you need an active CKT.Life account and an API key. Register or sign in through the portal, then create an API key from your dashboard. The full key is displayed only once, so copy it and store it securely.
Your first API request
Replace YOUR_API_KEY and the destination URL with your own values.
curl -X POST "https://api.ckt.life/api/v1/links" \
-H "Content-Type: application/json" \
-H "X-CKT-API-Key: YOUR_API_KEY" \
-d '{
"destinationUrl": "https://www.example.com/products",
"title": "Product page",
"customAlias": "ExampleAlias",
"expiresAtUtc": "2026-11-06T00:25:46.791Z",
}'
A successful request returns the short link, its code and creation details.
{
"id": "link-id",
"shortCode": "aB12cd34",
"shortUrl": "https://ckt.life/aB12cd34",
"destinationUrl": "https://www.example.com/products",
"title": "Product page",
"createdAtUtc": "2026-01-01T12:00:00Z",
"expiresAtUtc": null,
"isActive": true
}
Authentication
CKT.Life uses two authentication methods for different purposes.
Account endpoints
Use the access token returned by registration or login for customer account and API-key management endpoints.
Authorization: Bearer YOUR_JWTLink API endpoints
Use an active API key created from your dashboard for link management, usage and analytics.
X-CKT-API-Key: ckt_live_...Registration and login are public endpoints. Public short-link redirects do not require either credential.
Account endpoints
These endpoints create an account or issue a JWT access token. They do not require an API key.
/api/auth/registerCreate an account and activate the Free plan.
{
"email": "developer@example.com",
"password": "Use-a-strong-password-123",
"companyName": "Example Company"
}Success: 201 Created with accessToken, expiresAtUtc, tenantId and plan. Password must be at least 12 characters.
/api/auth/loginAuthenticate an existing account.
{ "email": "developer@example.com", "password": "your-password" }Success: 200 OK with a JWT access token and account plan. Invalid credentials return 401 Unauthorized.
API key management
All API-key management operations require a JWT Bearer token. Create and revoke keys from your signed-in account.
/api/account/api-keysCreate an API key.
{ "name": "Production integration" }Returns the new key in apiKey. This is the only time the plaintext key is returned.
/api/account/api-keysList keys for your account. The response includes the key ID, name, creation date and revocation date, but never the secret.
/api/account/api-keys/{id}Revoke an API key by its GUID. Returns 204 No Content when successful, or 404 Not Found if the key does not exist for your account.
Short links
All endpoints in this section require the X-CKT-API-Key header. Send and receive JSON unless otherwise stated.
/api/v1/linksCreate a short link.
{
"destinationUrl": "https://www.example.com/page",
"customAlias": "my-link",
"title": "Campaign landing page",
"expiresAtUtc": null
}destinationUrl is required and must be an absolute HTTP or HTTPS URL. customAlias, title and expiresAtUtc are optional. Custom aliases must be 4–32 characters using letters, numbers, hyphens or underscores; reserved aliases are rejected.
Responses: 201 Created, 400 Bad Request for invalid input, 409 Conflict if an alias is taken, or 429 Too Many Requests if the link creation allowance has been reached.
/api/v1/links?page=1&pageSize=50List your links. Page defaults to 1; page size defaults to 50 and is limited to 1–100. Returns page, pageSize and an items array.
/api/v1/links/{id}Retrieve one link by its GUID. Returns 404 Not Found when it is not found for your account.
/api/v1/links/{id}Update a link's destination, title or expiry. Supply destinationUrl (required), title and expiresAtUtc in the JSON body. Returns 204 No Content or 404 Not Found.
{
"destinationUrl": "https://www.example.com/new-page",
"title": "Updated destination",
"expiresAtUtc": null
}
/api/v1/links/{id}Delete a link by its GUID. Returns 204 No Content or 404 Not Found.
Analytics and usage
Both endpoints require an active API key.
/api/v1/links/{code}/analyticsGet click totals for a short code. Returns shortCode, totalClicks, clicksThisMonth, clicksLast30Days and lastClickedAtUtc.
/api/v1/usageGet the current billing-period usage and plan limits, including links created, API requests, tracked clicks and request-rate limits.
Public short-link redirects
/{code}Redirect a visitor to the destination URL. No API key or JWT is required. An active short code returns an HTTP redirect; an unknown, inactive or invalid code returns 404 Not Found.
Example: https://ckt.life/yourCode (replace yourCode with a real code).
Responses and errors
| HTTP status | Meaning |
|---|---|
200 OK | Request completed successfully. |
201 Created | Resource created successfully. |
204 No Content | Operation completed with no response body. |
400 Bad Request | Invalid request data or URL. |
401 Unauthorized | Missing/invalid API key or invalid login credentials. |
404 Not Found | Resource or short code not found. |
409 Conflict | Email or custom alias is already in use. |
429 Too Many Requests | API request or link creation allowance has been exceeded. Check the response message and retry later. |
5xx | Unexpected server-side error. |
Common API error format
{
"code": "api_key_required",
"message": "Supply an API key using X-CKT-API-Key."
}
Validation errors may be returned as a standard ASP.NET Core validation-problem response. Do not repeatedly retry an authentication or validation failure without correcting the request.
Need a hand integrating?
Contact the CKT.Life team if you need help with API access or an integration.
Contact API support