---
title: 'API a MCP server pre vývojárov · skrat.im'
description: 'REST API skracovača skrat.im s OpenAPI popisom, textový endpoint pre curl, MCP server pre AI agentov a bookmarklet. Bez kľúča s limitom, s kľúčom naplno.'
url: https://skrat.im/vyvojari/
lang: sk
---

# API a MCP server

Všetko, čo vie formulár, vie aj API. Bez kľúča s limitom na IP adresu, s kľúčom z účtu naplno a odkazy sa ukladajú do účtu.

## Rýchly štart

Jeden POST s JSON telom. Odpoveď je objekt odkazu; pri anonymnom odkaze obsahuje aj edit_token, ktorý si ulož, ak chceš odkaz neskôr upraviť alebo zmazať.

```sh
curl -X POST https://skrat.im/api/v1/links \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer skrat_…" \
  -d '{"url": "https://example.com/dlha/adresa", "alias": "moja-akcia", "domain": "krat.im"}'
```

```json
{
  "id": "5d1c…",
  "domain": "krat.im",
  "slug": "moja-akcia",
  "short_url": "https://krat.im/moja-akcia",
  "url": "https://example.com/dlha/adresa",
  "status": "active",
  "clicks": 0,
  "preview_url": "https://krat.im/moja-akcia+",
  "qr_png_url": "https://krat.im/moja-akcia.png",
  "stats_url": "https://skrat.im/api/v1/links/5d1c…/stats"
}
```

```sh
curl -X PATCH https://skrat.im/api/v1/links/5d1c… \
  -H "Content-Type: application/json" -H "X-Edit-Token: …" \
  -d '{"url": "https://example.com/nova/adresa"}'
```

## Autentifikácia a limity

Bez kľúča: 60 odkazov za hodinu a 300 za deň na IP adresu. S API kľúčom (hlavička Authorization: Bearer skrat_…): 1000 za hodinu, odkazy patria účtu. Kľúč vytvoríš v nastaveniach účtu. Pri prekročení limitu príde 429 s hlavičkou Retry-After.

## Endpointy

| Metóda | Cesta | Popis |
|---|---|---|
| `POST` | `/api/v1/links` | Vytvorí odkaz. Telo: url, alias?, domain?, title?, expires_in_days?, expires_at?, max_clicks?, password?, public_stats?, utm_* |
| `GET` | `/api/v1/links` | Odkazy účtu (vyžaduje kľúč). |
| `GET` | `/api/v1/links/{id}` | Detail odkazu (kľúč vlastníka alebo X-Edit-Token). |
| `PATCH` | `/api/v1/links/{id}` | Úprava: url, title, expires_at \| expires_in_days, max_clicks, password ("" zruší), public_stats. |
| `DELETE` | `/api/v1/links/{id}` | Zmazanie odkazu. |
| `GET` | `/api/v1/links/{id}/stats` | Štatistiky (verejné, kým ich vlastník neskryje). |
| `GET` | `/api/v1/check?slug=&domain=` | Dostupnosť aliasu, vrátane druhej domény. |
| `POST` | `/api/v1/bulk` | Hromadne: urls (pole alebo text po riadkoch), max. 20 bez kľúča, 200 s kľúčom. |
| `GET` | `/api/shorten?url=` | Textový endpoint: vráti len krátky odkaz. |
| `GET` | `/{alias}+` | Náhľad odkazu (HTML). |
| `GET` | `/{alias}.json` | Verejné info o odkaze (JSON). |
| `GET` | `/{alias}.png | .svg` | QR kód (size, fg, bg, margin). |

## Chyby

Chyba má vždy tvar { "error": { "code", "message" } }. Správa je v jazyku podľa ?lang= alebo Accept-Language. Kódy: invalid_url, unsupported_scheme, private_host, self_reference, unsafe_url, slug_invalid, slug_reserved, slug_taken, domain_invalid, rate_limited, not_found, unauthorized, forbidden, too_many.

## MCP server pre AI agentov

Endpoint /mcp hovorí Model Context Protocol cez Streamable HTTP (JSON-RPC 2.0, bezstavovo). Nástroje: shorten_url, check_alias, get_link_info, qr_code. Bez kľúča platí limit na IP; s kľúčom v hlavičke Authorization sa odkazy ukladajú do účtu.

Claude Code:

```sh
claude mcp add --transport http skrat https://skrat.im/mcp
```

Konfigurácia (Claude Desktop, Cursor a podobné):

```json
{
  "mcpServers": {
    "skrat": {
      "type": "http",
      "url": "https://skrat.im/mcp",
      "headers": { "Authorization": "Bearer skrat_…" }
    }
  }
}
```

## Ďalšie zdroje

- OpenAPI 3.1 popis (openapi.json): https://skrat.im/openapi.json
- llms.txt pre AI klientov: https://skrat.im/llms.txt
- MCP: https://skrat.im/mcp

Podmienky používania API sú rovnaké ako pre web.
