API

Crie e gira links curtos a partir do seu próprio código. A API faz parte do plano Pro.

Autenticação

Crie uma chave na página da sua conta e envie-a no cabeçalho Authorization de cada pedido. Mantenha a chave secreta: quem a tiver pode gerir os seus links.

Authorization: Bearer skr_…

Endpoints

POST/api/v1/linksCriar um link
GET/api/v1/linksListar os seus links (limit, offset)
GET/api/v1/links/{slug}Obter um link
PATCH/api/v1/links/{slug}Alterar a validade ou o limite de aberturas
DELETE/api/v1/links/{slug}Eliminar um link
GET/api/v1/links/{slug}/statsTotais diários e principais países, dispositivos, navegadores e origens (days = 1–365)

Criar um link

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

Envie JSON ou dados de formulário. Só url é obrigatório.

urlO endereço de destino (http ou https).
slugEndereço personalizado opcional, com pelo menos 4 caracteres.
passwordPalavra-passe opcional que os visitantes têm de introduzir.
expires1h, 1d, 7d, 14d, 30d, 60d, 90d ou never (predefinido).
max_clicksNúmero opcional de aberturas após o qual o link deixa de funcionar.
cleanRemove os parâmetros de rastreio do destino. Predefinição: true.

Resposta

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

Estatísticas

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

As estatísticas são os mesmos agregados diários que vê no painel. Nunca contêm informação sobre visitantes individuais.

Erros

Os erros usam códigos de estado HTTP padrão (400, 401, 403, 404, 422, 429) e um corpo JSON com um código legível por máquina.

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

Limites

Cada chave pode fazer 1000 pedidos por dia. Cada resposta inclui os cabeçalhos X-RateLimit-Limit e X-RateLimit-Remaining.