QRLinkify URL Shortener API for Developers
Create short links and QR codes from your own code with a clean REST API. Simple token authentication, predictable JSON responses, webhooks for events, and rate limits that suit production use.
Introduction
The QRLinkify URL shortener API lets you do everything the dashboard does, from your own application. Create a short link when a user publishes a post. Generate a QR code when an order ships. Pull click and scan analytics into your internal reporting. The API is REST over HTTPS and returns JSON, so it fits any stack that can make an HTTP request.
Base URL
https://api.qrlinkify.com/api/v1Versioning
The current API version is v1. Breaking changes will be released under a new version path. The v1 path remains stable.
Request format
All POST and PATCH requests must include Content-Type: application/json and a JSON body. GET and DELETE requests do not require a body.
Authentication
Authentication uses a bearer token. Generate an API key from your API Keys dashboard and send it in the Authorization header on every request. Keys are scoped to a workspace, so a key only touches that workspace links, QR codes, and domains. Treat a key like a password, keep it server-side, and rotate it if it is exposed.
Header format
Authorization: Bearer YOUR_API_KEYExample request
curl https://api.qrlinkify.com/api/v1/links \
-H "Authorization: Bearer YOUR_API_KEY"Links API
Create, retrieve, update, and delete short links in your workspace.
/linksCreate a new short link/linksList all links (paginated)/links/:idGet a single link by ID/links/:idUpdate link title or URL/links/:idDelete a linkCreate a short link
Shorten a URL and optionally set a title, UTM parameters, expiry, or password.
curl -X POST https://api.qrlinkify.com/api/v1/links \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"original_url": "https://example.com/long-page",
"title": "My Landing Page",
"utm_source": "newsletter"
}'Request body fields
original_urlstringrequiredThe destination URL to shortenslugstringoptionalCustom slug (auto-generated if omitted)titlestringoptionalDisplay name for the linkutm_sourcestringoptionalUTM source parameterutm_mediumstringoptionalUTM medium parameterutm_campaignstringoptionalUTM campaign parameterexpires_atstringoptionalISO 8601 expiry datepasswordstringoptionalPassword-protect the linkList links
Returns a paginated list of links in your workspace.
curl "https://api.qrlinkify.com/api/v1/links?page=1&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"QR Codes API
Generate and manage QR codes linked to your short links.
/qrGenerate a new QR code/qrList all QR codes/qr/:idGet a single QR code/qr/:idDelete a QR codeGenerate a QR code
curl -X POST https://api.qrlinkify.com/api/v1/qr \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"link_id": "LINK_ID",
"name": "Product QR",
"fg_color": "#1a1a1a",
"bg_color": "#ffffff",
"dot_style": "dots"
}'Style options
link_idstringLink ID to encode in the QRnamestringLabel for the QR codefg_colorstringForeground color (hex, default #000000)bg_colorstringBackground color (hex, default #ffffff)dot_stylestringsquare | dots | rounded (default square)corner_stylestringsquare | rounded (default square)logo_urlstringURL of logo to embed in centerAnalytics API
Retrieve click statistics for any link in your workspace. Data is available for the past 30 days on Free, 6 months on Pro, and 12 months on Business.
/analyticsWorkspace-level overview (total clicks, top links)/analytics/links/:idPer-link breakdown (countries, devices, referrers)Link analytics
Pass a period query parameter: 7d, 30d, or 90d.
curl "https://api.qrlinkify.com/api/v1/analytics/links/LINK_ID?period=30d" \
-H "Authorization: Bearer YOUR_API_KEY"Webhooks & SDKs
Webhooks let your application react to events without polling. Subscribe to events such as a link being clicked or a QR code being scanned, and QRLinkify sends a signed JSON payload to your endpoint. That is how you trigger downstream actions, like updating a record the moment a campaign link is used.
Official SDKs wrap the REST API so you write less boilerplate. Where an SDK is not available for your language, the API is plain REST and works with any standard HTTP client.
Rate Limits
Rate limits are generous and sized for production traffic. They are applied per API key on a rolling one-hour window. When you exceed the limit, the API returns a 429 Too Many Requests response, and you can retry after the reset. Bulk jobs are better handled through the bulk link endpoints than by hammering the single-link endpoint.
100 requests / hour1,000 requests / hour10,000 requests / hourRate limit headers are included in every response:
X-RateLimit-LimitMaximum requests allowed in the windowX-RateLimit-RemainingRequests remaining in the current windowX-RateLimit-ResetUnix timestamp when the window resetsError Codes
All error responses follow a consistent format with an HTTP status code and a JSON body:
{
"message": "A human-readable description of the error",
"statusCode": 400
}200OKRequest succeeded201CreatedResource created successfully400Bad RequestInvalid request body or parameters401UnauthorizedMissing or invalid API key403ForbiddenAction not allowed on your current plan404Not FoundResource does not exist409ConflictDuplicate slug or domain already registered429Too Many RequestsRate limit exceeded500Internal Server ErrorUnexpected server errorFAQ
How do I get an API key?
Open your workspace settings on the Business plan and generate a key from the API section. Copy it immediately and store it securely, since it is shown in full only once.
Is the API free?
The API is included with the Business plan. It is not available on the Free or Pro plans. There is no separate per-call charge beyond your Business subscription, within the published rate limits.
What can I do with the QRLinkify API?
You can create, update, and delete short links, generate standard and AI QR codes, retrieve click and scan analytics, and list your custom domains. In short, anything the dashboard does, your code can do.
Do you have SDKs?
Yes, official SDKs are provided to reduce boilerplate. For languages without an SDK, the API is standard REST and JSON and works with any HTTP client.
What are the rate limits?
Rate limits are set for production use and are reported in response headers showing your limit, remaining requests, and reset time. Exceeding the limit returns a 429 response so your client can back off and retry.
Can I use webhooks?
Yes. You can subscribe to events like link clicks and QR scans, and QRLinkify will send a signed JSON payload to your endpoint so your application can react without polling.
Can the API create branded links on my own domain?
Yes. The Business plan includes five custom domains, and the link creation endpoint accepts a domain field so the short links your code generates use your brand.
Ready to start building?
Generate your API key and start shortening links in minutes.