PROFI

Doku

Analyse und Regeln über die API

Zwei Dinge sitzen auf einem Link und lohnen die Automatisierung: seinen Verkehr lesen und ihn steuern. Statistiken sind schreibgeschützte GETs, die ein Lese-Schlüssel aufrufen kann; Routing-Regeln sind Schreibaktionen, die innerhalb der Weiterleitung im Edge ausgewertet werden. Beide sind dieselben Endpoints, die das Dashboard nutzt.

Die Statistiken eines Links lesen

GET /api/links/:slug/stats gibt eine Zusammenfassung für einen Zeitbereich zurück. Wähle den Bereich mit ?range= - einem von 1h, 24h, 7d, 30d, 90d, 183d, 365d, mtd oder ytd - oder gib ein explizites Fenster mit ?from=<ms>&to=<ms> in Epoch-Millisekunden an.

GET /api/links/aA3k9/stats?range=30d
curl "https://qr2r.com/api/links/aA3k9/stats?range=30d" \
  -H "Authorization: Bearer $KILO_API_KEY"

Die Antwort spiegelt den aufgelösten Bereich, deinen Tarif, die Kopfzeilen-Gesamtwerte, eine Zeitreihe und Aufschlüsselungen pro Dimension zurück:

200 OK (abridged)
{
  "range": { "from": 1716408000000, "to": 1719000000000, "clamped": false, "bucket": "day" },
  "plan": { "slug": "pro", "limits": { /* … */ } },
  "totals": { "opens": 1284, "visitors": 512 },
  "timeseries": [ /* one point per bucket */ ],
  "meta": { "generated_at": 1719000000000, "query_ms": 37, "cache": "miss" }
}

opens zählt ausgelieferte Weiterleitungen; visitors ist die eindeutige Zahl. Wenn die Dimensionen deines Tarifs es erlauben, trägt die Antwort außerdem Aufschlüsselungsblöcke (Länder, Geräte, Referrer, Verkehrsqualität und mehr). Aufbewahrung und welche Dimensionen du bekommst, sind tarifgebunden: Fragst du ein Fenster länger, als dein Tarif behält, kommt die Antwort mit range.clamped auf true gesetzt und from bis an den Rand deiner Aufbewahrung vorgeschoben zurück.

Dieselben Zahlen, keine rohen IPs

Das sind die Zahlen, aus denen die Analyseansicht des Dashboards schöpft - die API ist nur der andere Client. Wie überall bei Kilo wird keine rohe IP je gespeichert, um sie zu erzeugen; IP-abgeleitete Daten werden zuerst mit einem rotierenden Pepper gehasht.

Begleitende GETs decken dieselben Daten in verschiedenen Formen ab: /stats/breakdown für eine einzelne Dimension, /stats/timeseries für die Reihe allein und /stats/export für einen Download. Gesamtwerte auf Gruppenebene liegen unter GET /api/groups/:id/stats.

Routing-Regeln auflisten und hinzufügen

Die Regeln eines Links entscheiden, wohin ein Scan tatsächlich geht. Lies sie mit GET /api/links/:slug/rules:

GET /api/links/aA3k9/rules
{ "rules": [ /* rule objects, in priority order */ ] }

Füge eine mit POST /api/links/:slug/rules hinzu. Der type einer Regel ist geo, device oder ab, und jede trägt eine target_url. Eine Geo-Regel passt auf eine Liste von ISO-2-Ländercodes:

POST /api/links/aA3k9/rules
curl https://qr2r.com/api/links/aA3k9/rules \
  -H "Authorization: Bearer $KILO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "type": "geo", "condition": { "countries": ["DE", "AT"] }, "target_url": "https://example.com/de" }'

Eine Erstellung gibt 201 mit der gespeicherten Regel zurück:

201 Created
{
  "id": 44,
  "type": "geo",
  "condition": { "countries": ["DE", "AT"] },
  "target_url": "https://example.com/de",
  "weight": 1,
  "priority": 0,
  "created_at": 1719000000000
}

Aktualisiere Ziel, Gewicht oder Priorität einer Regel mit PUT /api/rules/:id und entferne eine mit DELETE /api/rules/:id (was { "ok": true } zurückgibt). Ordne die Regeln eines Links atomar mit POST /api/links/:slug/rules/reorder neu.

Regeln sind eine kostenpflichtige Funktion

Durchgesetzt an der API, nicht nur am Dashboard: Eine geo- oder device-Regel braucht das Tariflimit targeting_rules, und eine ab-Regel braucht ab_testing. Ohne es wird die Erstellung mit 402 plan_required abgelehnt, sodass sich der kostenlose Tarif nicht durch direkten Aufruf des Endpoints freischalten lässt.

Regeln werden im Edge innerhalb der Weiterleitung selbst ausgewertet und berühren nie eine Datenbank auf dem heißen Pfad - die Mechanik steht in der Anleitung zu Routing-Regeln. Das ist die API-Oberfläche: Schlüssel und Scopes, Links, Statistiken und Regeln, bis ganz nach unten.

Zurück zu allen Anleitungen
WeiterKilo aus deinem KI-Assistenten (MCP)Verbinde einen MCP-Client und erstelle Links, gestalte QR-Codes und lies Analysen per Prompt.Anleitung lesen