EN IT ES DE FR
link-to@console:~$
POST https://link-to.site/create

// INTRODUCCIÓN

La API de Link-To te permite crear URLs acortadas de forma programática. Nuestra API es RESTful, devuelve respuestas JSON y utiliza códigos de respuesta HTTP estándar. Esta documentación proporciona toda la información necesaria para integrar nuestro servicio de acortamiento de URLs en tus aplicaciones.

URL Base: https://link-to.site

// ESPECIFICACIONES API

Descarga nuestras especificaciones API legibles por máquina para integración con herramientas como Postman, Swagger UI o generadores de SDK automatizados.

// AUTENTICACIÓN

Todas las peticiones API requieren autenticación usando tu clave API. Puedes obtener tu clave API desde el panel de tu cuenta después de adquirir un plan con acceso API.

$ obtener_clave_api()

  1. Inicia sesión en tu panel de cuenta
  2. Ve a Configuración de Cuenta
  3. Tu clave API se mostrará en la sección Acceso API
  4. Copia tu clave API y mantenla segura
¡Mantén tu clave API segura! Nunca la compartas públicamente ni la incluyas en control de versiones.

$ metodos_autenticacion()

Soportamos dos métodos de autenticación para compatibilidad:

Método 1: Autenticación por Header (Recomendado)

HTTP Headers
X-API-Key: tu_clave_api_aqui
Content-Type: application/json

Método 2: Parámetro POST (Legacy)

Form Data
apikey=tu_clave_api_aqui&url=https://ejemplo.com

// PARÁMETROS DE PETICIÓN

ParámetroTipoRequeridoDescripción
urlstringObligatorioLa URL larga a acortar. Debe ser una URL HTTP/HTTPS válida.
groupstringOpcionalID de grupo o identificador API para organizar tus enlaces.

// EJEMPLOS DE CÓDIGO

$ curl_moderno()

bash
curl -X POST https://link-to.site/create \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: tu_clave_api_aqui' \
  -d '{
    "url": "https://ejemplo.com"
  }'

$ php_ejemplo()

php
<?php
$apiUrl = 'https://link-to.site/create';
$apiKey = 'tu_clave_api_aqui';

$data = json_encode(['url' => 'https://ejemplo.com']);

$options = [
    'http' => [
        'method' => 'POST',
        'header' => [
            'Content-Type: application/json',
            'X-API-Key: ' . $apiKey
        ],
        'content' => $data
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);

if ($result['success'] === 'true') {
    echo "URL Corta: " . $result['short_url'];
} else {
    echo "Error: " . $result['message'];
}
?>

$ javascript_ejemplo()

javascript
const apiUrl = 'https://link-to.site/create';
const apiKey = 'tu_clave_api_aqui';

const data = { url: 'https://ejemplo.com' };

fetch(apiUrl, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'X-API-Key': apiKey
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => {
    if (result.success === 'true') {
        console.log('URL Corta:', result.short_url);
    } else {
        console.error('Error:', result.message);
    }
})
.catch(error => console.error('Petición fallida:', error));

$ python_ejemplo()

python
import requests

api_url = 'https://link-to.site/create'
api_key = 'tu_clave_api_aqui'

data = {'url': 'https://ejemplo.com'}
headers = {
    'Content-Type': 'application/json',
    'X-API-Key': api_key
}

response = requests.post(api_url, json=data, headers=headers)
result = response.json()

if result['success'] == 'true':
    print(f"URL Corta: {result['short_url']}")
else:
    print(f"Error: {result['message']}")

// FORMATO DE RESPUESTA

Respuesta Exitosa

json
{
    "success": "true",
    "timestamps": "2025/11/13 16:53:37",
    "message": "Certificación completada",
    "error": "",
    "short_code": "abc123",
    "short_url": "https://link-to.site/abc123",
    "long_url": "https://ejemplo.com",
    "qr_code": "https://link-to.site/qrcode/abc123.png",
    "title": "Ejemplo Domain",
    "clicks": 0
}

Respuesta de Error

json
{
    "success": "false",
    "timestamps": "2025/11/13 16:53:37",
    "message": "Clave API no detectada",
    "error": "301"
}

// CÓDIGOS DE ERROR

La API utiliza los siguientes códigos de error para indicar problemas específicos:

CódigoDescripción
300API no consultada correctamente - Formato de petición inválido
301Clave API no detectada - Falta autenticación
302URL no encontrada - Falta el parámetro 'url' requerido
303Usuario no encontrado o clave API incorrecta - Credenciales inválidas
304Las URLs acortables se han agotado - Sin slots disponibles
305La URL indicada ya ha sido acortada
306La URL no pudo ser procesada - Error de conexión
307Error 404 - La página no existe
308La página está alojada en un servidor con Mod_Security activado
309La página está alojada en un servidor seguro con protección Cloudflare
310La URL dirige a una red social - No permitido
311Los headers HTTP devolvieron 0 como tamaño de archivo - Respuesta vacía
312El grupo indicado no existe
429Límite de peticiones excedido - Inténtalo más tarde

// LÍMITE DE PETICIONES

Para garantizar un uso justo y la estabilidad del sistema, las peticiones API tienen límite:

Límite: 1,000 peticiones por hora por clave API

Si excedes el límite, recibirás una respuesta de error 429. El límite se reinicia cada hora. Si necesitas límites más altos, contacta con soporte.

// MEJORES PRÁCTICAS

  • Protege tu clave API: Nunca la expongas en código del lado del cliente o repositorios públicos
  • Maneja errores correctamente: Siempre verifica el campo success y maneja los errores apropiadamente
  • Cachea las respuestas: Almacena las URLs acortadas para evitar llamadas API duplicadas
  • Respeta los límites: Implementa backoff exponencial si alcanzas los límites
  • Valida las URLs: Asegúrate de que las URLs sean válidas antes de enviarlas a la API

// SOPORTE

¿Necesitas ayuda? Estamos aquí para asistirte: