Web Scrape Instagram to Get User Profiles with Google Apps Script

This example shows how to screen scrape the Instagram website to extract the profile information and statistics of any user on Instagram. You can get the user’s name, profile photos, follower count, friends count, website URL and other details with the script.

Instagram provides a secret URL that returns the profile of any user in JSON format (see Instagram JSON file). Web apps can connect to this URL to fetch profile details without requiring OAuth tokens or any other authorization. The URLs work for both public and private user profiles on Instagram.

function getInstagramStatistics(user) {
  
  user = user || "labnol";
  
  var url = "https://www.instagram.com/u/?__a=1";
  
  var result = UrlFetchApp.fetch(url.replace("u", user), {
    muteHttpExceptions: true
  });
  
  if (result.getResponseCode() === 200) {
    var json = JSON.parse(result.getContentText()).user;
    var data = {
      screen_name: json.username,
      full_name: json.full_name,
      is_private: json.is_private,
      is_verified: json.is_verified,
      profile_image: json.profile_pic_url,
      website_url: json.external_url,
      follower_count: json.followed_by.count,
      friend_count: json.follows.count      
    }
    return data;
  } else {
    Logger.log("User not found");
    return null;
  }
  
}