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/links | Link erstellen |
| GET | /api/v1/links | Ihre 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}/stats | Tagessummen 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.
| url | Die Zieladresse (http oder https). |
| slug | Optionale eigene Adresse, mindestens 4 Zeichen. |
| password | Optionales Passwort, das Besucher eingeben müssen. |
| expires | 1h, 1d, 7d, 14d, 30d, 60d, 90d oder never (Standard). |
| max_clicks | Optionale Anzahl von Aufrufen, nach denen der Link nicht mehr funktioniert. |
| clean | Tracking-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.