Osintgram

¿Funciona Osintgram en cuentas privadas de Instagram?

No. Frente a un perfil privado que tu cuenta conectada no sigue, Osintgram rechaza 18 de sus 21 comandos de datos antes de descargar nada. La única excepción documentada, recogida en el propio README del proyecto, es una cuenta privada a la que ya sigues.

20 min de lecturaEquipo de Osintgram

La respuesta corta

No. Apunta Osintgram a una cuenta privada de Instagram que el perfil con el que has iniciado sesión no sigue y 18 de sus 21 comandos de datos se niegan a ejecutarse antes de recuperar un solo registro. No es un problema de versión, ni un límite de peticiones, ni algo que arregle un fork. Es una comprobación deliberada que se ejecuta antes de cada uno de esos comandos.

El propio proyecto lo dice en su documentación. La pregunta 1 del FAQ del README de Osintgram dice, textualmente: "No, you cannot get information on private profiles. You can only get information from a public profile or a profile you follow. The tools that claim to be successful are scams!" (No, no puedes obtener información de perfiles privados. Solo puedes obtener información de un perfil público o de un perfil al que sigues. Las herramientas que afirman conseguirlo son estafas.)

Esa cláusula intermedia es todo el artículo. "A profile you follow", un perfil al que sigues, es una excepción real y comprobable, y no es un desbloqueo parcial. Si tu cuenta conectada ya sigue al objetivo privado, todos los comandos bloqueados se comportan exactamente igual que frente a un perfil público.

Osintgram no puede leer una cuenta privada de Instagram. La excepción es estrecha y está documentada: una cuenta privada a la que ya sigue la cuenta de Instagram con la que te has autenticado, en cuyo caso no hay nada bloqueado. Todo lo demás se detiene en una sola función, check_private_profile(), que retorna antes de tiempo siempre que el objetivo es privado y tú no eres seguidor. Ningún fork, flag, mod ni servicio de pago cambia esa condición, porque la condición es de Instagram.

La barrera, leída directamente en el código

Diecinueve métodos de src/Osintgram.py empiezan con las mismas dos líneas: llamar a check_private_profile() y, si devuelve true, retornar. Esta es esa función, sacada del cuerpo de la clase y desindentada, pero sin ningún otro cambio.

def check_private_profile(self):
    if self.is_private and not self.following:
        pc.printout("Impossible to execute command: user has private profile\n", pc.RED)
        send = input("Do you want send a follow request? [Y/N]: ")
        if send.lower() == "y":
            self.api.friendships_create(self.target_id)
            print("Sent a follow request to target. Use this command after target accepting the request.")

        return True
    return False
src/Osintgram.py, líneas 1169-1178 de la rama master.

Dos atributos lo deciden todo. self.is_private se asigna en setTarget() a partir de la consulta del objetivo, que solo devuelve el ID numérico y el flag de privacidad. self.following se asigna justo después mediante check_following(), que lee friendship_status.following de la respuesta del propio endpoint users/{user_id}/full_detail_info/ de Instagram. La herramienta no deduce tu relación con el objetivo: se la pregunta a Instagram y se cree la respuesta.

La condición es un AND. Ser privado por sí solo no bloquea. No seguir por sí solo no bloquea. Solo bloquea la pareja. Por eso la respuesta es un no condicional, y por eso la condición es inútil para quien espera un bypass: se traduce en "la cuenta ya te ha dejado entrar".

Ves el estado antes de escribir nada. El banner se imprime al abrirse la sesión, y todos los comandos bloqueados imprimen la misma línea en rojo.

Logged as <you>. Target: <target> [1234567890] [PRIVATE PROFILE] [NOT FOLLOWING]

Run a command: followers
Impossible to execute command: user has private profile
Do you want send a follow request? [Y/N]:
Todas las líneas de aquí son cadenas literales de main.py o de src/Osintgram.py, reconstruidas a partir del código. No es una sesión capturada.

Ese aviso de solicitud de seguimiento es una acción real

Responder Y llama a friendships_create(self.target_id). Envía una solicitud de seguimiento real, desde la cuenta que haya en config/credentials.ini, a la persona que estás investigando, y esa persona la ve. En un encargo real, eso es una revelación. Si el plan es que la acepte con un perfil que no es el tuyo, has abandonado por completo la investigación de fuentes abiertas.

La detección de seguimiento es el fallo más reportado de la herramienta

A quienes sí siguen al objetivo privado les sigue apareciendo [NOT FOLLOWING] y siguen quedando bloqueados. Consulta la issue #174, "Can't check private account even if followed", y la issue #1031. Ninguna tiene una resolución documentada. Si estás dentro de la excepción documentada y la herramienta te lleva la contraria, es un defecto conocido, no un bloqueo oculto.

Qué comandos siguen funcionando contra un objetivo privado

De los 21 comandos de datos que despacha main.py, 18 están detrás de la barrera: addrs, captions, comments, commentdata, followers, followings, fwersemail, fwingsemail, fwersnumber, fwingsnumber, hashtags, likes, mediatype, photodes, photos, stories, wcommented y wtagged. Contra un objetivo privado al que no sigues, todos ellos imprimen el mensaje de bloqueo y retornan. (La decimonovena llamada corresponde a un método interno al que la tabla de comandos nunca llega.)

Tres comandos no tienen protección: info, propic y tagged. Los dos primeros leen directamente users/{user_id}/full_detail_info/, que es el mismo endpoint que usa la comprobación de seguimiento. Ese endpoint responde para objetivos privados, que es justo por lo que check_following() funciona. El documento del perfil se sirve; el contenido que hay detrás, no.

tagged es una rareza más que un agujero. get_people_tagged_by_user() se salta la comprobación y luego llama a __get_feed__(), que pagina el propio feed de publicaciones del objetivo, exactamente los datos que cubre el muro de seguimiento. Falta la protección; lo que habría protegido sigue detrás del muro. Que falte una protección no es acceso.

Hay un segundo backend, y es más estricto. Si config/credentials.ini lleva un hikerapi_token, o si HIKERAPI_TOKEN está definida en el entorno, main.py construye HikerCLI a partir de src/hikercli.py en su lugar. Esa clase trae su propia copia de la barrera, sin la cláusula de seguimiento.

def check_private_profile(self):
    if self.is_private:
        pc.printout(
            "Impossible to execute command: user has private profile\n", pc.RED
        )
        return True
    return False
src/hikercli.py: el backend de HikerAPI bloquea solo por is_private.

Por esa vía se rechaza un perfil privado tanto si lo sigues como si no, porque no eres tú quien hace la petición. La hace una API de terceros, que no tiene ninguna relación con el objetivo. Por el mismo motivo, su banner elimina por completo la etiqueta [FOLLOWING]. Y como ese backend es la vía que todavía está pensada para funcionar, la excepción documentada se está estrechando: ¿sigue funcionando Osintgram? explica por qué se rompió el inicio de sesión con contraseña.

La matriz de capacidades

Esto es lo que da cada una de las tres situaciones. La columna del medio es la que la gente pregunta en realidad.

DatoPúblicaPrivada, sin seguirPrivada, la sigues
Usuario, ID, nombre completo, biografía (info)
Número de seguidores y de seguidos (info)
Correo y teléfono públicos de empresa (info)
Foto de perfil (propic)Sin barrera, por diseño
Publicaciones y descripciones (photos, captions)No
Historias (stories)No
Listas de seguidores y de seguidosNo
Totales de me gusta y comentariosNo
Correos y teléfonos de los seguidoresNo
Geoetiquetas (addrs) y hashtagsNo
Usuarios etiquetados por el objetivo (tagged)Sin barrera, lee el feed de publicaciones
Usuarios que etiquetaron al objetivo (wtagged)No
Cobertura de comandos por tipo de objetivo, derivada de la barrera de privacidad de src/Osintgram.py. Cada "Sí" da por hecho que el backend consigue autenticarse.

Dos matices. propic no está bloqueado en el código, pero aquí no se ha comprobado si en 2026 Instagram sigue devolviendo el hd_profile_pic_url_info a máxima resolución para un objetivo privado al que no sigues: Osintgram programa un plan B para cuando esa clave falta, y los usuarios de instaloader informan de que desaparece. Lee esa celda como "por diseño", no como una garantía. La tercera columna también da por hecho que puedes iniciar sesión. Lo que devuelve cada comando sobre un objetivo sin barrera está en todos los comandos de Osintgram, explicados.

Este artículo no tiene sección de bypass

Si has venido buscando un fork, un flag, una compilación parcheada o una API de pago que lea una cuadrícula privada, esta página no lo tiene. El motivo es estructural, no editorial: la barrera es una decisión del servidor de Instagram, y Osintgram se limita a comunicarla. Todo lo que afirme lo contrario está vendiendo otra cosa, que es la siguiente sección.

Lo que Instagram publica igualmente sobre una cuenta privada

"Privado" en Instagram significa contenido privado, no cuenta privada. Un perfil privado sigue sirviendo un documento de metadatos considerable a una petición sin sesión iniciada y sin cookies. Los campos siguientes proceden de una consulta sin sesión realizada el 8 de agosto de 2026 contra una cuenta privada que aquí no se nombra.

curl -s \
"https://www.instagram.com/api/v1/users/web_profile_info/?username=USERNAME" \
-H "x-ig-app-id: 936619743392459"
Consulta de perfil sin sesión iniciada. Devolvió HTTP 200 con unos 69 campos de perfil.
Campo públicoQué contienePor qué importa
username, id, full_nameIdentidad más un ID numérico estableEl ID sobrevive a los cambios de nombre de usuario
biography, bio_links, external_urlTexto libre y enlaces salientesEl campo público más rico y un pivote entre plataformas
edge_owner_to_timeline_media.countEl número real de publicaciones, sin enmascararConsúltalo a lo largo del tiempo para ver la cadencia de publicación
edge_followed_by, edge_followNúmero de seguidores y de seguidosCrecimiento, purgas y periodos de inactividad
profile_pic_url_hdImagen de 320x320, pese al nombreMaterial para búsqueda inversa de imágenes
is_private, is_verified, category_nameFlags de estado de la cuentaConfirman a qué te enfrentas
edge_mutual_followed_bySeguidores en común, según quién mireUn grafo parcial de seguidores, sin solicitud de seguimiento
edge_owner_to_timeline_media.edgesVacío en una cuenta privadaEl contenido en sí no sale
Campos de web_profile_info sin sesión iniciada para un perfil privado, probados el 8 de agosto de 2026.

Dos de ellos sorprenden. El número de publicaciones no está enmascarado: la cifra real se sirve a cualquiera que la pida. Y profile_pic_url_hd es un nombre engañoso: todas las cuentas comprobadas, públicas y privadas, se quedaban en 320 por 320 píxeles, con profile_pic_url en 150. La resolución completa de verdad vive detrás del endpoint móvil autenticado, que es el único punto en el que propic podría superar a un navegador.

Los mismos datos llegan a los rastreadores mediante HTML plano. Una petición con un user agent de Googlebot obtiene un título de página renderizado en el servidor, una descripción OpenGraph que lleva las tres cifras en una sola cadena y la biografía en la metaetiqueta description. Por eso los perfiles privados siguen apareciendo en Google, y por eso pegar uno en Slack o en Discord despliega una vista previa con el nombre y la biografía de la persona.

Nada de esto es una API en la que puedas apoyarte. Tras unas 20 consultas seguidas sin sesión iniciada, el endpoint empieza a responder con "message":"Please wait a few minutes before you try again." y "require_login":true. Ese flag es la señal: la vía anónima es una tolerancia, no una interfaz con soporte.

Por qué los sitios para "ver perfiles privados" son estafas

El README los llama estafas y la mecánica está documentada. Un análisis de MalwareTips sobre uno de esos sitios, publicado el 19 de febrero de 2026, describe el embudo habitual: introduces un nombre de usuario, ves barras de progreso falsas etiquetadas como "Fetching profile" y "Decrypting", y luego te dicen que hace falta una verificación humana. En palabras del análisis, "This isn't verification. It's monetization," (esto no es verificación, es monetización) y "Each completed offer can generate a payout." (cada oferta completada puede generar un pago).

Lo que recogen esas ofertas: direcciones de correo y números de teléfono para revenderlos, permisos de notificaciones del navegador para adware persistente, datos de tarjeta para pruebas con renovación automática y, en las variantes con instalación de app, acceso al dispositivo mediante un APK cargado de forma lateral. El bucle es deliberado: el sitio informa de que la verificación ha fallado para poder colarte otra oferta. Nunca se recupera ningún dato del perfil.

Los propios litigios de Meta son la versión documentada en los tribunales de ese mismo patrón. Al demandar a Octopus por software de scraping de alquiler en julio de 2022, Meta afirmó que "After paying for access to the scraping software, customers self-compromised their Facebook and Instagram accounts by providing their authentication information to Octopus" (tras pagar por el acceso al software de scraping, los clientes comprometieron sus propias cuentas de Facebook e Instagram al facilitar sus credenciales de autenticación a Octopus) (acciones contra el scraping de alquiler). La misma tanda cubría sitios clon que republicaban perfiles sin autorización, con más de 350.000 usuarios de Instagram afectados. En enero de 2023 Meta demandó a Voyager Labs, que había operado unas 38.000 cuentas falsas para recopilar datos visibles solo para quien tiene la sesión iniciada.

Tampoco queda ninguna API legítima que reclamar. Meta retiró la Instagram Basic Display API el 4 de diciembre de 2024, y su sustituta solo sirve a cuentas de empresa y de creador. Cualquier producto de 2026 que anuncie acceso de nivel API a una cuenta personal, privada o pública, está anunciando una API que ya no existe. Osintgram e instaloader tampoco usan una API: suplantan a los clientes móvil y web, que es justo por lo que heredan el muro de seguimiento en vez de esquivarlo.

La prueba más sólida de que esto es comportamiento de Instagram y no una limitación de Osintgram es que otro proyecto distinto codifica exactamente la misma regla. Instaloader repite una misma frase en sus métodos de publicaciones, seguidores y seguidos, "To use this, one needs to be logged in and private profiles has to be followed", incluye una excepción específica PrivateProfileNotFollowedException y afirma en su página de resolución de problemas que hay que seguir una cuenta privada para acceder a la mayor parte de su información.

La jurisprudencia estadounidense ha convergido en una metáfora que le va inusualmente bien a Instagram. En Van Buren v. United States (Tribunal Supremo, junio de 2021) el tribunal sostuvo que "exceeds authorized access" (excederse en el acceso autorizado) según la CFAA no cubre a quienes "have improper motives for obtaining information that is otherwise available to them" (tienen motivos indebidos para obtener información que, de todos modos, está a su disposición). El Noveno Circuito lo aplicó en hiQ Labs v. LinkedIn (abril de 2022): el análisis de "without authorization" "presupposes that there first be the equivalent of a gate that restricts access" (presupone que exista primero el equivalente a una puerta que restringe el acceso).

Una cuenta privada de Instagram es esa puerta. Los metadatos públicos del perfil son puerta abierta: recógelos, anota de dónde salieron y sigue adelante. Pasar al otro lado del muro de seguimiento con credenciales robadas, con una sesión ajena ya iniciada, con una solicitud de seguimiento engañosa o con una sesión de scraper comprada es puerta cerrada, y ningún fin investigador convierte lo uno en lo otro.

Hay una segunda exposición que afecta a Osintgram en concreto. En Meta Platforms v. Bright Data (N.D. Cal., enero de 2024) la reclamación por las condiciones de servicio dependía de si el scraping se había hecho con la sesión iniciada en una cuenta de Meta. El backend clásico de Osintgram se autentica con una cuenta real de Instagram, lo que lo sitúa de lleno en la categoría sujeta a esas condiciones. En la práctica, la respuesta de Instagram es a nivel de cuenta y no legal, en forma de retos de verificación y bloqueos, y por eso el README te avisa de que no uses tu cuenta principal.

Nada de eso está resuelto a escala global. Van Buren, hiQ y Bright Data son autoridad estadounidense y no deciden nada en el Reino Unido ni en la UE. En el Reino Unido, la sección 1 de la Computer Misuse Act 1990 convierte el acceso deliberado y no autorizado a material informático en un delito penado con hasta 12 meses en procedimiento sumario y dos años en procedimiento por acusación formal. En la UE, los datos personales disponibles públicamente siguen siendo datos personales: las Directrices 1/2024 del CEPD fijan un test de interés legítimo en tres partes, y la limitación de la finalidad, la minimización de datos y la transparencia siguen aplicándose a todo lo que se recoja de una página pública.

Qué hace la investigación autorizada alrededor de una cuenta privada

Renunciar al bypass no te deja sin nada. Una cuenta privada vive dentro de un grafo público, y el grafo es terreno libre.

  • Las cifras son una serie temporal. El número de publicaciones, de seguidores y de seguidos se sirve también para las cuentas privadas. Registrado cada semana, te da la cadencia de publicación, el crecimiento o las purgas de seguidores y los periodos de inactividad, sin que veas ni una sola publicación.
  • La biografía es el campo público más rico. Suele llevar una URL externa, un agregador de enlaces, un empleador, una ciudad o una dirección de correo. Es el pivote estándar entre plataformas, e Instagram no ofrece ninguna opción para ocultarla.
  • Los seguidores en común aparecen para quien tiene la sesión iniciada. Instagram muestra una línea de "Seguido por" encima de la cuadrícula bloqueada, y no hay ningún interruptor para suprimirla. Es una porción parcial del grafo de seguidores, dependiente de quién mire, obtenida sin enviar ninguna solicitud de seguimiento.
  • Las publicaciones de otras personas son de otras personas. El contenido que etiqueta a un usuario privado o lo incluye como coautor se sirve según la configuración de privacidad de la cuenta propietaria, no la del usuario privado. Esa es la base honesta de toda la categoría de técnicas de "etiquetado por terceros".
  • Haz búsqueda inversa de la foto de perfil, con cuidado. Con un techo de 320 píxeles estás en la banda degradada para el reconocimiento facial. Trátalo como "dónde más se ha publicado esta imagen exacta" y no como una identificación. Yandex es el más potente con caras y recortes; TinEye solo encuentra copias casi idénticas.

Sáltate el paso del archivo para la URL del perfil

El consejo estándar de OSINT dice que consultes Wayback Machine. Para las URL de perfil de instagram.com en concreto, casi nunca funciona: hay capturas, pero se resuelven en un armazón de JavaScript sin metaetiquetas, sin biografía y sin cifras, comprobado el 8 de agosto de 2026. Google retiró su caché pública de páginas en febrero de 2024. Los archivos siguen mereciendo la pena para republicaciones de terceros y para la cobertura periodística que incrustó el contenido.

Nada de esto te da contenido, y de eso se trata. El entregable de una investigación autorizada alrededor de una cuenta privada es una huella pública documentada más un hueco explícito y etiquetado como tal, no una reconstrucción de lo que hay detrás del muro. Si el contenido es de verdad el requisito, las vías que quedan pasan por una persona: el titular de la cuenta, una solicitud a la plataforma o un procedimiento judicial. No hay respuesta de herramienta para esa pregunta.

Si la cuenta con la que trabajas es pública, la barrera nunca aparece. Si aún no tienes Osintgram funcionando, empieza por la guía de instalación, pero lee antes ¿sigue funcionando Osintgram?: la capa de inicio de sesión falla mucho antes que la barrera de privacidad.

Preguntas frecuentes

  • ¿Osintgram sigue funcionando en 2026?

    El login con contraseña está prácticamente muerto; el backend de HikerAPI es la vía que sigue diseñada para funcionar. Último commit el 25 de agosto de 2025, 828 issues abiertas.

  • Cómo usar Osintgram: cada comando explicado

    La referencia completa de comandos de Osintgram: los 23 comandos, los tres modos de lanzamiento, dónde acaba la salida y cuáles hacen que te limiten.

Osintgram es una herramienta OSINT independiente y no está afiliada a Instagram ni a Meta. Estas guías describen únicamente software de código abierto documentado públicamente e investigación con fuentes abiertas. Usa estas técnicas de forma legal, sobre objetivos que estés autorizado a investigar, y nunca para acosar o vigilar a particulares.