Acorta URLs desde cualquier aplicación con una petición HTTP. Es gratuita y solo necesitas una API key.
POSThttps://click2.es/api/shorten.php
Envía la key en la cabecera Authorization: Bearer TU_API_KEY y el cuerpo en JSON.
| Parámetro | Tipo | Descripción |
|---|---|---|
url | string | Obligatorio. URL http/https, máximo 2048 caracteres. |
custom_code | string | Opcional. Código personalizado de 4 a 10 letras o números (distingue mayúsculas). |
expires_in | int | Opcional. Días hasta que caduca: 1, 7, 30 o 90. |
curl -X POST https://click2.es/api/shorten.php \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com/ruta-larga","expires_in":30}'
const res = await fetch('https://click2.es/api/shorten.php', {
method: 'POST',
headers: {
'Authorization': 'Bearer TU_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ url: 'https://ejemplo.com/ruta-larga' })
});
const data = await res.json();
console.log(data.short_url);
$ch = curl_init('https://click2.es/api/shorten.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer TU_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['url' => 'https://ejemplo.com/ruta-larga']),
]);
$data = json_decode(curl_exec($ch), true);
echo $data['short_url'];
{
"success": true,
"short_url": "https://click2.es/aB3xY9",
"code": "aB3xY9",
"stats_url": "https://click2.es/stats/aB3xY9",
"expires_at": null,
"duplicate": false
}
duplicate: true indica que esa URL ya estaba acortada y se devuelve el código existente (solo si no pides un custom_code).
Siempre con {"success": false, "error": "descripción"}.
| Código | Motivo |
|---|---|
400 | Falta url o expires_in no es válido. |
401 | API key ausente, incorrecta o desactivada, o email de la cuenta sin verificar. |
405 | Método distinto de POST. |
422 | URL no válida o bloqueada, o código personalizado en uso o reservado. |
429 | Límite superado. Espera los segundos que indica la cabecera Retry-After. |
500 | Error interno. Reintenta más tarde. |
Las URLs que crees con la API aparecen en tu panel, donde puedes pausarlas, borrarlas y ver sus estadísticas.