API do DoUrl

Encurte URLs programaticamente com uma simples chamada HTTP. Sem autenticação necessária.

Introdução

A API do DoUrl permite que você crie links encurtados diretamente dos seus aplicativos, scripts ou ferramentas. Todos os links criados pela API seguem as mesmas regras do site: expiram em no máximo 7 dias e não possuem rastreamento de cliques.

Base URL: https://dourl.xyz/api

Autenticação: Nenhuma. A API é pública.

Rate Limit: 60 requests por hora por IP.

Endpoint

POST /api/shorten

Cria um novo link encurtado.

URL: https://dourl.xyz/api/shorten

Método: POST

Content-Type: application/json

Parâmetros

Parâmetro Tipo Obrigatório Descrição
url string Sim URL a ser encurtada (http:// ou https://)
expires_in_days integer Não Dias até expirar (1-7, padrão: 7)

Respostas

201 Created — Sucesso

JSON Response
{
  "short_url": "https://dourl.xyz/k8m2p4x",
  "code": "k8m2p4x",
  "original_url": "https://exemplo.com/pagina-longa",
  "expires_at": "2026-03-04 20:00:00",
  "remaining_requests": 59
}

400 Bad Request — URL inválida

JSON Response
{
  "error": "Invalid URL format."
}

405 Method Not Allowed

JSON Response
{
  "error": "Method not allowed. Use POST."
}

429 Too Many Requests — Rate limit

JSON Response
{
  "error": "Rate limit exceeded. Try again later.",
  "retry_after": 3200
}

503 Service Unavailable

JSON Response
{
  "error": "Service temporarily unavailable."
}

Exemplos de Uso

cURL

Bash
curl -X POST https://dourl.xyz/api/shorten \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/long-page", "expires_in_days": 3}'

JavaScript (fetch)

JavaScript
fetch('https://dourl.xyz/api/shorten', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    url: 'https://example.com',
    expires_in_days: 7
  })
})
.then(res => res.json())
.then(data => console.log(data.short_url));

Python

Python
import requests

response = requests.post('https://dourl.xyz/api/shorten', json={
    'url': 'https://example.com',
    'expires_in_days': 5
})
print(response.json()['short_url'])

PHP

PHP
$ch = curl_init('https://dourl.xyz/api/shorten');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'url' => 'https://example.com',
    'expires_in_days' => 7
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $response['short_url'];

Rate Limiting

A API permite 60 requests por hora por endereço IP.

  • Ao atingir o limite, a resposta terá status 429 e o header Retry-After indicando quantos segundos aguardar.
  • O campo remaining_requests na resposta de sucesso indica quantos requests restam na janela atual.
  • A janela de rate limit é renovada automaticamente após 1 hora.

Notas

  • Apenas URLs com protocolo http:// ou https:// são aceitas.
  • O tamanho máximo da URL é de 2048 caracteres.
  • Não é possível encurtar links do próprio DoUrl (dourl.xyz).
  • Links expirados são removidos automaticamente do banco de dados.
  • Os códigos curtos possuem 7 caracteres (letras minúsculas e números).
  • A API suporta CORS, podendo ser chamada de qualquer domínio.