API

Erstellen und verwalten Sie Kurzlinks aus Ihrem eigenen Code. Die API ist Teil des Pro-Tarifs.

Authentifizierung

Erstellen Sie auf Ihrer Kontoseite einen Schlüssel und senden Sie ihn bei jeder Anfrage im Authorization-Header. Halten Sie den Schlüssel geheim: Wer ihn besitzt, kann Ihre Links verwalten.

Authorization: Bearer skr_…

Endpunkte

POST/api/v1/linksLink erstellen
GET/api/v1/linksIhre Links auflisten (limit, offset)
GET/api/v1/links/{slug}Einen Link abrufen
PATCH/api/v1/links/{slug}Ablaufdatum oder Aufruflimit ändern
DELETE/api/v1/links/{slug}Link löschen
GET/api/v1/links/{slug}/statsTagessummen und die häufigsten Länder, Geräte, Browser und Quellen (days = 1–365)

Link erstellen

curl -X POST https://skr.me/api/v1/links \
  -H "Authorization: Bearer $SKR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/page?utm_source=news", "slug": "launch", "expires": "never"}'

Senden Sie JSON oder Formulardaten. Nur url ist erforderlich.

urlDie Zieladresse (http oder https).
slugOptionale eigene Adresse, mindestens 4 Zeichen.
passwordOptionales Passwort, das Besucher eingeben müssen.
expires1h, 1d, 7d, 14d, 30d, 60d, 90d oder never (Standard).
max_clicksOptionale Anzahl von Aufrufen, nach denen der Link nicht mehr funktioniert.
cleanTracking-Parameter aus dem Ziel entfernen. Standard: true.

Antwort

HTTP/1.1 201 Created
{
  "link": {
    "slug": "launch",
    "short_url": "https://skr.me/launch",
    "target_url": "https://example.com/page",
    "status": "ok",
    "custom": true,
    "password_protected": false,
    "clicks": 0,
    "max_clicks": null,
    "created_at": "2026-09-26T12:00:00+00:00",
    "expires_at": null
  },
  "removed_parameters": ["utm_source"]
}

Statistiken

curl https://skr.me/api/v1/links/launch/stats?days=30 \
  -H "Authorization: Bearer $SKR_KEY"

Die Statistiken sind dieselben täglichen Summen, die Sie im Dashboard sehen. Sie enthalten niemals Informationen über einzelne Besucher.

Fehler

Fehler verwenden standardmäßige HTTP-Statuscodes (400, 401, 403, 404, 422, 429) und einen JSON-Body mit einem maschinenlesbaren Code.

{ "error": { "code": "invalid_slug", "field": "slug", "message": "This address is already taken." } }

Limits

Jeder Schlüssel kann 1000 Anfragen pro Tag stellen. Jede Antwort enthält die Header X-RateLimit-Limit und X-RateLimit-Remaining.