14 min de leituraMigração

Migrar do TinyURL: o que muda, o que fica, o que quebra

Migre do TinyURL com um plano: o que exportar, quais links tinyurl.com não dá para redirecionar, mapeamento do CSV, importação, troca de DNS e verificação.

Ana Kowalska
Marketing solutions engineering

Para migrar do TinyURL, primeiro separe seus links em duas pilhas: links em um domínio que você possui e links em tinyurl.com. A primeira pilha migra sem atrito, porque você muda um registro DNS e as URLs antigas continuam funcionando. A segunda pilha você não consegue redirecionar de forma alguma, porque o TinyURL é dono do domínio. Você pode copiar os destinos para o Elido, mas cada lugar onde um link tinyurl.com/xxxx foi publicado precisa ser atualizado à mão.

A segunda coisa a saber antes de começar: hoje o caminho confiável é um arquivo. Exporte pela chamada documentada GET /urls/available do TinyURL, reduza o resultado a destination, slug, title e carregue com a importação em massa do Elido. O Elido também tem um importador de TinyURL de um clique, mas ele chama um endpoint que não está na API publicada do TinyURL, então o tratamos como não verificado até que uma correção planejada seja lançada. Este guia cobre os dois caminhos e a jornada completa: da exportação aos analytics, com a troca e o rollback no meio. Os fatos sobre o TinyURL vêm do blog e da especificação OpenAPI dele, acessados em 2026-10-01 e 2026-10-02.

Para um veredito recurso a recurso sobre se vale a pena trocar, leia Elido vs TinyURL ou o panorama mais amplo de alternativas ao TinyURL.

A propriedade do hostname decide tudo. Um link curto são duas coisas: um hostname e um código. Você pode levar um código para qualquer lugar, mas só consegue fazer um link continuar funcionando se controla o hostname.

Tipo de linkQuem controla o redirecionamentoO que você pode fazer
tinyurl.com/xxxx, criado sem contaTinyURLNada no link antigo. Recrie o destino no Elido e substitua o link antigo onde ele foi publicado
tinyurl.com/your-alias, criado em uma contaTinyURLEdite o destino dentro do TinyURL em um plano pago, ou importe o alias para o Elido sob um novo hostname e atualize cada posição
go.yourbrand.com/xxxx (domínio personalizado)VocêAponte o hostname para o Elido e importe os aliases. As URLs antigas continuam funcionando
Diagrama: links no seu próprio domínio migram para o Elido com uma mudança de DNS, enquanto links tinyurl.com ficam no TinyURL e precisam ser substituídos onde foram publicados

A versão honesta para as duas primeiras linhas: depois que você para de pagar o TinyURL, esses links continuam resolvendo enquanto o TinyURL os mantiver, e você não tem como ver cliques, alterá-los nem redirecioná-los. Algumas equipes os deixam como estão de propósito. Acho que é a decisão certa para links antigos e de pouco tráfego.

A página de migração do TinyURL para o Elido com os passos de conexão, opções e importação para uma importação em massa única dos links existentes

O TinyURL oferece uma única forma documentada de listar seus links: a API. A especificação OpenAPI dele (acessada em 2026-10-02) define a listagem como GET /urls/{type}, em que type é available ou archived, com datas e horas opcionais from e to e um filtro search que aceita o prefixo alias: ou tag:. A chamada exige um bearer token. O artigo do próprio TinyURL sobre listar links descreve o mesmo endpoint e diz que o tipo é a única entrada obrigatória.

O que a especificação não oferece importa tanto quanto. Ela não define parâmetros page ou per_page nem limites de taxa. Então, em uma conta grande, restrinja cada requisição com janelas from/to (um mês por vez, por exemplo) e grave cada resposta em disco antes de fazer qualquer outra coisa:

# 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

Não verificamos o formato da resposta real (a especificação não deixa claro se ela traz uma lista ou um único objeto), então abra um arquivo e olhe antes de escrever um parser. Execute a mesma chamada em /urls/archived se quiser também os links arquivados.

Três limites moldam o resto do plano:

  • Sem conta, sem lista. O TinyURL afirma que links criados sem login não podem ser gerenciados nem excluídos. Não existe registro por usuário, então não há nada a exportar.
  • O plano gratuito é somente leitura. Segundo a página do plano gratuito do TinyURL, edição e exclusão de links, analytics de cliques, domínios personalizados e criação em massa ficam atrás de planos pagos.
  • Os analytics não vêm na lista. O histórico de cliques fica por sua conta. Tire capturas de tela ou extraia relatórios do TinyURL antes de cancelar. Não encontramos um botão de exportação CSV documentado na central de ajuda do TinyURL, então este guia não promete um.

Passo 2: mapeie os dados do TinyURL para um arquivo que o Elido aceita

Seja o que for que você extraiu do TinyURL, reduza aos mesmos três campos:

  • A URL longa do TinyURL vira destination (o alvo do link).
  • O alias do TinyURL vira slug. Deixe em branco nos links em tinyurl.com para os quais você quer códigos novos.
  • O título ou a descrição do TinyURL vira title.

O TinyURL chama de aliases, o Elido chama de slugs. É a mesma coisa: os caracteres depois do host. Se o seu domínio de destino estiver vazio, os aliases são mantidos sem alteração.

A página de links do Elido tem uma aba de importação em massa e uma aba de CSV, e ambas leem linhas no formato url, slug, title. Na aba de CSV, a primeira linha é descartada quando não contém uma URL http(s)://, então uma linha de cabeçalho é segura. Linhas que começam com # são ignoradas na caixa de colagem. Slugs personalizados usam letras, números e hifens, então confira os aliases com quaisquer outros caracteres antes de enviar; as linhas que falham são listadas com o motivo.

destination,slug,title
https://acme.com/spring-sale,spring-sale,Spring Sale
https://acme.com/pricing,,Pricing page

Se você usava tags do TinyURL, guarde-as. Elas não cabem no CSV de três colunas, mas o caminho pela API abaixo as aceita.

Passo 3: importe para o Elido

Há duas formas de entrar. O caminho por arquivo funciona hoje. O importador integrado existe, mas não foi verificado.

O caminho confiável: CSV, colagem em massa ou a API em massa

As abas de importação em massa e de CSV do dashboard processam até 100 links por lote, então divida um arquivo maior em partes. A página de ajuda da importação em massa explica o formulário, e o passo a passo da importação em massa pelo Google Sheets é útil se você limpou a exportação em uma planilha.

A API do workspace aceita o mesmo formato em JSON. POST /v1/workspaces/{workspace_id}/links/bulk aceita um domain_id e até 100 links, cada um com destination_url e, opcionalmente, slug, title e tags. Cada linha é processada separadamente, então uma linha ruim não derruba o lote, e a resposta informa quais linhas deram erro. Adicione você mesmo uma tag como imported:tinyurl para poder filtrar o lote depois. API e SDKs traz as bibliotecas de cliente.

O importador de TinyURL integrado e seu bug conhecido

O Elido tem um importador de TinyURL de um clique, descrito na página migrar do TinyURL. Você cola um token de API do TinyURL, escolhe o domínio do Elido onde os links devem entrar e define uma estratégia de conflito. O problema é a primeira chamada HTTP. O worker monta esta requisição:

GET https://api.tinyurl.com/aliases?page=1&per_page=100
Authorization: Bearer <token>

e espera receber de volta {"data": [{alias, url, title, tags}], "meta": {"total", "has_more"}}. A especificação do TinyURL não tem um caminho /aliases; as operações de alias ficam em /alias/{domain}/{alias}, e a listagem é /urls/{type}. Ou seja, esse contrato de paginação nunca foi tirado do TinyURL. Nosso teste unitário serve uma resposta escrita à mão no formato presumido e passa, o que prova que o parser corresponde à nossa suposição e nada sobre o TinyURL. Não o executamos contra uma conta real, porque isso exige um token de plano pago. Não planeje uma migração em torno dele ainda.

A correção está planejada: trocar para /urls/available (com /urls/archived atrás de uma flag), percorrer janelas from/to, fazer o parsing de forma defensiva e testar contra uma resposta real capturada. Depois disso, a paginação e o limite real por requisição precisam ser medidos de novo em uma conta real, já que a especificação não informa nenhum dos dois.

Página de integrações do dashboard do Elido em um workspace de demonstração, onde as fontes de migração são iniciadas

A página de integrações em um workspace de DEMONSTRAÇÃO com dados sintéticos. A migração do TinyURL é iniciada aqui.

O que o importador faz depois de receber uma página

Tudo depois da chamada HTTP não depende da questão do endpoint, e essa parte podemos afirmar a partir do código.

  • Início. POST com token, target_domain_id e conflict_strategy opcional. O handler rejeita um token vazio, um domínio ausente e qualquer estratégia fora de suffix, skip, fail, depois responde 202 com o job e executa o worker em segundo plano, desvinculado da requisição.
  • Por link. Uma linha sem URL ou sem alias conta como falha, com um motivo. Caso contrário, o alias vira o slug, destino e título são copiados (título truncado em 200 caracteres) e as tags são copiadas com imported:tinyurl acrescentada.
  • Progresso. Os contadores são gravados na linha do job a cada 50 links. No máximo 1.000 linhas de erro são registradas por job.
  • Erros de autenticação e de taxa. Um 401 ou 403 faz o job falhar com a mensagem "check the bearer token", e um 429 o faz falhar por limite de taxa. Não há retry nem backoff: o job para.

O token vai do corpo da requisição para o job em segundo plano e para lugar nenhum mais. A linha do job não registra token, e nada é criptografado em repouso porque nada é armazenado. O corpo da requisição é lido com um limite de 4 KB. O código não valida o token nem verifica o plano antes de começar, então um token ruim aparece como um job com falha depois da primeira requisição, não como erro de formulário. Versões anteriores da nossa documentação descreviam uma verificação prévia contra um endpoint de domínios; essa etapa não existe no código, e a especificação do TinyURL também não tem esse caminho.

Regras de conflito e limites

Antes de cada inserção, o worker faz uma consulta indexada pelo par domínio e slug:

  • suffix (padrão) tenta alias-2, alias-3, até alias-50, e falha a linha se todos estiverem ocupados.
  • skip deixa o link existente do Elido em paz e registra a linha de origem.
  • fail faz o job falhar no primeiro conflito.

Cada execução tem teto de 50.000 links e 30 minutos. Dois comportamentos merecem atenção. Quando o teto de 50.000 é atingido, o loop simplesmente para e o job termina; ele não falha, então compare as contagens finais com o total da origem. Quando o orçamento de 30 minutos acaba, o job é marcado como falho com o número importado até ali.

Lista de links do Elido em um workspace de demonstração com links curtos, destinos, tags, cliques dos últimos 30 dias e status

A lista de links em um workspace de DEMONSTRAÇÃO. Os links importados levam a tag imported:tinyurl, para que você possa filtrar um lote para revisão.

Como testar o importador com segurança

Quando o endpoint for corrigido, ou se você testar o importador por conta própria antes disso, faça em pequena escala. Crie um workspace descartável, adicione um domínio vazio e execute o job primeiro com a estratégia fail. Um domínio vazio significa nenhum conflito, então qualquer falha é problema de parsing ou de autenticação, não de colisão. Depois compare três números: a contagem de origem no TinyURL, o total que o job informa e os contadores de importados mais ignorados mais falhos. Como o worker pega meta.total da resposta que espera, uma divergência entre total e a sua contagem real é o primeiro sinal de que o formato da resposta difere do que o parser presume. Filtre por imported:tinyurl, abra dez links ao acaso e confira destino, slug e título com o TinyURL.

Criar um workspace novo no Elido para isso leva alguns minutos; crie uma conta gratuita e adicione seu domínio primeiro, para que esteja pronto quando a importação terminar.

Passo 4: faça a troca do seu domínio personalizado

Se você usa um hostname de marca no TinyURL, está no caso fácil. A configuração de domínio de marca do TinyURL é um CNAME ou mudança de DNS semelhante em um domínio que você já possui, então a mesma alavanca funciona no sentido inverso. Observe que o importador não cria o domínio para você nem lê um campo domain do TinyURL. Um hostname de marca é uma etapa à parte.

A ordem importa, porque o DNS é o último passo e o único que os visitantes sentem:

  1. Reduza o TTL do registro com um dia de antecedência, para que a troca chegue rápido.
  2. Adicione o hostname ao Elido em Domínios e deixe-o verificar. O guia adicionar um domínio traz os registros exatos, e a solução de problemas de verificação de DNS cobre os erros de digitação por trás da maioria dos estados "Pendente" travados.
  3. Importe os aliases para esse hostname enquanto os visitantes ainda chegam ao TinyURL.
  4. Confira por amostragem os slugs importados com o comportamento antigo do hostname ao vivo.
  5. Altere o registro DNS. A partir desse momento o hostname resolve para o Elido e toda URL antiga nele o acompanha.

Mantenha o hostname somente em DNS, sem proxy de CDN na frente, porque a emissão de certificados pode falhar atrás de um. A configuração mais ampla está em domínios personalizados para links curtos e na página do recurso de domínios personalizados.

Passo 5: mantenha seus redirecionamentos 301 intactos

No seu próprio domínio a URL não muda, então não há nada a fazer de ponte: o mesmo caminho agora responde pelo Elido. O que você protege é a semântica do redirecionamento. Os códigos de status de redirecionamento são definidos na RFC 9110; um redirecionamento permanente diz a navegadores e mecanismos de busca que o alvo é estável, e passar links de longa vida para temporários muda como eles são armazenados em cache e creditados. Leia redirecionamentos 301 vs 302 para o lado de SEO e de cache.

Para links tinyurl.com não há 301 que você possa adicionar, porque o redirecionamento é do TinyURL. O melhor que você pode fazer é garantir que o destino por trás do link antigo continue vivo e substituir o link onde conseguir alcançá-lo. O playbook de migração do Bitly mostra como funciona uma ponte 301 quando você é dono do hostname antigo.

Passo 6: verifique a migração

A migração termina quando cada posição de um link aponta para algo que você controla. Use esta lista em ordem.

  1. Congele novos links no TinyURL. Crie tudo o que for novo no Elido a partir de agora.
  2. Arquive os arquivos de exportação do TinyURL e quaisquer relatórios, com a data.
  3. Filtre o lote importado no Elido pela tag imported:tinyurl.
  4. Compare as contagens. Importados mais ignorados mais falhos devem igualar a contagem de linhas da origem.
  5. Corrija as falhas. Cada linha com falha vem com um motivo, geralmente uma URL inválida ou um caractere ruim no slug.
  6. Teste os principais links. Pegue seus 50 links mais importantes e requisite cada um:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://go.yourbrand.com/spring-sale
  1. Compare destino e origem nesses 50. Confira a URL final, incluindo os parâmetros UTM.
  2. Teste de novo após o DNS a partir de uma rede que não guardou o registro antigo em cache.
  3. Atualize as posições com tinyurl.com. Procure por tinyurl.com em arquivos de e-mail, bios de redes sociais, plataformas de anúncios e material impresso, e substitua o que for possível.

Nas superfícies que você não alcança, aceite a perda. QR codes impressos antigos e posts esquecidos continuarão apontando para o TinyURL, e isso vale para toda migração de encurtador. Migrar do Bitly sem quebrar links tem uma verificação mais rigorosa se você quiser uma.

Passo 7: planeje seu rollback

Mantenha o TinyURL por um mês, se puder, e observe retardatários antes de cancelar um plano pago. Enquanto o TinyURL ainda atende os links do seu hostname de marca, o rollback é uma mudança de DNS de volta ao registro antigo, e o TTL baixo a torna rápida.

Dentro do Elido, a tag imported:tinyurl é a alça para desfazer um lote: filtre e depois edite em massa ou exclua. Se uma execução do importador morrer no meio (um deploy ou crash a interrompe, e uma varredura a cada cinco minutos muda para failed os jobs sem progresso por 30 minutos), não há cursor salvo, então você reinicia o job. Executar de novo é seguro com suffix ou skip, mas suffix criará cópias -2 dos links que a primeira execução já gravou, então prefira skip numa nova execução.

Passo 8: defina as expectativas de analytics

O histórico de cliques não passa por nenhum dos dois caminhos. O importador lê apenas os campos do link, e um CSV não tem coluna de cliques. Os novos cliques contam a partir do momento em que um link está no ar no Elido, o que, para um domínio personalizado, significa a partir da mudança de DNS. Espere uma janela curta em que alguns visitantes ainda chegam ao TinyURL por registros em cache.

Também ficam para trás: o estilo e os modelos de QR, além de tudo o que foi criado sem conta. Se você acompanha campanhas, leve suas convenções de UTM agora; parâmetros UTM explicados é uma boa revisão.

O que você ganha ao migrar

Você sai com links em um hostname que é seu, então a próxima migração, se houver, será uma mudança de DNS em vez de um projeto. Também ganha analytics que começam na troca e uma tag que pode consultar. A página de preços lista os planos, e Elido vs TinyURL traz o comparativo direto. Para a pergunta mais ampla sobre o que mais considerar, o post de alternativas ao TinyURL compara o mercado.

Relacionados no blog

Perguntas frequentes

Posso redirecionar meus links tinyurl.com para um novo link curto?

Não. Você não é dono do tinyurl.com, então só o TinyURL pode mudar para onde um código tinyurl.com/xxxx aponta. Em um plano pago você pode editar o destino dentro do TinyURL, mas não pode apontá-lo para um redirecionamento de nível de domínio seu. A solução é substituir o link antigo em todo lugar onde você o publicou.

Como exporto meus links do TinyURL?

Use a API do TinyURL com um token de uma conta paga. A especificação OpenAPI do TinyURL lista os links por GET /urls/available e GET /urls/archived, com os filtros opcionais from, to e search. Links criados sem login não pertencem a nenhuma conta, então não há nada para listar.

O importador de TinyURL do Elido funciona hoje?

Trate-o como não verificado. O worker requisita um caminho /aliases que não consta na especificação OpenAPI do TinyURL (acessada em 2026-10-02), então o caminho confiável agora é exportar por /urls/available e carregar o resultado com a importação por CSV ou em massa do Elido. Uma correção do importador está planejada.

Perco meu histórico de cliques quando saio do TinyURL?

Sim, na prática. O Elido importa destino, alias, título e tags, não eventos de clique. Exporte do TinyURL os relatórios de que precisa antes de cancelar e espere que os novos cliques no Elido comecem a ser contados a partir da troca.

Posso manter meu domínio personalizado do TinyURL?

Sim, porque ele é seu. Adicione o hostname ao Elido, importe os aliases para ele e depois altere o registro DNS no seu registrador. Os links antigos nesse domínio continuam funcionando porque o hostname agora aponta para o Elido em vez do TinyURL.

Posso migrar de uma conta gratuita do TinyURL?

Não automaticamente. Listar os links exige um token de API, e o TinyURL deixa edição, analytics, domínios personalizados e criação em massa em planos pagos. No plano gratuito, você monta por conta própria uma lista de destinos e os cria em massa no Elido.

Experimente Elido

Cole uma URL, obtenha um link curto

Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.

Sem registro. Crie uma conta grátis e obtenha 50 links por mês.

Experimente o Elido

Encurtador de URL hospedado na UE: domínios personalizados, análises profundas e API aberta. Plano gratuito - sem cartão de crédito.

Tags
migrate from tinyurl
tinyurl export
leave tinyurl
tinyurl custom domain migration
bulk import short links
tinyurl pro api

Continuar lendo