AVANÇADO

Docs

Links pela API

O link é o objeto central na Kilo, e cinco endpoints cobrem toda a sua vida por HTTP: criá-lo, listar seus links, ler um, atualizar para onde ele aponta e aposentá-lo. Cada exemplo abaixo usa uma chave com escopo de escrita em $KILO_API_KEY; uma chave de leitura basta para as duas chamadas GET.

Crie um link

POST /api/links gera um link. Para um link de URL simples, o único campo obrigatório é default_target, uma URL http(s). Você também pode passar um slug próprio (3–32 caracteres base62), um name legível (até 80), um group_id, um carimbo de tempo expires_at em milissegundos de época e um placement de active (padrão) ou archived.

POST /api/links
curl https://qr2r.com/api/links \
  -H "Authorization: Bearer $KILO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "default_target": "https://example.com/landing", "name": "Spring flyer" }'

Uma criação bem-sucedida retorna 201 com o objeto de link completo. O slug é a alça pública permanente; default_target é o destino editável por trás:

201 Created
{
  "id": 8231,
  "slug": "aA3k9",
  "name": "Spring flyer",
  "kind": "url",
  "data": null,
  "default_target": "https://example.com/landing",
  "expires_at": null,
  "disabled": false,
  "override_target": null,
  "expired_fallback_url": null,
  "group_id": null,
  "domain": null,
  "rule_count": 0,
  "created_at": 1719000000000,
  "updated_at": 1719000000000,
  "deleted_at": null,
  "reclaim_until": null,
  "paused_at": null,
  "pause_reason": null,
  "placement_country": null,
  "placement_region": null
}

A proteção do destino

Um destino não pode apontar de volta para um host de propriedade da Kilo nem para outro encurtador de URL - isso bloqueia o truque de encadear redirecionamentos que os abusadores usam para lavar um link ruim através de um confiável. Esses são rejeitados como 400 invalid_body. Um destino que dispara a verificação de segurança ao vivo é recusado com 422 destination_unsafe, antes de gastar qualquer slug.

Liste e leia

GET /api/links retorna seus links página por página. Restrinja com status (active, archived, paused ou deleted - padrão active), group_id e o par limit/offset (limit padrão 50, teto 200). A resposta carrega a página mais contadores de toda a conta:

GET /api/links?status=active&limit=50
{
  "links": [ /* link objects, newest first */ ],
  "limit": 50,
  "offset": 0,
  "status": "active",
  "counts": { "active": 12, "archived": 3, "paused": 0, "deleted": 1 },
  "limits": { "active_links_max": 25, "archived_links_max": 100, "reclaim_window_days": 30 }
}

Leia um único link por slug com GET /api/links/:slug; ele retorna o mesmo formato de objeto da criação. Um slug desconhecido retorna 404 not_found. Para um link em um dos seus domínios próprios, acrescente ?domain=go.acme.com para o link certo resolver.

Atualize para onde ele aponta

PUT /api/links/:slug recebe um corpo parcial - envie só os campos que você está mudando. O comum é default_target; você também pode mudar o name, movê-lo para um group_id, definir expires_at ou arquivá-lo com disabled. Editar o destino tem efeito no próximo escaneamento, em todo lugar de uma vez - que é todo o sentido de rotear um código impresso pela Kilo.

PUT /api/links/aA3k9
curl -X PUT https://qr2r.com/api/links/aA3k9 \
  -H "Authorization: Bearer $KILO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "default_target": "https://example.com/new-landing" }'

A chamada retorna o objeto de link atualizado, com um updated_at novo.

Aposente um link

DELETE /api/links/:slug exclui um link de forma reversível: ele para de encaminhar e vai para a aba Excluídos, mas não sumiu.

DELETE /api/links/aA3k9
{ "ok": true, "soft": true }

Você pode trazê-lo de volta com POST /api/links/:slug/reclaim enquanto ele está dentro da janela de recuperação, ou removê-lo de vez com POST /api/links/:slug/purge. Nada é jamais apagado em definitivo por baixo dos seus panos por um simples delete - o mesmo princípio de nunca-um-beco-sem-saída que o guia do ciclo de vida do link descreve, expresso como endpoints.

Esse é o objeto completo por HTTP. O último guia da API cobre as duas coisas que você mais vai automatizar em torno de um link: ler suas estatísticas e dirigir seu tráfego.

Análise e regras pela API
PróximoAnálise e regras pela APILeia as estatísticas de um link e gerencie regras de roteamento geo, de dispositivo e A/B por HTTP.Ler o guia