QLink Public API
Bulk URL shortening API with click analytics
Create short links in bulk, list all links, and pull click statistics by date, country, and device. Built for marketing workflows and Google Sheets automation.
- • Bulk link creation with a single request
- • Short URLs only (no internal IDs)
- • EU-hosted, privacy-first infrastructure
Base URL
https://api.qlink.fi/v1
Authentication
Authorization: Bearer <API_KEY>
Bulk create
POST /links/bulk
Quickstart
Use your API key from the QLink app. All requests are authenticated via the Authorization header.
Create a short link
curl -X POST https://api.qlink.fi/v1/links \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"original_url":"https://example.com"}'
Bulk create short links
curl -X POST https://api.qlink.fi/v1/links/bulk \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"links":[{"original_url":"https://example.com/a"},\
{"original_url":"https://example.com/b"}]}'
List links
curl -X GET "https://api.qlink.fi/v1/links?limit=50&order=desc&search=example.com" \ -H "Authorization: Bearer $API_KEY"
Get stats with date range
curl -X GET "https://api.qlink.fi/v1/stats?dimensions=date&start_date=2026-01-01&end_date=2026-01-31" \ -H "Authorization: Bearer $API_KEY"
Endpoints
The API exposes short URLs only. No internal IDs are required.
Link management
- POST /links — create a short link
- POST /links/bulk — create many links
- GET /links — list your links
Analytics & quota
- GET /stats — click analytics
- GET /quota — plan usage
Built for bulk link creation
Create hundreds of campaign short links in a single request. Pair with Google Sheets for fast campaign setup and reporting. Bulk creation is the fastest way to launch large campaigns with clean, trackable links.
Batch ready
Send multiple URLs and receive short links back instantly.
Analytics retention
Retention windows depend on your plan (7/30/90/180 days).
Reliable quotas
Use /quota to monitor usage in real time.
Rate limits
Rate limits are enforced per API key. Each response includes rate limit headers so you can manage throughput safely.
- X-RateLimit-Limit — requests per minute
- X-RateLimit-Remaining — remaining requests
- X-RateLimit-Reset — reset timestamp
Errors
Errors use a consistent JSON envelope and standard HTTP status codes.
{
"error": {
"code": "string",
"message": "string",
"details": {}
}
}
- 400 invalid request
- 401 invalid API key
- 403 plan limit exceeded or forbidden
- 409 conflict (custom back-halve already exists)
- 422 validation errors
- 429 rate limit exceeded
- 503 service not ready