Acortar un enlace
Una URL larga y llena de parámetros es algo pequeño hasta que tiene que pegarla en un correo de registro, un folleto impreso o una herramienta de marketing, y de repente se corta, se parte o parece poco confiable.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Esta API convierte cualquier URL larga en una corta servida a través de nuestro servicio de redirección, devuelta de forma asíncrona para que encaje en flujos de registro, pipelines de contenido y herramientas de marketing sin frenarlos.
Por qué un enlace corto sigue ganándose el clic
Un enlace acortado sobre un dominio genérico y desechable se reconoce de inmediato como de terceros, y así lo tratan los destinatarios: algunos filtros de correo los marcan, algunos usuarios dudan antes de hacer clic. Servir cada redirección a través de una dirección de servicio estable y consistente cambia esa ecuación: el enlace es corto, predecible y siempre se resuelve igual. dev.short_url emite hoy los enlaces desde nuestro servicio de redirección compartido; servirlos desde un dominio propio que usted controle está en el roadmap, no es algo que la API haga todavía.
Qué ocurre en cada llamada
Envía la URL de destino: es la única entrada. La tarea se encola de inmediato con un task_id, y la URL corta final llega por su webhook firmado o por un enlace firmado válido durante 24 horas: el mismo modelo de entrega que el resto de nuestras utilidades de desarrollo, así que no aprende un patrón nuevo por cada endpoint. El id corto se deriva automáticamente del URL, y una vez activo el enlace corto se resuelve a través de nuestra infraestructura de redirección sin que tenga que operar un servicio aparte.
Quién necesita un acortador y por qué
Equipos de marketing que quieren saber qué canal generó cada clic. Productos SaaS que generan enlaces compartibles para invitaciones o programas de referidos, donde una URL larga y llena de parámetros se ve poco confiable. Medios impresos o fuera de línea: un código QR o una URL dictada solo son útiles si son lo bastante cortos para leerse en voz alta o escribirse a mano. Herramientas internas que necesitan enlaces estables y memorables hacia paneles o reportes que de otro modo serían una pared de parámetros.
Un poco de historia sobre por qué existe esto
Los acortadores de enlaces se volvieron comunes cuando las redes sociales impusieron límites de caracteres y los equipos de marketing necesitaban rastrear clics sin saturar una publicación; los primeros servicios masivos cambiaron brevedad por un dominio de terceros, un compromiso razonable antes de que el acortamiento con dominio propio fuera accesible a gran escala. Llevar esa opción de marca, con dominio propio, a esta API está en nuestro roadmap; por ahora, cada enlace se sirve desde nuestro servicio de redirección compartido.
Cómo encaja en un pipeline
Como la generación es asíncrona, puede pedir miles de enlaces cortos a partir de una exportación masiva de campaña o un script de migración de contenido sin mantener una conexión abierta, y procesar los webhooks a medida que llegan. Combínela con el endpoint de analítica de clics si además quiere saber qué pasa después de que alguien hace clic: las dos están pensadas para usarse juntas, no como productos separados.
Qué puede hacer con ella
Enlaces de referidos cortos
Genere un enlace corto para el código de referido de cada usuario, en vez de exponer una URL larga con parámetros de seguimiento.
Impresos y empaques
Coloque una URL corta y legible en empaques o rótulos donde un enlace completo sería demasiado largo para caber o incómodo de escribir a mano.
Seguimiento de campañas por canal
Cree un enlace corto distinto para cada canal publicitario o boletín, para medir el rendimiento de cada uno por separado más adelante.
Migración de una estructura de enlaces antigua
Genere en lote URL cortas para miles de artículos con slugs viejos durante una migración de sitio, procesando resultados conforme llegan los webhooks.
Preguntas frecuentes
¿Puedo usar mi propio dominio para los enlaces cortos?
Todavía no: hoy cada enlace se sirve desde nuestro servicio de redirección compartido, no desde un dominio que usted controle. Los dominios propios y de marca están en el roadmap, pero la API aún no hace ese paso.
¿El acortador de URL es gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Qué tan rápido recibo el enlace corto?
La solicitud se acepta de inmediato con un task_id, y el resultado llega por webhook firmado o por un enlace firmado dentro de la ventana normal de procesamiento, sin necesidad de sondeo si usa el webhook.
¿Puedo elegir un slug personalizado en vez de uno aleatorio?
No: el id corto se deriva automáticamente del URL que envía, así que el mismo URL siempre produce el mismo id. No hay campo para elegir un slug personalizado.
¿Se cobran las solicitudes fallidas?
No. Cada tarea tiene hasta tres reintentos, y solo se cobra cuando se completa con éxito.
¿Qué pasa con la URL de destino después de procesarla?
Se conserva solo durante el período de retención activo y se elimina después; nunca se usa para entrenar modelos.
¿Cuánto cuesta por enlace?
0.002 dólares por solicitud, sin cargo oculto por clic en el paso de acortamiento.
¿Puedo generar enlaces cortos en lote?
Sí: como cada llamada es asíncrona y no bloqueante, puede lanzar lotes grandes y dejar que los webhooks lleguen conforme cada uno se completa.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/short-url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/una/ruta/larga"}'const res = await fetch("https://api.kit.forhosting.com/dev/short-url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/una/ruta/larga"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/short-url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/una/ruta/larga"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/short-url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/una/ruta/larga"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/una/ruta/larga"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/short-url", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://example.com/una/ruta/larga"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.short_url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |