QRon API Documentation

Multi-tenant QR Code & URL Shortening Platform

Overview

QRon provides a RESTful API for creating and managing QR codes and shortened URLs. All endpoints return JSON responses and follow standard HTTP status codes.

Base URL: https://qron.me

Authentication

Currently, the API allows public access for testing. In production, you'll need an API key:

Authorization: Bearer your_api_key_here
X-API-Key: your_api_key_here

Rate Limits

Endpoint Limit Window
Create QR Code 10 requests 3600 seconds
Redirect 10 requests 60 seconds

Endpoints

POST /api/create.php

Create a new QR code with shortened URL.

Request Body:

Parameter Type Required Description
destination_url string Yes Full URL to redirect to
application_id string Yes Application identifier (e.g., 'sis', 'eventkaart', 'platform')
organisation_id string No Organisation identifier within application
title string No Friendly name for the QR code
description string No Description of purpose
vanity_code string No Custom short code (4-10 alphanumeric chars)
passphrase string No Alternative text-based access (e.g., "bicycle theater overlay")
expires_at string No Expiration date (ISO 8601 format)
collect_location boolean No Request location before redirect
require_age_gate boolean No Require age verification
created_by string No Creator identifier

Example Request:

{
  "destination_url": "https://it4vo.nl/sis/dashboard.php?claim_id=A1B2",
  "application_id": "sis",
  "organisation_id": "5B7A",
  "title": "Screen A1B2 Onboarding",
  "vanity_code": "SIS-A1B2",
  "passphrase": "bicycle theater overlay",
  "expires_at": "2026-12-31T23:59:59"
}

Example Response (201 Created):

{
  "success": true,
  "id": 42,
  "short_code": "SIS-A1B2",
  "short_url": "https://qron.me/SIS-A1B2",
  "destination_url": "https://it4vo.nl/sis/dashboard.php?claim_id=A1B2",
  "passphrase": "bicycle theater overlay",
  "created_at": "2025-11-10 16:30:00"
}

GET /{code}

Redirect to destination URL and track analytics.

Parameters:

Parameter Type Description
code string Short code (4-10 alphanumeric characters)

Example:

GET https://qron.me/A1B2
→ 302 Redirect to destination URL

Status Codes:

GET /api/info.php

Get service information and statistics.

Example Response:

{
  "service": "qron",
  "version": "0.1.0",
  "status": "operational",
  "stats": {
    "active_codes": 247,
    "total_scans": 12895
  }
}

Error Responses

All errors follow this format:

{
  "success": false,
  "message": "Error description here"
}

HTTP Status Codes

Code Description
200OK - Request successful
201Created - Resource created successfully
400Bad Request - Invalid parameters
404Not Found - Resource doesn't exist
410Gone - Resource expired or deactivated
429Too Many Requests - Rate limit exceeded
500Internal Server Error

Integration Examples

cURL

curl -X POST https://qron.me/api/create.php \
  -H "Content-Type: application/json" \
  -d '{
    "destination_url": "https://example.com",
    "application_id": "platform",
    "title": "Example QR Code"
  }'

PHP

$data = [
    'destination_url' => 'https://example.com',
    'application_id' => 'platform',
    'title' => 'Example QR Code'
];

$ch = curl_init('https://qron.me/api/create.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

$response = curl_exec($ch);
$result = json_decode($response, true);

echo $result['short_url']; // https://qron.me/A1B2

JavaScript

const response = await fetch('https://qron.me/api/create.php', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    destination_url: 'https://example.com',
    application_id: 'platform',
    title: 'Example QR Code'
  })
});

const result = await response.json();
console.log(result.short_url); // https://qron.me/A1B2

Support

For issues or questions, visit: github.com/unieksolutions/qron