Qurly

Documentation

Guides, reference docs, and the full REST API for Qurly.

Generating a QR code

From the QR Codes section, paste any URL or select an existing short link. Choose your preferred format (PNG or SVG) and download. QR codes are generated server-side at high resolution, suitable for print.

QR codes generated from short links are "dynamic" — you can update the destination URL without reprinting the QR code.

Understanding your analytics

The Analytics page shows performance across all your links. Free plan users see total lifetime click counts. Pro and above plans get time-series data, unique visitor counts, geographic reach, and period-over-period trend comparisons.

Analytics data is collected in real time at the edge and processed within seconds of each click.

Custom short codes

When creating or editing a link, you can specify a custom short code (e.g. launch-2026). Short codes must be unique across all Qurly organizations, between 3 and 50 characters, and may contain letters, numbers, and hyphens.

Custom domains

Pro and above plans support custom domains (e.g. go.yourbrand.com). To set up a custom domain:

  1. Go to Settings → Organization → Custom domains
  2. Enter your domain and click Add domain
  3. Add the CNAME record shown to your DNS provider
  4. Click Verify — SSL is provisioned automatically once your DNS records resolve

What data is collected per click

For each click on a short link, Qurly records:

  • Timestamp (UTC)
  • Country, city, and region (derived from edge geolocation)
  • Hashed IP address (SHA-256 one-way hash — used for unique visitor counting only)
  • Referrer URL (if provided by the browser)
  • User agent (browser and OS, used for device type detection)
  • Short code and destination URL

Raw IP addresses are never stored. See the Privacy Policy for full details.

Plan limits & date ranges

Plan Analytics history Granularity
FreeTotal clicks only (all time)
ProLast 30 daysDaily
BusinessLast 90 daysDaily or hourly
EnterpriseUp to 5 yearsDaily or hourly

Filtering & granularity

From the Analytics page, you can filter by date range, individual link, and — on Business and Enterprise plans — toggle between daily and hourly data. The chart and link table both update to reflect your filter.

Managing your subscription

Go to Settings → Billing to upgrade, downgrade, or cancel your plan. Upgrades take effect immediately. Cancellations take effect at the end of your billing cycle.

Team & organization settings

Each Qurly account belongs to an organization. Business and Enterprise plans support multiple team members. Invite team members from Settings → Organization → Members. Roles include Owner, Admin, and Member.

API Reference

Overview & authentication

The Qurly REST API lets you create and manage short links, QR codes, landing pages, and more — programmatically. It's designed for use with AI agents (ChatGPT Actions, Claude tools), automation platforms (n8n, Make, Zapier), and custom integrations.

Base URL https://api.qurly.dev
Version /v1
Format JSON

Authentication

Every request must include an Authorization header:

Authorization: Bearer qrly_your_api_key_here

Generate an API key in Settings → API. Keys are scoped — you can restrict a key to specific operations (create links, create QR codes, etc).

Pagination

All list endpoints use cursor-based pagination. Pass ?limit= (1–100, default 20) and the next_cursor from the previous response to fetch the next page.

{
  "data": [ ... ],
  "pagination": {
    "has_more": true,
    "next_cursor": "2026-04-20T10:00:00Z",
    "limit": 20
  }
}

Organization ID

API keys created in the app are automatically scoped to your organization — you don't need to pass org_id on every request. If you're using a session JWT instead, pass ?org_id=<uuid>.

QR Codes

GET /v1/qr

List QR code records (paginated).

POST /v1/qr

Create a QR code record and get a render URL.

GET /v1/qr/:id

Get a single QR code by UUID.

DELETE /v1/qr/:id

Delete a QR code record.

Landing Pages

GET /v1/landing-pages

List landing pages (paginated).

POST /v1/landing-pages

Create a landing page. Set mode to standalone or interstitial.

GET /v1/landing-pages/:id

Get a landing page by ID.

PATCH /v1/landing-pages/:id

Update a landing page's content blocks, title, or config.

DELETE /v1/landing-pages/:id

Delete a landing page.

Analytics

GET /v1/analytics

Get aggregated click analytics for the organization. Requires Pro plan or higher.

Organization

GET /v1/org

Get the organization associated with the current API key or JWT.

GET /v1/org/members

List organization members and their roles.

Bulk import

Create up to 100 short links in a single request. Useful for migrations or large batch jobs.

POST https://api.qurly.dev/v1/links/bulk

{
  "short_domain": "qrl.ing",
  "links": [
    { "destination_url": "https://example.com/page-1", "title": "Page 1" },
    { "destination_url": "https://example.com/page-2" },
    { "destination_url": "https://example.com/page-3", "unique_string": "custom-code" }
  ]
}

// Response
{
  "imported": 3,
  "total": 3,
  "results": [
    { "ok": true, "unique_string": "abc12345", "short_url": "https://qrl.ing/abc12345" },
    ...
  ]
}

Interactive explorer

Qurly exposes a full OpenAPI 3.0 spec. You can browse every endpoint, try requests directly in the browser, and download the spec to import into Postman, Insomnia, or configure a ChatGPT or Claude agent action.

Open API Explorer Download openapi.json

Can't find what you're looking for? Email us at support@app.qurly.dev and we'll help.

We use cookies to keep the site working and to understand how it's used. Functional cookies are always on; analytics and marketing are optional. See our Privacy Policy and Cookie Policy.