Osintgram

O Osintgram ainda funciona em 2026?

Em parte. Fazer login com usuário e senha do Instagram está praticamente morto (os relatos de login de 2026 no tracker são checkpoint_required, block_eu_user_login_in_old_app e bad_password), enquanto o backend HikerAPI, adicionado em agosto de 2025, é o caminho ainda projetado para funcionar. O repositório não está arquivado, mas o master não recebe um commit desde 25 de agosto de 2025.

18 min de leituraEquipe Osintgram

A resposta curta

Em parte, e a divisão é nítida. Clone o repositório, coloque um usuário e uma senha do Instagram em config/credentials.ini e, em 2026, é quase certo que você nunca vai passar da linha de login. Coloque um token HikerAPI nesse mesmo arquivo e a ferramenta não autentica no Instagram em momento algum: ela chama uma API paga de terceiros, e é para esse caminho que o próprio projeto hoje empurra as pessoas.

Login com senha: praticamente morto. As falhas de login relatadas ao longo de 2026 são checkpoint_required, block_eu_user_login_in_old_app e bad_password. Token HikerAPI: o caminho que ainda foi projetado para funcionar, e que usuários relatam funcionando; é de terceiros e pago depois das primeiras 100 requisições. O repositório: não arquivado, 13,896 estrelas, 828 issues abertas, último commit em 25 de agosto de 2025, última release com tag 1.3 em maio de 2021.

Tudo o que vem abaixo sai de três lugares: o código-fonte do repositório, a GitHub API em 8 de agosto de 2026 e relatos de bug datados no tracker do próprio projeto. Não rodamos a CLI contra uma conta real do Instagram: toda string de terminal citada aqui foi lida do código-fonte ou copiada de uma issue datada, com o número indicado.

O que realmente quebrou

O Osintgram é um wrapper fino de linha de comando. Ele não conversa com o Instagram por conta própria: o requirements.txt fixa instagram-private-api==1.6.0 e entrega todo o problema de autenticação para essa biblioteca. A saúde do Osintgram é, na prática, a saúde dessa biblioteca. E a biblioteca está parada há dois anos.

O ping/instagram_private_api recebeu seu último push em 6 de maio de 2024. Ele funciona se passando pelo app mobile do Instagram contra o endpoint https://i.instagram.com/api/{version!s}/. O Instagram derrubou esse endpoint. A issue #791, aberta em 3 de maio de 2023, é onde a comunidade percebeu isso em coro: "Lately, we all discovered that Osintgram is not working anymore." ("Ultimamente, todos nós descobrimos que o Osintgram não funciona mais.") Nada consertou o caminho de código legado desde então: a correção que acabou chegando foi um backend diferente, não um conserto.

Três anos depois, a falha tem uma assinatura legível. Este é o trecho colado na issue #2627, aberta em 4 de março de 2026:

Attempt to login...
ClientError checkpoint_required (Code: 400, Response:
{"message": "checkpoint_required",
 "checkpoint_url": "https://i.instagram.com/web/unsupported_version/",
 "lock": false, "flow_render_type": 0, "status": "fail"})
Relatado na issue #2627, 4 de março de 2026. Quebrado em várias linhas aqui para facilitar a leitura; a ferramenta imprime a resposta em uma linha só.

Leia a checkpoint_url. Não é um checkpoint de segurança que você resolve confirmando um e-mail; ela aponta para /web/unsupported_version/. O Instagram está rejeitando a versão de cliente que a biblioteca anuncia, não as suas credenciais. O mesmo raciocínio vale para bad_password: o autor do PR #2660, aberto em 12 de junho de 2026, escreve que isso "is actually a bot detection, not wrong password" ("na verdade é detecção de bot, não senha errada"), e o objetivo inteiro daquele PR é impedir que as pessoas fiquem redigitando uma senha que nunca esteve errada.

Existe um efeito de segunda ordem que vale conhecer, porque explica por que a ferramenta parece quebrar da noite para o dia para quem não mudou nada. O backend legado guarda a sessão em cache em config/settings.json e a reutiliza nas execuções seguintes, então um login antigo pode continuar funcionando com cookies velhos muito depois de os logins novos pararem de dar certo. Quando esses cookies expiram, você recebe ClientCookieExpiredError/ClientLoginRequiredError, e o código tenta na hora uma reautenticação completa, direto contra o muro descrito acima. Limpar o cache com a flag -C não conserta nada; só antecipa a falha.

Leia a URL, não a mensagem

Os erros de login do Instagram são escritos para o app, não para você. checkpoint_required parece dizer que a sua conta precisa ser verificada. bad_password parece um erro de digitação. Nos dois casos, o detalhe legível por máquina (a URL de checkpoint com unsupported_version, a leitura que o próprio autor do PR faz de bad_password) aponta para o cliente, não para você. Redefinir a senha ou criar mais uma conta descartável não muda o resultado.

O inventário de erros de 2026

Estas são as falhas de login que as pessoas estão de fato relatando, com as datas tiradas das próprias issues e não do carimbo de publicação de algum blog. Se o seu terminal imprimiu Attempt to login... e em seguida um destes, o problema está do lado do Instagram.

Erro no loginO que é de verdadeOnde foi relatado
checkpoint_required com uma URL /web/unsupported_version/O Instagram rejeitando a versão de cliente da biblioteca#2627, 4 mar 2026
ClientError Bad Request: block_eu_user_login_in_old_appLogins da UE recusados para clientes que o Instagram classifica como app antigo#2630, 2 abr 2026
bad_passwordDetecção de bot, segundo o autor do PR (não é senha errada)PR #2660, 12 jun 2026
ClientError TimeoutError The read operation timed outO login trava; relatado no Python 3.13#2596, 4 set 2025
ClientCookieExpiredError/ClientLoginRequiredError: Cookie expiredA sessão em cache em config/settings.json expirou; o relogin automático bate no mesmo muroissue #2483, 23 fev 2025
challenge_requiredO Instagram marcou a conta como suspeita; o README manda abrir o link e concluir o challengeissue #1638
Falhas de login relatadas no Datalux/Osintgram, 2025-2026.

Para dar escala: uma busca no tracker retorna 66 issues mencionando challenge_required, 55 mencionando JSONDecodeError e 7 mencionando checkpoint_required, contra 98 para ModuleNotFoundError. Esse último número é a outra metade da história, e é um problema completamente diferente.

A distinção importa na hora de triar a sua própria falha. Se o pip recusou com error: externally-managed-environment, ou se o traceback termina em ModuleNotFoundError, a ferramenta nem chegou ao Instagram e o seu problema é de instalação: veja como instalar o Osintgram, ou a versão específica para Kali. Se você chegou até Attempt to login... e depois um ClientError, você está na tabela acima, e reinstalar não vai tirar você de lá.

O projeto está abandonado?

Formalmente, não. O repositório é público, licenciado sob GPL-3.0 e explicitamente não arquivado, então ainda dá para abrir issues e pull requests. Mas os sinais de manutenção valem mais lidos em conjunto do que um de cada vez.

SinalValorObservação
Estrelas13,896GitHub API, 8 ago 2026
Forks3,000GitHub API, 8 ago 2026
Issues abertas828, mais 55 pull requests abertosAs recentes são, em boa parte, só um nome de usuário do Instagram como título
Último commit no master25 de agosto de 2025Quase um ano antes deste artigo
Última release com tag1.3, 17 de maio de 2021Cinco anos sem nenhuma release desde então
ArquivadoNãoAinda aceita issues e PRs
Branchesmaster, development, v2O master é a padrão
Banner de versão1.1O main.py imprime isso independentemente da tag 1.3
Status do repositório Datalux/Osintgram, lido da GitHub API em 8 de agosto de 2026.

Colocado numa linha do tempo, o formato do projeto fica mais fácil de enxergar:

  1. 7 de junho de 2019: o repositório é criado.
  2. 17 de maio de 2021: a release 1.3 recebe sua tag. Ela ainda é a mais recente.
  3. 3 de maio de 2023: na issue #791, a comunidade percebe que a ferramenta parou de funcionar.
  4. 6 de maio de 2024: a instagram-private-api, biblioteca da qual o caminho padrão depende, recebe seu último push.
  5. 29 de julho de 2025: o commit "Integration with HikerAPI" chega ao master.
  6. 11 de agosto de 2025: o PR #2586 é mergeado, completando o backend HikerAPI.
  7. 25 de agosto de 2025: o último commit no master até hoje.
  8. De março a junho de 2026: o tracker se enche de checkpoint_required, block_eu_user_login_in_old_app e bad_password.

A leitura honesta: este não é um projeto morto, mas também não é um projeto mantido. Em meados de 2025 alguém se importou o bastante para enxertar um backend que funciona, e depois as luzes se apagaram de novo. Ninguém está triando 828 issues abertas, ninguém está mergeando os 55 pull requests abertos, ninguém lança uma release há cinco anos, e o banner de inicialização continua anunciando "Version 1.1 - Developed by Giuseppe Criscione" enquanto a tag mais nova diz 1.3. Planeje-se de acordo: se o caminho HikerAPI quebrar amanhã, não há nenhum indício de que alguém vá consertar rápido.

Isso também diz o quanto confiar nos guias que você vai encontrar. As páginas que hoje aparecem bem posicionadas para instalação do Osintgram têm datas que vão de 2020 a 2025, e a maioria foi escrita antes de tudo isso: antes da derrubada do endpoint, antes de o Kali trancar o pip atrás da PEP 668, antes de o backend HikerAPI existir. Um tutorial que nunca menciona hikerapi_token está descrevendo uma versão da ferramenta que não conecta mais, por mais limpos que os comandos pareçam.

O caminho HikerAPI, e o que ele custa a você

No fim de julho de 2025 o projeto ganhou um segundo backend. O main.py agora toma uma única decisão na inicialização, antes de qualquer tráfego com o Instagram:

if config.getHikerToken():
    api = HikerCLI(args.id, args.file, args.json, args.command,
                   args.output, args.cookies)
else:
    api = Osintgram(args.id, args.file, args.json, args.command,
                    args.output, args.cookies)
main.py no master atual, quebrado em várias linhas aqui para caber. Uma chamada decide qual backend você recebe.

O src/config.py define getHikerToken() como o campo hikerapi_token de config/credentials.ini, com fallback para a variável de ambiente HIKERAPI_TOKEN. Se qualquer um dos dois estiver definido, o main.py instancia o HikerCLI, que nunca lê usuário nem senha, então os dois campos em branco continuam em branco e nenhum login no Instagram é tentado.

[Credentials]
username =
password =
hikerapi_token = <your token>
config/credentials.ini. O equivalente pontual é HIKERAPI_TOKEN=<token> python3 main.py <target> -c <command>.

Dá para saber qual backend você pegou pela primeira linha da saída. O caminho legado imprime Attempt to login...; o caminho HikerAPI imprime Connect to HikerAPI... e tira a marca [FOLLOWING] / [NOT FOLLOWING] do banner do alvo, porque não existe conta logada com a qual comparar. Essa única linha é a forma mais rápida de conferir se o seu token foi mesmo lido.

O README aponta para hikerapi.com/tokens e afirma que as "first 100 requests are free after registration and confirmation of your tg" ("as primeiras 100 requisições são gratuitas após o registro e a confirmação do seu tg"). Depois disso, é uma API comercial cobrada por requisição. Três coisas decorrem daí, e nenhuma delas está nos tutoriais que ainda aparecem bem posicionados para esta busca.

  • Você está pagando um terceiro e contando a ele quem você investiga. Todo nome de usuário-alvo que você consulta passa pela infraestrutura da HikerAPI, e não pela sua própria sessão. Para certos trabalhos investigativos, isso já é um problema de exposição por si só.
  • O caminho HikerAPI tem os próprios defeitos. A issue #2664, aberta em 21 de junho de 2026, se chama "Handle alternate HikerAPI user response formats": os formatos de resposta que o código espera não são os únicos que estão voltando.
  • Alguns comandos estão mortos nesse caminho por design. O photodes no backend HikerAPI não faz nada além de imprimir Instagram has disabled this functionality. É isso que o código-fonte diz, literalmente.

Por que dizemos "ainda projetado para funcionar", e não "garantido que funciona"

Não rodamos a ferramenta contra um alvo real, então a afirmação se apoia em evidência, não em demonstração: o PR #2586 mergeou o backend em agosto de 2025, o PR #2660 existe justamente para empurrar os usuários travados nessa direção, e o autor da issue #2627 diz com todas as letras que a HikerAPI funcionou para ele até a cota acabar. Isso é um sinal forte e uma garantia fraca. A issue #2664 é o motivo da ressalva.

Isso vai fazer sua conta do Instagram ser banida?

O próprio projeto responde a isso. O README traz um aviso em vermelho: "It is advisable to not use your own/primary account when using this tool." ("É aconselhável não usar sua conta própria/principal ao usar esta ferramenta.") Isso não é texto de praxe: é uma admissão de como o caminho legado se comporta.

Na mecânica, o backend padrão faz login como uma conta real e depois se comporta de um jeito que nenhum humano se comportaria. Os quatro comandos de coleta de contatos fazem uma chamada de API extra por seguidor, e não existe sleep nem backoff em lugar nenhum desses laços. Quando o Instagram reclama, você recebe Error: Instagram blocked the requests. Please wait a few minutes before you try again. nesses comandos, ou um urllib.error.HTTPError: HTTP Error 429: Too Many Requests não tratado em followers e followings, que não têm o handler.

A escala em que isso acontece está documentada, em volume e não em minutos. A issue #366 mostra uma execução interrompida depois de 41,643 registros de seguidores coletados, e o crash que veio logo após a mensagem de bloqueio descartou todos eles; a issue #342 relata a varredura sendo bloqueada por volta de 35,000. Não existe nenhuma medição de tempo verificada para nada disso, então não confie em um guia que promete um dump de seguidores em tantos minutos. O patch comunitário #657 existe exatamente porque os laços do upstream não têm delay nenhum.

challenge_required é a versão em nível de conta da mesma objeção: o Instagram decidindo que a sessão parece automatizada. A issue #1638 documenta que a ferramenta dispara isso com frequência, tendo bloqueios temporários ou perda permanente da conta usada como consequências relatadas. O próprio FAQ do README manda abrir o link do challenge e concluí-lo, o que funciona até o dia em que não funciona mais.

Se for rodar o caminho legado, rode em uma conta descartável

Use uma conta que você pode perder sem prejuízo, e nunca uma ligada a uma identidade real ou a um trabalho com cliente. O segundo aviso do README é igualmente importante: o config/credentials.ini guarda a senha em texto puro, então, se você fizer um fork do repositório, não faça commit dele. O caminho HikerAPI contorna a categoria inteira: nenhuma conta sua fica logada, então não existe conta sua para ser bloqueada.

O que ainda funciona, e o que usar no lugar

Existem quatro maneiras pelas quais as pessoas de fato rodam esta ferramenta, mais uma maneira de pular a etapa. O status delas em 2026 não é o mesmo.

CaminhoFunciona em 2026?Precisa deCusto
Usuário + senha (padrão)Na prática, não: falha na linha de loginUma conta descartável do InstagramGratuito, mais o risco para a conta
Token HikerAPIO caminho ainda projetado para funcionarUm token; nenhuma conta do Instagram100 requisições grátis, depois pago
Imagem DockerOs mesmos dois caminhos, em containerCredenciais embutidas no momento do buildGratuito
Branch v2Não, ela não tem backend HikerAPIO mesmo login mortoGratuito
Consulta hospedadaSimUma conta logada e um nome de usuário públicoCréditos por consulta
As cinco rotas, e se o problema de login se aplica a cada uma.

Duas notas de rodapé sobre essa tabela. A rota Docker não é o ganho de isolamento que parece: o Dockerfile faz COPY config/ /home/osintgram/config, então tudo o que estiver no credentials.ini no momento do build fica embutido na imagem. É uma imagem que, por isso mesmo, você nunca deve publicar em lugar nenhum. E a branch beta v2, que alguns guias ainda recomendam, é anterior a todo o trabalho de HikerAPI; o requirements.txt dela não inclui hikerapi e fixa requests==2.24.0, ou seja, ela só tem o caminho que não funciona mais.

Mesmo em um backend que autentica, "funcionar" é comando a comando. O photodes chama o endpoint https://www.instagram.com/<target>/?__a=1, aposentado há muito tempo, no caminho legado, e não faz nada no HikerAPI. O addrs costuma responder Sorry! No results found :-( porque posts com geotag são raros hoje. Isso é uma requisição bem-sucedida que não retorna nada, não uma falha. A referência completa de comandos marca o que é o quê. E contra uma conta privada que a sua sessão logada não segue, 19 dos 21 comandos de dados se recusam a rodar; por design, só info e propic ficam liberados, o que é a questão das contas privadas em uma frase.

Se o que você precisa de fato é um relatório sobre um perfil público, e não um projeto Python para manter, uma consulta hospedada elimina o componente que falha: você nunca faz login no Instagram, então checkpoint_required não tem como acontecer com você, e não há ambiente virtual, nem credentials.ini, nem conta descartável para perder. Isso não é dizer que a CLI é ruim: são os mesmos dados públicos, alcançados sem a parte que quebrou.

O veredito de 2026

O Osintgram não está morto, e também não está bem. A instalação padrão (a que todo tutorial de 2020 a 2025 descreve) está morta na prática: a biblioteca por baixo dela parou de ser atualizada em maio de 2024, o endpoint do qual ela depende sumiu, e o Instagram agora responde ao handshake de login com checkpoint_required e uma URL unsupported_version. Nenhuma mudança de configuração na sua máquina conserta isso.

O backend HikerAPI é um caminho real, atual e documentado, que elimina o problema de login eliminando o login. Ele custa dinheiro depois de 100 requisições, roteia seus alvos por um terceiro e tem um bug aberto próprio sobre formatos de resposta. Se você quer a CLI especificamente (para scripts, para reprodutibilidade, para uma pasta de saída offline), é essa a versão a instalar, e o guia de instalação cobre isso. Se você só queria os dados, a CLI nunca foi o ponto.

Perguntas frequentes

  • Como instalar o Osintgram em 2026

    Clone, venv, pip, credenciais: os seis comandos que instalam o Osintgram, além de cada erro real que trava a instalação e o que cada um significa de verdade.

  • Osintgram no Kali Linux: instale, corrija e use

    Não existe apt install osintgram (verificado de quatro maneiras), e a PEP 668 quebrou a linha do pip em todo tutorial antigo de Kali. A instalação que funciona.

O Osintgram é uma ferramenta OSINT independente e não tem qualquer vínculo com o Instagram ou a Meta. Estes guias descrevem apenas software de código aberto publicamente documentado e pesquisa em fontes abertas. Use essas técnicas de forma legal, sobre alvos que você esteja autorizado a investigar, e nunca para assediar ou vigiar pessoas.