PROFI
DokuLinks über die API
Der Link ist das Kernobjekt in Kilo, und fünf Endpoints decken sein ganzes Leben über HTTP ab: ihn erstellen, deine Links auflisten, einen lesen, aktualisieren, wohin er zeigt, und ihn zurückziehen. Jedes Beispiel unten nutzt einen Schlüssel mit Schreib-Scope in $KILO_API_KEY; ein Lese-Schlüssel reicht für die zwei GET-Aufrufe.
Einen Link erstellen
POST /api/links erzeugt einen Link. Für einen einfachen URL-Link ist das einzige Pflichtfeld default_target, eine http(s)-URL. Du kannst außerdem einen eigenen slug (3–32 base62-Zeichen), einen menschlichen name (bis 80), eine group_id, einen expires_at-Zeitstempel in Epoch-Millisekunden und ein placement von active (Standard) oder archived übergeben.
curl https://qr2r.com/api/links \
-H "Authorization: Bearer $KILO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "default_target": "https://example.com/landing", "name": "Spring flyer" }'Eine erfolgreiche Erstellung gibt 201 mit dem vollständigen Link-Objekt zurück. Der slug ist der permanente öffentliche Griff; default_target ist das editierbare Ziel dahinter:
{
"id": 8231,
"slug": "aA3k9",
"name": "Spring flyer",
"kind": "url",
"data": null,
"default_target": "https://example.com/landing",
"expires_at": null,
"disabled": false,
"override_target": null,
"expired_fallback_url": null,
"group_id": null,
"domain": null,
"rule_count": 0,
"created_at": 1719000000000,
"updated_at": 1719000000000,
"deleted_at": null,
"reclaim_until": null,
"paused_at": null,
"pause_reason": null,
"placement_country": null,
"placement_region": null
}Die Ziel-Schranke
Ein Ziel darf nicht zurück auf einen Kilo-eigenen Host oder auf einen anderen URL-Kürzer zeigen - das blockiert den Redirect-Ketten-Trick, mit dem Missbraucher einen schlechten Link durch einen vertrauenswürdigen waschen. Solche werden als 400 invalid_body abgelehnt. Ein Ziel, das die Live-Sicherheitsprüfung auslöst, wird mit 422 destination_unsafe abgelehnt, bevor ein Slug verbraucht wird.
Auflisten und lesen
GET /api/links gibt deine Links seitenweise zurück. Grenze es mit status ein (active, archived, paused oder deleted - Standard active), group_id und dem Paar limit/offset (limit standardmäßig 50, Deckel bei 200). Die Antwort trägt die Seite plus kontoweite Zähler:
{
"links": [ /* link objects, newest first */ ],
"limit": 50,
"offset": 0,
"status": "active",
"counts": { "active": 12, "archived": 3, "paused": 0, "deleted": 1 },
"limits": { "active_links_max": 25, "archived_links_max": 100, "reclaim_window_days": 30 }
}Lies einen einzelnen Link nach Slug mit GET /api/links/:slug; er gibt dieselbe Objektform wie die Erstellung zurück. Ein unbekannter Slug gibt 404 not_found zurück. Für einen Link auf einer deiner eigenen Domains füge ?domain=go.acme.com hinzu, damit der richtige Link auflöst.
Aktualisieren, wohin er zeigt
PUT /api/links/:slug nimmt einen partiellen Körper - sende nur die Felder, die du änderst. Das häufige ist default_target; du kannst auch den name ändern, ihn in eine group_id verschieben, expires_at setzen oder ihn mit disabled archivieren. Das Ziel zu bearbeiten wirkt beim allernächsten Scan, überall auf einmal - was der ganze Sinn ist, einen gedruckten Code über Kilo zu führen.
curl -X PUT https://qr2r.com/api/links/aA3k9 \
-H "Authorization: Bearer $KILO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "default_target": "https://example.com/new-landing" }'Der Aufruf gibt das aktualisierte Link-Objekt zurück, mit einem frischen updated_at.
Einen Link zurückziehen
DELETE /api/links/:slug löscht einen Link sanft: Er hört auf weiterzuleiten und wandert in den Gelöscht-Tab, aber er ist nicht weg.
{ "ok": true, "soft": true }Du kannst ihn mit POST /api/links/:slug/reclaim zurückholen, solange er innerhalb des Reclaim-Fensters ist, oder ihn mit POST /api/links/:slug/purge endgültig entfernen. Nichts wird je durch ein schlichtes Delete endgültig unter dir weggelöscht - dasselbe Nie-eine-Sackgasse-Prinzip, das die Anleitung zum Link-Lebenszyklus beschreibt, als Endpoints ausgedrückt.
Das ist das vollständige Objekt über HTTP. Die letzte API-Anleitung behandelt die zwei Dinge, die du rund um einen Link am häufigsten automatisierst: seine Statistiken lesen und seinen Verkehr steuern.
Analyse und Regeln über die API