rdurl API

Crie e gerencie links curtos com código

Informações gerais da API

  • Todas as requisições exigem um token de API. Consulte a seção de autenticação.
  • O endpoint base é: https://rdurl.link/api
  • Apenas HTTPS é suportado.
  • Todos os endpoints retornam um objeto JSON.
  • As requisições são enviadas como JSON (Content-Type: application/json).
  • Todos os campos de tempo e carimbos de data/hora estão em milissegundos.
  • Toda a codificação de caracteres é UTF-8.

Autenticação

A API usa um token para identificar a qual conta pertence uma requisição. Um token equivale à senha da conta: quem o possui pode criar e apagar seus links.

Passo 1. Emita um token

Faça login no painel e emita um token no menu 'Token de API'. Cada emissão gera um token novo e ele só pode ser visto uma vez.

Passo 2. Adicione o token à requisição

Escolha um dos dois métodos abaixo.

1. Authorization: Bearer (recomendado)

O método de autenticação padrão da maioria das APIs públicas.

curl https://rdurl.link/api/link/create   -H "Authorization: Bearer rd_YOUR_TOKEN"   -H "Content-Type: application/json"   -d '{ "url": "https://example.com/very/long/url" }'

2. x-api-key cabeçalho

Prático para ferramentas que não suportam facilmente o cabeçalho Authorization.

curl https://rdurl.link/api/link/create   -H "x-api-key: rd_YOUR_TOKEN"   -H "Content-Type: application/json"   -d '{ "url": "https://example.com/very/long/url" }'

Passo 3. Verifique seu token

Execute o comando abaixo. Se a sua lista de links for retornada, o token está funcionando.

curl https://rdurl.link/api/link/list \
  -H "Authorization: Bearer rd_YOUR_TOKEN"

Gerenciamento de tokens

Um token é composto por rd_ seguido de 32 caracteres hexadecimais. Ele só pode ser visto uma vez na emissão, então guarde-o com segurança. Se suspeitar de um vazamento, revogue-o imediatamente no painel — ele para de funcionar na hora.

Endpoints

POST /api/link/create

Cria um link curto. Envie uma URL e receba um slug e o link curto.

Parâmetros

  • urlURL a encurtar (obrigatório)
  • titleTítulo do link (opcional, até 100 caracteres)
  • folderPasta do link (opcional, até 100 caracteres — filtra a lista por pasta)
  • domainDomínio personalizado (opcional, ex.: example.com)

Requisição

{ "url": "https://example.com/very/long/url" }

Resposta

{
  "success": true,
  "message": {
    "slug": "abc123",
    "short": "https://rdurl.link/abc123",
    "domain_no": 0,
    "domain": ""
  }
}
GET /api/link/list

Lista seus links com paginação, 20 por página. Suporta busca e filtro por domínio.

Parâmetros

  • pageNúmero da página (padrão 1)
  • domainDomínio personalizado (opcional, ex.: example.com)
  • searchPalavra-chave (correspondência parcial em slug/URL)
  • folderPasta do link (opcional, até 100 caracteres — filtra a lista por pasta)

Requisição

GET /api/link/list?page=1&domain=example.com&search=keyword

Resposta

{
  "success": true,
  "message": {
    "total": 42,
    "page": 1,
    "list": [
      {
        "slug": "abc123",
        "url": "https://example.com/very/long/url",
        "short": "https://rdurl.link/abc123",
        "clicks": 128,
        "tm": 1789379625000
      }
    ]
  }
}
GET /api/link/info

Obtém os detalhes e o número de cliques de um link.

Parâmetros

  • slugslug (obrigatório)
  • domainDomínio personalizado (opcional, ex.: example.com)

Requisição

GET /api/link/info?slug=abc123

Resposta

{
  "success": true,
  "message": {
    "slug": "abc123",
    "url": "https://example.com/very/long/url",
    "short": "https://rdurl.link/abc123",
    "clicks": 128,
    "tm": 1789379625000
  }
}
GET /api/link/stats

Estatísticas de cliques por link — total, hoje e top 10 países.

Parâmetros

  • slugslug (obrigatório)
  • domainDomínio personalizado (opcional, ex.: example.com)

Requisição

GET /api/link/stats?slug=abc123

Resposta

{
  "success": true,
  "message": {
    "clicks": 128,
    "clicksToday": 5,
    "countries": [
      { "country": "KR", "clicks": 80 },
      { "country": "US", "clicks": 30 }
    ]
  }
}
DELETE /api/link

Apaga um link. Links globais podem ser restaurados durante 30 dias; links de domínio personalizado são apagados imediatamente.

Parâmetros

  • slugslug (obrigatório)
  • domainDomínio personalizado (opcional, ex.: example.com)

Requisição

DELETE /api/link
{ "slug": "abc123" }

Resposta

{ "success": true }

Limites de taxa

Até 10 requisições por minuto por IP e 1.000 links por dia por conta. Exceder o limite retorna 429.

Códigos de erro

Em caso de falha, a resposta contém success: false e um código de erro.

{ "success": false, "message": "api_invalid_token" }
codestatusSignificado
api_invalid_token401Token ausente ou inválido
link_invalid_url400URL inválida (apenas http/https)
link_invalid_slug400Formato de slug inválido
link_not_found400Link não encontrado
domain_not_found400Domínio personalizado não encontrado
link_own_domain400Não é possível encurtar o seu próprio domínio
link_create_failed400Falha ao criar o link
link_rate_limit429Limite de requisições excedido
koenjazh-TWzh-CNviesptfrru