URLs kürzen und QR-Codes generieren per REST API. Kein API-Key, keine Registrierung.
| Endpoint | Methode | Beschreibung |
|---|---|---|
/api/shorten | POST | URL kürzen |
/api/qr/:code | GET | QR-Code als PNG herunterladen |
Kürzt eine URL und gibt den Kurzlink sowie einen QR-Code als SVG zurück.
| Header | Wert |
|---|---|
Content-Type | application/json |
| Feld | Typ | Beschreibung |
|---|---|---|
url | string | Die zu kürzende URL (muss mit http:// oder https:// beginnen) |
| Feld | Typ | Beschreibung |
|---|---|---|
short | string | Der 4-stellige Kurzcode |
url | string | Vollständige Kurzlink-URL |
qr_svg | string | QR-Code als SVG-Markup |
existing | boolean | true wenn die URL bereits gekürzt war |
| Code | Grund |
|---|---|
| 400 | URL fehlt, ungültiges Format oder zu lang (max. 2048 Zeichen) |
| 429 | Rate-Limit überschritten (max. 30 Requests/Minute) |
# URL kürzen curl -X POST https://kqf.ch/api/shorten \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/langer/link"}' # Antwort { "short": "x7Km", "url": "https://kqf.ch/x7Km", "qr_svg": "<svg ...>", "existing": false } # QR-Code herunterladen curl -o qr.png https://kqf.ch/api/qr/x7Km
// URL kürzen const response = await fetch("https://kqf.ch/api/shorten", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ url: "https://example.com/link" }) }); const data = await response.json(); console.log(data.url); // https://kqf.ch/x7Km
# pip install requests import requests response = requests.post( "https://kqf.ch/api/shorten", json={"url": "https://example.com/link"} ) data = response.json() print(data["url"]) # https://kqf.ch/x7Km
Gibt den QR-Code für einen Kurzlink als PNG-Datei zurück (400x400 Pixel).
# Direkter Download curl -o qr.png https://kqf.ch/api/qr/x7Km # Im Browser https://kqf.ch/api/qr/x7Km
Die API erlaubt maximal 30 Requests pro Minute pro IP-Adresse auf /api/shorten. Der QR-Endpoint hat kein Rate-Limit.
Bei Überschreitung wird ein 429 Too Many Requests zurückgegeben.
Bereits gekürzte URLs werden erkannt und geben den bestehenden Kurzcode zurück (existing: true). kqf.ch-URLs können nicht gekürzt werden (Rekursionsschutz).