Quikko provides two plans — Free and Pro — enforced server-side on every API call. The active URL limit and analytics time range are the primary differentiators between them. Plan enforcement happens entirely in the Go backend; no client-side trust is involved. The plan a user holds is read from the database on each operation, so it is never embedded in a JWT and cannot be spoofed by a tampered token.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Andr21Da16/Quikko/llms.txt
Use this file to discover all available pages before exploring further.
Plan comparison
| Feature | Free | Pro |
|---|---|---|
| Active URLs | Up to 5 | Unlimited |
| Analytics range | 24 hours | 24h, 7d, 30d |
| CSV export | — | ✓ |
| QR codes | ✓ | ✓ |
| Real-time dashboard | ✓ | ✓ |
| Custom aliases | ✓ | ✓ |
Free plan limits enforced
The backend enforces two hard limits for Free plan users. Active URL quota — A Free account may hold at most 5 simultaneously active URLs. Attempting to exceed this quota in either of the following ways returnsHTTP 403:
- Creating a new URL via
POST /api/v1/urlswhen the active URL count is already at the limit. - Re-activating a previously deactivated URL via
PATCH /api/v1/urls/{id}/active— reactivation is treated the same as creation and consumes quota.
PLAN_LIMIT_EXCEEDED:
24h range. Requesting the 7d or 30d range via GET /api/v1/analytics/stats (or the CSV export endpoint) returns HTTP 403 with error code PLAN_RANGE_NOT_ALLOWED:
Changing plans
UsePATCH /api/v1/auth/me/plan with a JSON body to switch plans:
plan are "free" and "pro". The endpoint returns the updated user object.
This is a test/demo endpoint. No payment gateway is integrated in Quikko. Any authenticated user can freely switch between plans.
Account summary
GET /api/v1/auth/me/summary returns the current plan alongside quota counters, making it ideal for building a quota progress UI:
activeUrlsLimit is null (no limit applies).
| Field | Type | Description |
|---|---|---|
plan | "free" | "pro" | Current plan |
activeUrlsCount | integer | Number of currently active URLs |
activeUrlsLimit | integer | null | Quota ceiling; null for Pro |
totalClicks | integer | Lifetime click count across all URLs |
The active URL quota is controlled by the
FREE_PLAN_MAX_ACTIVE_URLS environment variable, which defaults to 5. You can raise or lower it without redeploying by updating the variable and restarting the server.