Para migrar desde TinyURL, primero separa tus enlaces en dos montones: los de un dominio que posees y los de tinyurl.com. El primer montón se muda sin problemas, porque cambias un registro DNS y las URL antiguas siguen funcionando. El segundo montón no lo puedes redirigir tú en absoluto, porque TinyURL es dueña del dominio. Puedes copiar los destinos a Elido, pero cada lugar donde se publicó un enlace tinyurl.com/xxxx hay que actualizarlo a mano.
Lo segundo que conviene saber antes de empezar: ahora mismo la forma fiable de mudarse es un archivo. Exporta con la llamada documentada GET /urls/available de TinyURL, reduce el resultado a destination, slug, title y cárgalo con la importación masiva de Elido. Elido también incluye un importador de TinyURL de un clic, pero llama a un endpoint que no está en la API publicada de TinyURL, así que lo tratamos como no verificado hasta que llegue una corrección prevista. Esta guía cubre ambas vías y el recorrido completo: de la exportación a las analíticas, con el cambio y el rollback en medio. Los datos de TinyURL proceden de su propio blog y de su especificación OpenAPI, consultados el 2026-10-01 y el 2026-10-02.
Para un veredicto función por función sobre si conviene cambiar siquiera, lee Elido vs TinyURL o el resumen más amplio de alternativas a TinyURL.
Qué enlaces de TinyURL se pueden mover
La propiedad del hostname lo decide todo. Un enlace corto son dos cosas: un hostname y un código. Puedes llevarte un código a cualquier parte, pero solo puedes hacer que un enlace siga funcionando si controlas el hostname.
| Tipo de enlace | Quién controla la redirección | Qué puedes hacer |
|---|---|---|
tinyurl.com/xxxx, creado sin cuenta | TinyURL | Nada con el enlace antiguo. Recrea el destino en Elido y sustituye el enlace antiguo allí donde se publicó |
tinyurl.com/tu-alias, creado en una cuenta | TinyURL | Editar el destino dentro de TinyURL en un plan de pago, o importar el alias a Elido con un hostname nuevo y actualizar cada lugar de publicación |
go.tumarca.com/xxxx (dominio personalizado) | Tú | Apunta el hostname a Elido e importa los alias. Las URL antiguas siguen funcionando |
La versión honesta para las dos primeras filas: cuando dejas de pagar a TinyURL, esos enlaces siguen resolviendo mientras TinyURL los conserve, y no tienes forma de ver clics, cambiarlos ni redirigirlos. Algunos equipos los dejan tal cual a propósito. Creo que es la decisión correcta para enlaces antiguos y de poco tráfico.
Paso 1: exporta tus enlaces de TinyURL
TinyURL te da una única forma documentada de listar tus enlaces: la API. Su especificación OpenAPI (consultada el 2026-10-02) define el listado como GET /urls/{type}, donde type es available o archived, con datetimes opcionales from y to y un filtro search que acepta el prefijo alias: o tag:. La llamada necesita un bearer token. El artículo de TinyURL sobre cómo listar enlaces describe el mismo endpoint y dice que el tipo es la única entrada obligatoria.
Lo que la especificación no te da importa igual. No define parámetros page ni per_page ni límites de tasa. Así que, en una cuenta grande, acota cada petición con ventanas from/to (un mes cada vez, por ejemplo) y escribe cada respuesta en disco antes de hacer nada más:
# One window at a time; inspect the first response by hand before scripting further
curl -s -H "Authorization: Bearer $TINYURL_TOKEN" \
"https://api.tinyurl.com/urls/available?from=2025-01-01T00:00:00Z&to=2025-02-01T00:00:00Z" \
> tinyurl-2025-01.json
No hemos verificado la forma real de la respuesta (la especificación no aclara si trae una lista o un único objeto), así que abre un archivo y míralo antes de escribir un parser. Ejecuta la misma llamada contra /urls/archived si quieres también los enlaces archivados.
Tres límites condicionan el resto del plan:
- Sin cuenta, sin lista. TinyURL afirma que los enlaces creados sin iniciar sesión no se pueden gestionar ni borrar. No hay un registro por usuario, así que no hay nada que exportar.
- El plan gratuito es de solo lectura. Según la página del plan gratuito de TinyURL, editar y borrar enlaces, las analíticas de clics, los dominios personalizados y la creación en bloque quedan tras los planes de pago.
- Las analíticas no vienen en la lista. El historial de clics corre de tu cuenta. Haz capturas o saca un informe de TinyURL antes de cancelar. No encontramos un botón documentado de exportación CSV en el centro de ayuda de TinyURL, así que esta guía no promete ninguno.
Paso 2: mapea los datos de TinyURL a un archivo que Elido acepte
Sea lo que sea lo que hayas sacado de TinyURL, redúcelo a los mismos tres campos:
- La URL larga de TinyURL pasa a ser
destination(el destino del enlace). - El alias de TinyURL pasa a ser
slug. Déjalo en blanco en los enlaces detinyurl.compara los que quieras códigos nuevos. - El título o la descripción de TinyURL pasa a ser
title.
TinyURL los llama alias, Elido los llama slugs. Es lo mismo: los caracteres que van después del host. Si el dominio de destino está vacío, los alias pasan tal cual.
La página de enlaces de Elido tiene una pestaña de bulk y otra de CSV, y ambas leen líneas con el formato url, slug, title. En la pestaña CSV se descarta la primera línea si no contiene una URL http(s)://, así que una fila de cabecera no da problemas. Las líneas que empiezan por # se ignoran en el cuadro de pegado. Los slugs personalizados son letras, números y guiones, así que revisa los alias con otros caracteres antes de subir el archivo; las filas que fallan se listan con el motivo.
destination,slug,title
https://acme.com/spring-sale,spring-sale,Spring Sale
https://acme.com/pricing,,Pricing page
Si usaste etiquetas en TinyURL, consérvalas. No caben en el CSV de tres columnas, pero la vía de la API que verás más abajo las acepta.
Paso 3: importa a Elido
Hay dos vías de entrada. La del archivo funciona hoy. El importador integrado existe, pero no está verificado.
La vía fiable: CSV, pegado masivo o la API bulk
Las pestañas bulk y CSV del panel procesan hasta 100 enlaces por lote, así que divide un archivo más grande en trozos. La página de ayuda de importación masiva recorre el formulario, y la guía de importación masiva desde Google Sheets viene bien si limpiaste la exportación en una hoja de cálculo.
La API del espacio de trabajo acepta la misma estructura como JSON. POST /v1/workspaces/{workspace_id}/links/bulk acepta un domain_id y hasta 100 links, cada uno con destination_url y, opcionalmente, slug, title y tags. Cada fila se procesa por separado, así que una fila mala no hace fallar el lote, y la respuesta te dice qué filas dieron error. Añade tú una etiqueta como imported:tinyurl para poder filtrar el lote después. API y SDKs tiene las bibliotecas cliente.
El importador de TinyURL integrado y su bug conocido
Elido tiene un importador de TinyURL de un clic, descrito en la página migrar desde TinyURL. Pegas un token de la API de TinyURL, eliges el dominio de Elido donde deben aterrizar los enlaces y eliges una estrategia de conflictos. El problema es la primera llamada HTTP. El worker construye esta petición:
GET https://api.tinyurl.com/aliases?page=1&per_page=100
Authorization: Bearer <token>
y espera recibir {"data": [{alias, url, title, tags}], "meta": {"total", "has_more"}}. La especificación de TinyURL no tiene una ruta /aliases; las operaciones con alias viven bajo /alias/{domain}/{alias}, y el listado es /urls/{type}. Así que ese contrato de paginación nunca se tomó de TinyURL. Nuestro test unitario sirve una respuesta escrita a mano con la forma supuesta y pasa, lo que demuestra que el parser coincide con nuestra suposición y nada sobre TinyURL. No lo hemos ejecutado contra una cuenta real, porque eso requiere un token de un plan de pago. No planifiques una migración en torno a él todavía.
La corrección está prevista: cambiar a /urls/available (con /urls/archived tras un flag), recorrer ventanas from/to, parsear de forma defensiva y probar contra una respuesta real capturada. Después habrá que volver a medir la paginación y el límite real por petición contra una cuenta real, ya que la especificación no da ninguno de los dos.
La página de integraciones en un espacio de trabajo DEMO con datos sintéticos. La migración de TinyURL se inicia desde aquí.
Qué hace el importador una vez que tiene una página
Todo lo posterior a la llamada HTTP no depende de la cuestión del endpoint, y esta parte la podemos afirmar a partir del código.
- Inicio. Un
POSTcontoken,target_domain_idyconflict_strategyopcional. El handler rechaza un token vacío, un dominio ausente y cualquier estrategia distinta desuffix,skipofail, y luego responde202con el job y ejecuta el worker en segundo plano, desvinculado de la petición. - Por enlace. Una fila sin URL o sin alias cuenta como fallida con un motivo. En caso contrario, el alias pasa a ser el slug, se copian destino y título (el título se trunca a 200 caracteres) y se copian las etiquetas añadiendo
imported:tinyurl. - Progreso. Los contadores se vuelcan a la fila del job cada 50 enlaces. Se registran como máximo 1.000 filas de error por job.
- Errores de auth y de tasa. Un 401 o 403 hace fallar el job con un mensaje de "check the bearer token", y un 429 lo hace fallar por límite de tasa. No hay reintento ni backoff: el job se detiene.
El token va del cuerpo de la petición al job en segundo plano y a ningún otro sitio. La fila del job no registra ningún token, y nada se cifra en reposo porque nada se almacena. El cuerpo de la petición se lee con un límite de 4 KB. El código no valida el token ni comprueba el plan antes de empezar, así que un token malo aparece como un job fallido tras la primera petición, no como un error de formulario. Versiones anteriores de nuestra documentación describían una comprobación previa contra un endpoint de dominios; ese paso no existe en el código, y la especificación de TinyURL tampoco tiene esa ruta.
Reglas de conflicto y límites
Antes de cada inserción, el worker hace una consulta indexada por el par dominio y slug:
- suffix (por defecto) prueba
alias-2,alias-3, hastaalias-50, y falla la fila si todos están ocupados. - skip deja en paz el enlace existente de Elido y registra la fila de origen.
- fail hace fallar el job en el primer conflicto.
Cada ejecución tiene un tope de 50.000 enlaces y 30 minutos. Conviene conocer dos comportamientos. Cuando se alcanza el tope de 50.000, el bucle simplemente se detiene y el job se completa; no falla, así que compara los recuentos finales con tu total de origen. Cuando se agota el presupuesto de 30 minutos, el job se marca como fallido con el número importado hasta ese momento.
La lista de enlaces en un espacio de trabajo DEMO. Los enlaces importados llevan la etiqueta imported:tinyurl, así que puedes filtrar un lote para revisarlo.
Probar el importador con seguridad
Cuando se corrija el endpoint, o si pruebas el importador por tu cuenta antes, hazlo en pequeño. Crea un espacio de trabajo desechable, añade un dominio vacío y ejecuta el job primero con la estrategia fail. Un dominio vacío no tiene conflictos, así que cualquier fallo es un problema de parseo o de autenticación y no una colisión. Después compara tres números: el recuento de origen en TinyURL, el total que informa el job y los contadores de importados más omitidos más fallidos. Como el worker toma meta.total de la respuesta que espera, una discrepancia entre total y tu recuento real es la primera señal de que la forma de la respuesta difiere de lo que supone el parser. Filtra por imported:tinyurl, abre diez enlaces al azar y comprueba destino, slug y título contra TinyURL.
Crear un espacio de trabajo nuevo de Elido para esto lleva un par de minutos; crea una cuenta gratuita y añade antes tu dominio para que esté listo cuando termine la importación.
Paso 4: cambia tu dominio personalizado
Si tienes un hostname de marca en TinyURL, estás en el caso fácil. La configuración de dominio de marca de TinyURL es un CNAME o un cambio de DNS similar en un dominio que ya posees, así que la misma palanca funciona a la inversa. Ten en cuenta que el importador no crea el dominio por ti ni lee un campo domain de TinyURL. Un hostname de marca es un paso aparte.
El orden importa, porque el DNS es el último paso y el único que notan los visitantes:
- Baja el TTL del registro un día antes, para que el cambio llegue rápido.
- Añade el hostname a Elido en Dominios y deja que se verifique. La guía de añadir un dominio tiene los registros exactos, y la resolución de problemas de verificación DNS cubre los errores de tecleo detrás de la mayoría de los estados "Pending" atascados.
- Importa los alias sobre ese hostname mientras los visitantes siguen llegando a TinyURL.
- Comprueba por muestreo los slugs importados contra el comportamiento antiguo del hostname en vivo.
- Cambia el registro DNS. Desde ese momento el hostname resuelve a Elido y todas las URL antiguas de él lo siguen.
Mantén el hostname solo en DNS, sin proxy CDN delante, porque la emisión del certificado puede fallar detrás de uno. La configuración más amplia está en dominios personalizados para enlaces cortos y en la página de la función de dominios personalizados.
Paso 5: mantén intactas tus redirecciones 301
En tu propio dominio la URL no cambia, así que no hay nada que puentear: la misma ruta ahora responde desde Elido. Lo que proteges es la semántica de la redirección. Los códigos de estado de redirección se definen en el RFC 9110; una redirección permanente indica a navegadores y buscadores que el destino es estable, y pasar enlaces de larga vida a temporales cambia cómo se cachean y a quién se atribuyen. Lee redirecciones 301 vs 302 para la parte de SEO y caché.
Para los enlaces tinyurl.com no hay ningún 301 que puedas añadir, porque la redirección es de TinyURL. Lo mejor que puedes hacer es asegurarte de que el destino detrás del enlace antiguo siga vivo y sustituir el enlace allí donde puedas llegar. El playbook de migración desde Bitly muestra cómo funciona un puente 301 cuando sí eres dueño del hostname antiguo.
Paso 6: verifica la migración
La migración termina cuando cada lugar donde se publicó un enlace apunta a algo que controlas. Usa esta lista en orden.
- Congela los enlaces nuevos en TinyURL. Crea todo lo nuevo en Elido a partir de ahora.
- Archiva los archivos de exportación de TinyURL y cualquier informe, con la fecha.
- Filtra en Elido el lote importado por la etiqueta
imported:tinyurl. - Compara los recuentos. Importados más omitidos más fallidos debe ser igual al número de filas de origen.
- Corrige los fallos. Cada fila fallida viene con un motivo, normalmente una URL no válida o un carácter incorrecto en el slug.
- Prueba los enlaces principales. Toma tus 50 enlaces más importantes y pide cada uno:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://go.yourbrand.com/spring-sale
- Compara el destino con el origen de esos 50. Haz coincidir la URL final, incluidos los parámetros UTM.
- Vuelve a probar tras el DNS desde una red que no haya cacheado el registro antiguo.
- Actualiza los lugares con tinyurl.com. Busca
tinyurl.comen archivos de correo, bios de redes sociales, plataformas de anuncios e impresos, y sustituye lo que puedas.
En las superficies a las que no llegas, acepta la pérdida. Los códigos QR impresos antiguos y las publicaciones olvidadas seguirán apuntando a TinyURL, y eso es cierto en cualquier migración de acortadores. Migrar desde Bitly sin romper enlaces tiene una pasada de verificación más estricta si la quieres.
Paso 7: planifica tu rollback
Mantén TinyURL un mes si puedes, y vigila a los rezagados antes de cancelar un plan de pago. Mientras TinyURL siga sirviendo los enlaces de tu hostname de marca, el rollback es un único cambio de DNS de vuelta al registro antiguo, y el TTL bajo lo hace rápido.
Dentro de Elido, la etiqueta imported:tinyurl es el asa para deshacer un lote: filtra y luego edita en bloque o borra. Si una ejecución del importador muere a medias (un despliegue o un fallo lo detiene, y un barrido cada cinco minutos pasa a failed los jobs sin progreso en 30 minutos), no hay un cursor guardado, así que reinicias el job. Volver a ejecutarlo es seguro con suffix o skip, pero suffix creará copias -2 de los enlaces que la primera ejecución ya escribió, así que para una repetición prefiere skip.
Paso 8: fija las expectativas de analíticas
El historial de clics no se traslada por ninguna de las dos vías. El importador lee solo campos del enlace, y un CSV no tiene columna de clics. Los clics nuevos cuentan desde el momento en que un enlace está activo en Elido, que en un dominio personalizado significa desde el cambio de DNS. Espera una ventana corta en la que algunos visitantes sigan llegando a TinyURL por registros en caché.
También se quedan atrás los estilos y las plantillas de QR, y todo lo creado sin cuenta. Si haces seguimiento de campañas, traslada ahora tus convenciones UTM; los parámetros UTM explicados son un buen repaso.
Qué ganas al mudarte
Te vas con enlaces en un hostname que posees, así que la próxima migración, si la hay, es un cambio de DNS en vez de un proyecto. También obtienes analíticas que empiezan en el cambio y una etiqueta que puedes consultar. La página de precios lista los planes, y Elido vs TinyURL tiene el cara a cara. Para la pregunta más amplia de qué más considerar, el artículo de alternativas a TinyURL compara el panorama.
Relacionado en el blog
Preguntas frecuentes
¿Puedo redirigir mis enlaces tinyurl.com a un enlace corto nuevo?
No. No eres dueño de tinyurl.com, así que solo TinyURL puede cambiar a dónde apunta un código tinyurl.com/xxxx. En un plan de pago puedes editar el destino dentro de TinyURL, pero no puedes apuntarlo a una redirección propia a nivel de dominio. La solución es sustituir el enlace antiguo allí donde lo publicaste.
¿Cómo exporto mis enlaces de TinyURL?
Usa la API de TinyURL con un token de una cuenta de pago. La especificación OpenAPI de TinyURL lista los enlaces con GET /urls/available y GET /urls/archived, con filtros opcionales from, to y search. Los enlaces creados sin iniciar sesión no pertenecen a ninguna cuenta, así que no hay nada que listar.
¿Funciona hoy el importador de TinyURL de Elido?
Considéralo no verificado. El worker pide una ruta /aliases que no está en la especificación OpenAPI de TinyURL (consultada el 2026-10-02), así que la vía fiable ahora mismo es exportar con /urls/available y cargar el resultado con la importación CSV o masiva de Elido. Hay una corrección del importador prevista.
¿Pierdo mi historial de clics al dejar TinyURL?
Sí, a efectos prácticos. Elido importa destino, alias, título y etiquetas, no eventos de clic. Exporta de TinyURL los informes que necesites antes de cancelar, y espera que los clics nuevos en Elido empiecen a contarse desde el cambio.
¿Puedo conservar mi dominio personalizado de TinyURL?
Sí, porque es tuyo. Añade el hostname a Elido, importa los alias sobre él y luego cambia el registro DNS en tu registrador. Los enlaces antiguos de ese dominio siguen funcionando porque el hostname ahora apunta a Elido en lugar de a TinyURL.
¿Puedo migrar desde una cuenta gratuita de TinyURL?
No de forma automática. Listar los enlaces necesita un token de API, y TinyURL deja la edición, las analíticas, los dominios personalizados y la creación en bloque en los planes de pago. En el plan gratuito reconstruyes tú mismo una lista de destinos y los creas en bloque en Elido.
Prueba Elido
Pega una URL, obtén un enlace corto
Sin registro. El enlace vive 30 días. Crea una cuenta para conservarlo.
Sin registro. Crea una cuenta gratis y obtén 50 enlaces al mes.