Gå til indhold
cutty.dev
Til udviklere

API og MCP-server

Opret og administrer korte links fra din egen kode — over REST API'et eller gennem en MCP-server i din AI-assistent.

cutty har et offentligt API og en MCP-server. Det første lader dig oprette og ændre links fra kode; det andet virker direkte fra en AI-assistent, der taler MCP-protokollen. Begge bruger den samme API-nøgle.

API-nøgle

Godkend hvert kald med en header:

Authorization: Bearer ck_your_key

Sådan får du en nøgle: log ind, åbn dit dashboardAPI-nøglerOpret nøgle. Den fulde nøgle (den starter med ck_) vises kun én gang, ved oprettelsen — gem den et sikkert sted med det samme. Grænsen er 120 forespørgsler i minuttet pr. nøgle.

Base URL

Alle REST-endpoints ligger under https://cutty.dev/api/v1. Forespørgsler og svar er JSON.

Opret et link

POST /api/v1/links — JSON-bodyen kræver mindst en url. Resten er valgfrit:

  • url — destinationsadresse (påkrævet)
  • slug — tilpasset endelse, 3–40 tegn; udelad for en tilfældig
  • expiresAt — udløbsdato i ISO 8601-format
  • maxHits — klikgrænse (1–1.000.000)
  • password — adgangskode, der beskytter linket
  • tags — kommaadskilte etiketter til at organisere i dashboardet
  • folder — navn på den mappe, linket lægges i
  • utmSource, utmMedium, utmCampaign — UTM-parametre, der tilføjes ved omdirigering

Svaret giver dig slug, shortUrl og target.

curl -X POST https://cutty.dev/api/v1/links \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/a/very/long/address","slug":"offer","tags":"campaign,summer"}'

Liste og et enkelt link

GET /api/v1/links returnerer alle dine links. GET /api/v1/links/{slug} — detaljer om ét.

curl https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key"

Opdatering og sletning

PATCH /api/v1/links/{slug} opdaterer de felter, du sender, DELETE /api/v1/links/{slug} fjerner linket.

curl -X PATCH https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"maxHits":500}'

Via PATCH kan du blandt andet sætte: targetUrl, expiresAt, maxHits, status, password, tags, folder samt de avancerede felter nedenfor. Et felt sat til null (eller en tom streng) rydder den egenskab.

Targeting, A/B og avancerede felter

De samme ting, du får i link-editoren, er tilgængelige via API'et:

  • rules — et array af omdirigeringsregler efter land eller enhed, f.eks. [{"kind":"country","match":"PL","url":"https://shop.pl"},{"kind":"device","match":"ios","url":"https://apps.apple.com/..."}]
  • abUrls — A/B-rotation: et array [{"url":"https://a.com","weight":1},{"url":"https://b.com","weight":1}]; bruges når ingen regel passer
  • startsAt — datoen (ISO 8601), hvor linket går i luften; før det returnerer linket 425
  • webhookUrl — adresse, der modtager en POST-besked ved hvert klik (fire-and-forget)
  • serveOg med ogTitle, ogDescription, ogImageUrl — et tilpasset preview-kort til sociale crawlere (mennesker bliver stadig omdirigeret)
curl -X PATCH https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"rules":[{"kind":"country","match":"DE","url":"https://example.de"}]}'

Bulk-operationer

POST /api/v1/bulk opretter mange links i én forespørgsel. Send et links-array (hvert element som en almindelig oprettelse), op til 500 ad gangen. Svaret returnerer et resultat pr. række.

curl -X POST https://cutty.dev/api/v1/bulk \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"links":[{"url":"https://a.com"},{"url":"https://b.com","slug":"b"}]}'

Linkstatistik

GET /api/v1/links/{slug}/stats returnerer en kliksammenfatning: totalen, en fordeling efter enhed og browser samt fordelingen over de seneste 24 timer.

curl https://cutty.dev/api/v1/links/offer/stats \
  -H "Authorization: Bearer ck_your_key"

MCP-server

Hvis du arbejder med en AI-assistent, kan du forbinde cutty over MCP (Model Context Protocol) og bede den om at forkorte og organisere links direkte i samtalen. Serveren kører på https://mcp.cutty.dev/mcp over Streamable HTTP, og du godkender med den samme API-nøgle — headeren Authorization: Bearer ck_....

Den fulde værktøjsliste, klar-til-brug forbindelseseksempler og eksempler findes på en dedikeret side: cutty MCP-server.

Noget virker ikke?

Skriv til [email protected] — jeg svarer samme dag.