API

Maak en beheer korte links vanuit je eigen code. De API maakt deel uit van het Pro-abonnement.

Authenticatie

Maak een sleutel aan op je accountpagina en stuur hem mee in de Authorization-header van elk verzoek. Houd de sleutel geheim: iedereen die hem heeft, kan je links beheren.

Authorization: Bearer skr_…

Endpoints

POST/api/v1/linksLink maken
GET/api/v1/linksJe links weergeven (limit, offset)
GET/api/v1/links/{slug}Eén link ophalen
PATCH/api/v1/links/{slug}Vervaldatum of openingslimiet wijzigen
DELETE/api/v1/links/{slug}Link verwijderen
GET/api/v1/links/{slug}/statsDagtotalen en toplanden, -apparaten, -browsers en -bronnen (days = 1–365)

Link maken

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"}'

Stuur JSON of formuliergegevens. Alleen url is verplicht.

urlHet bestemmingsadres (http of https).
slugOptioneel eigen adres, minstens 4 tekens.
passwordOptioneel wachtwoord dat bezoekers moeten invullen.
expires1h, 1d, 7d, 14d, 30d, 60d, 90d of never (standaard).
max_clicksOptioneel aantal openingen waarna de link niet meer werkt.
cleanTrackingparameters uit de bestemming verwijderen. Standaard true.

Antwoord

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"]
}

Statistieken

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

Statistieken zijn dezelfde dagelijkse totalen die je op het dashboard ziet. Ze bevatten nooit informatie over individuele bezoekers.

Fouten

Fouten gebruiken standaard HTTP-statuscodes (400, 401, 403, 404, 422, 429) en een JSON-body met een machineleesbare code.

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

Limieten

Elke sleutel kan 1000 verzoeken per dag doen. Elk antwoord bevat de headers X-RateLimit-Limit en X-RateLimit-Remaining.