API

Luo ja hallitse lyhytlinkkejä omasta koodistasi. API kuuluu Pro-pakettiin.

Tunnistautuminen

Luo avain tilisivulla ja lähetä se jokaisen pyynnön Authorization-otsakkeessa. Pidä avain salassa: sen haltija voi hallita linkkejäsi.

Authorization: Bearer skr_…

Rajapinnat

POST/api/v1/linksLuo linkki
GET/api/v1/linksListaa linkkisi (limit, offset)
GET/api/v1/links/{slug}Hae yksi linkki
PATCH/api/v1/links/{slug}Muuta voimassaoloa tai avausrajaa
DELETE/api/v1/links/{slug}Poista linkki
GET/api/v1/links/{slug}/statsPäiväkohtaiset avaukset sekä yleisimmät maat, laitteet, selaimet ja lähteet (days = 1–365)

Linkin luonti

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

Lähetä JSON- tai lomakedataa. Vain url on pakollinen.

urlKohdeosoite (http tai https).
slugValinnainen oma osoite, vähintään 4 merkkiä.
passwordValinnainen salasana, joka kävijän on syötettävä.
expires1h, 1d, 7d, 14d, 30d, 60d, 90d tai never (oletus).
max_clicksValinnainen avausmäärä, jonka jälkeen linkki lakkaa toimimasta.
cleanPoistaa seurantaparametrit kohdeosoitteesta. Oletus true.

Vastaus

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

Tilastot

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

Tilastot ovat samoja päiväkohtaisia koosteita, jotka näet kojelaudalla. Ne eivät koskaan sisällä tietoja yksittäisistä kävijöistä.

Virheet

Virheet käyttävät tavallisia HTTP-tilakoodeja (400, 401, 403, 404, 422, 429), ja vastauksessa on koneluettava virhekoodi.

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

Rajat

Jokaisella avaimella voi tehdä 1000 pyyntöä vuorokaudessa. Jokaisessa vastauksessa on otsakkeet X-RateLimit-Limit ja X-RateLimit-Remaining.