A resposta do endpoint de perfil sempre inclui o campo booleano is_private. Quando true, a maioria dos outros endpoints (posts, seguidores, stories) não vai retornar dados detalhados — exatamente como aconteceria ao visitar o perfil sem seguir a conta.

{
  "username": "conta_privada",
  "is_private": true,
  "followers": 842
}

Tratando isso no seu código

Uma integração bem feita verifica is_private antes de tentar consultar posts ou seguidores de um perfil, evitando chamadas desnecessárias que retornariam vazias.

if perfil["is_private"]:
    pular_coleta_detalhada()
else:
    coletar_posts(perfil["username"])

Isso também é importante do ponto de vista de conformidade — veja o artigo sobre LGPD e scraping de redes sociais para entender por que respeitar essa barreira é o primeiro filtro de uso responsável.