{"id":1994502,"date":"2023-06-23T21:40:55","date_gmt":"2023-06-24T04:40:55","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1994502"},"modified":"2023-06-23T21:55:22","modified_gmt":"2023-06-24T04:55:22","slug":"use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","title":{"rendered":"Use the Insights scripting environment to access API data and visualize results"},"author":304922,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23341,738191,22941],"tags":[24311,287022,24341,24351,31771],"industry":[],"product":[36801],"class_list":["post-1994502","blog","type-blog","status-publish","format-standard","hentry","category-analytics","category-developers","category-mapping","tag-analysis","tag-api","tag-python","tag-scripting","tag-twitter","product-insights"],"acf":{"authors":[{"ID":304922,"user_firstname":"Mariam","user_lastname":"Moeen","nickname":"mmoeen","user_nicename":"mmoeen","display_name":"Mariam Moeen","user_email":"mmoeen@esri.com","user_url":"","user_registered":"2022-03-23 15:44:24","user_description":"Hey there! I'm a Product Engineer II on the ArcGIS Insights team at Esri. With a diverse background in GIS, Geography, and Remote Sensing, I'm passionate about creating powerful software that helps users extract accurate and valuable insights from their data. When I'm not immersed in my work, you can find me exploring the breathtaking trails of California or unwinding in picturesque beach cities. I also have a knack for cooking, indulging in creative arts, and cherishing quality time with loved ones at home.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Mariam_Moeen_Profile-213x200.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights","flexible_content":[{"acf_fc_layout":"content","content":"<p>A unique way we can maximize the capability of Insights is by using the Insights scripting environment. After setting up a <a href=\"https:\/\/doc.arcgis.com\/en\/insights\/latest\/analyze\/connect-kernel-gateway.htm\">kernel gateway connection<\/a>, the console will allow you to access Python and R, pull in data from external sources, such as APIs, and use that data for further analysis within Insights.<\/p>\n<p>To demonstrate some capabilities of the scripting environment, we are going to use a Twitter API called <a href=\"https:\/\/docs.tweepy.org\/en\/stable\/api.html\">Tweepy<\/a> to pull some tweets from a specific Twitter handle and then visualize that data in the Insights workbook.<\/p>\n<p><strong>Let\u2019s dive into the scripting environment<\/strong><\/p>\n<p>To access the API, you must <a href=\"https:\/\/developer.twitter.com\/en\/support\/twitter-api\/developer-account\">set up a developer account with Twitter<\/a> which will give you some keys and tokens to access the API.<\/p>\n<p>I\u2019ve added comments throughout each of the code snippets to help you understand what each part of the code is doing.<\/p>\n<p>You\u2019ll need to first import any necessary packages into your environment. In this case we need to use: <em>tweepy<\/em>, <em>pandas<\/em>, and <em>regex<\/em>.<\/p>\n<pre><code># Import any necessary packages\r\nimport tweepy\r\nimport pandas as pd\r\nimport re<\/code><\/pre>\n<p>Next, you will create an API object.<\/p>\n<pre><code># Enter required access keys and tokens to pull from Tweepy\r\napi_key = 'Enter API key'\r\napi_key_secret = 'Enter API key secret'\r\naccess_token = 'Enter access token'\r\naccess_token_secret = 'Enter access token secret'\r\nbearer_token = 'Enter bearer token'<\/code><\/pre>\n<pre><code># Twitter authentication\r\nauth = tweepy.OAuthHandler(api_key, api_key_secret)\r\nauth.set_access_token(access_token, access_token_secret)<\/code><\/pre>\n<pre><code># Creating an API object\r\napi = tweepy.API(auth)<\/code><\/pre>\n<p>Next, we are going to access Tweepy and pull some tweets from a fictional food truck business called @SoCaliBBQ!<\/p>\n<pre><code># Specify which twitter user handle you would like to pull tweets from\r\nnew_tweets = tweepy.Cursor(api.user_timeline, screen_name=\"socalibbq\", tweet_mode='extended').items(1000)\r\n\r\nlist = []\r\nfor tweet in new_tweets:\r\ntext = tweet._json[\"full_text\"]\r\n\r\nrefined_tweet = {'text' : text,\r\n'favorite_count' : tweet.favorite_count,\r\n'retweet_count' : tweet.retweet_count,\r\n'created_at' : tweet.created_at,\r\n'coordinates' : tweet.coordinates,\r\n'geo' : tweet.geo}\r\n\r\nlist.append(refined_tweet)\r\n\r\ndf = pd.DataFrame(list)<\/code><\/pre>\n<p>Remember that <a href=\"https:\/\/www.w3schools.com\/python\/python_regex.asp\">Regex (re)<\/a> package you imported earlier? We\u2019ll need that now to properly extract specific parts of each Tweet.<\/p>\n<pre><code># Extract date from when tweet was posted\r\ndf['createdat_str'] = df['created_at'].astype(str)\r\ndf['Date'] = df['createdat_str'].str.extract(r'(\\d{4}-\\d{2}-\\d{2})')\r\ndf = df.drop(columns=['coordinates', 'geo', 'createdat_str'])\r\n\r\n# Rename fields\r\ndf = df.rename(columns={'favorite_count': \"Likes\", 'retweet_count': 'Retweets', 'created_at': 'Tweet_Date'})\r\ndf.head()<\/code><\/pre>\n<pre><code># Extract address\r\ndf_address = df['text'].str.extract(r'(\\d+)(.*)(Ave|Blvd|St|Dr|Pl|Way|Rd|Lane)')\r\n\r\n# Create separate columns for address elements\r\ndf_address['Street_Num'] = df_address[0]\r\ndf_address['Street'] = df_address[1] + \" \" + df_address[2]\r\ndf_address = df_address.drop(columns=[0,1,2])  # Drop source columns\r\n\r\n# Join back to original table\r\ndf = pd.concat([df, df_address], axis=1, join=\"inner\")\r\ndf.head()<\/code><\/pre>\n<pre><code># Extract zipcode and put those values in a new column\r\ndf['ZIP'] = df['text'].str.extract(r'(, \\d{5})')\r\ndf['ZIP'] = df['ZIP'].str.replace(', ','')  # cleanup ',' and ' ' characters\r\ndf.head()<\/code><\/pre>\n<pre><code># Regex extract the name of the truck\r\ndf_trucks = df['text'].str.extract(r'(socali|#)(.*)( Truck|Truck)', expand=True)\r\n\r\n# Join regex extracted table to original df and clean up columns\r\ndf = pd.concat([df, df_trucks], axis=1, join=\"inner\")\r\ndf = df.drop(columns= [0,2])\r\ndf = df.rename(columns={1: \"Truck\"})\r\n\r\n# use df.head() to see first 5 lines of output<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<pre><code># Regex extract meal type\r\ndf['Meal'] = df['text'].str.extract(r'(nites|lunch|nite|nights|night)')\r\n# Create some consistency by replacing various spellings of 'night' and chage to 'dinner'\r\ndf = df.replace({'Meal': r'(nites|nite|nights|night)'}, {'Meal':'dinner'}, regex=True)\r\n\r\ndf.head()<\/code><\/pre>\n<pre><code># Extract serving time range from tweet contents\r\ndf_Time = df['text'].str.extract(r'(\\d+.M)-(\\d+.M)')\r\n# Concatenate the two extracted times into a range\r\ndf_Time['time_range'] = df_Time[0] + '-' + df_Time[1]\r\n# Create a column to hold the first hour of the serving range\r\ndf_Time['start_hour'] = df_Time[0].str.extract(r'(\\d+)')\r\n# Create a column to hold half hour measures where present in start time\r\ndf_Time['start_min'] = df_Time[0].str.extract(r'\\d+(30)')\r\n# Extract the AM\/PM indicator of the start time\r\ndf_Time['start'] = df_Time[0].str.extract(r'(.M)')\r\n# Create a column to hold the second hour of the serving range\r\ndf_Time['end_hour'] = df_Time[1].str.extract(r'(\\d+)')\r\n# Create a column to hold half hour measures where present in end time\r\ndf_Time['end_min'] = df_Time[1].str.extract(r'\\d+(30)')\r\n# Extract the AM\/PM indicator of the end time\r\ndf_Time['end'] = df_Time[1].str.extract(r'(.M)')\r\n# Replace\/remove the half hour measures from the start\/end hours so only whole measures remain\r\ndf_Time['start_hour'] = df_Time['start_hour'].str.replace('30','')\r\ndf_Time['end_hour'] = df_Time['end_hour'].str.replace('30','')\r\n\r\n# Fill null half hours with '00'\r\nfills = {'start_min': '00', 'end_min': '00'}\r\ndf_Time = df_Time.fillna(value=fills)\r\n\r\n# Cleanup columns\r\ndf_Time = df_Time.drop(columns=[0,1])\r\ndf = pd.concat([df, df_Time], axis=1, join=\"inner\")\r\ndf.head()<\/code><\/pre>\n<pre><code># Cleanup the rest of the code and output final data to a named .csv file\r\ndf = df.rename(columns={'text': 'Tweet', 'time_range': 'Serving_Time'})\r\ndf['Start_Time'] = (df['Date'] + \" \" + df['start_hour'] + \":\" + df['start_min'] + ' ' + df['start']).where(cond= df['start_hour']!='')\r\ndf['End_Time'] = (df['Date'] + \" \" + df['end_hour'] + \":\" + df['end_min'] + df['end']).where(cond= df['end_hour']!='')\r\ndf = df.drop(columns=['start_hour', 'start', 'start_min', 'end', 'end_hour', 'end_min'])\r\ndf.to_csv(\"socalibbq_tweets.csv\")<\/code><\/pre>\n<p>You can either upload the newly generated &#8220;socalibbq_tweets.csv&#8221; to your Insights workbook, or you can directly add the new df as a layer in your workbook\u2019s data pane by using the following command:<\/p>\n<pre><code>%insights_return(df)<\/code><\/pre>\n<p>Congratulations! You\u2019ve not only pulled data from a Twitter API but also added that as a new dataset directly into Insights. You should see your new layer in the data pane. Rename it from <strong>layer<\/strong> to <strong>SoCaliBBQ Tweets<\/strong>.<\/p>\n<p><strong>Data exploration<\/strong><\/p>\n<p>Now that we\u2019ve compiled some data, let\u2019s explore it in the Insights workbook. Since these Tweets have a spatial component, it\u2019ll be useful to see what the data distribution looks like on a map.<\/p>\n<p>Step 1. Enable location on SoCaliBBQ by coordinates using <strong>4326 \u2013 GCS WGS 1984<\/strong> for the coordinate system. Keep <strong>Repeat identical features<\/strong> unchecked, click run, and drag the location field to a map.<\/p>\n<p>Initially, you\u2019ll see the data styled by <strong>Counts and amounts (Size)<\/strong>. Change the <strong>Style by<\/strong> field to <strong>Truck.<\/strong> The map automatically changes to unique symbols. Expand the legend to see which food truck has the highest occurrence. Looks like it\u2019s the blue truck!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1995752,"id":1995752,"title":"G1_MB","filename":"G1_MB.gif","filesize":3773359,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/g1_mb","alt":"","author":"304922","description":"","caption":"Step 1","name":"g1_mb","status":"inherit","uploaded_to":1994502,"date":"2023-06-23 23:14:07","modified":"2023-06-23 23:14:46","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1400,"height":936,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","medium-width":390,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","large-width":1400,"large-height":936,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","1536x1536-width":1400,"1536x1536-height":936,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","2048x2048-width":1400,"2048x2048-height":936,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB-696x465.gif","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G1_MB.gif","wide_image-width":1400,"wide_image-height":936}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 2. After playing around with the different basemaps and map aesthetics, let\u2019s go ahead and select the fields <strong>Likes<\/strong> and <strong>Truck<\/strong>, and drag them to the chart drop zone. Drop the fields when you\u2019re hovering over the bar chart option.<\/p>\n<p>With just a couple actions, you now have a neat bar chart clearly showing that Tweets about the blue food truck have the most likes. This likely means that the blue truck is selling more food to customers in comparison to other trucks.<\/p>\n<p>You can also create a heat chart by dragging over the selected <strong>Serving_Time<\/strong> and <strong>Truck<\/strong> fields, which will show you popular serving times for each truck.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1995772,"id":1995772,"title":"G2_MB","filename":"G2_MB.gif","filesize":5549542,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/g2_mb","alt":"","author":"304922","description":"","caption":"Step 2","name":"g2_mb","status":"inherit","uploaded_to":1994502,"date":"2023-06-23 23:15:44","modified":"2023-06-23 23:16:31","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1400,"height":936,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","medium-width":390,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","large-width":1400,"large-height":936,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","1536x1536-width":1400,"1536x1536-height":936,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","2048x2048-width":1400,"2048x2048-height":936,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB-696x465.gif","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G2_MB.gif","wide_image-width":1400,"wide_image-height":936}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 3. Following similar steps, you can identify which streets likely get the most food truck visits by selecting the <strong>Likes<\/strong> and <strong>Streets<\/strong> fields and dragging them to a bar chart.<\/p>\n<p>Go ahead and sort the chart in descending order. Then for ease of analysis, filter to show the top 5 addresses. If you enable cross filters on your map card, you can filter the map to show only the data you select on your bar chart.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1996132,"id":1996132,"title":"G5_MB","filename":"G5_MB-3.gif","filesize":6654243,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/g5_mb-4","alt":"","author":"304922","description":"","caption":"Step 3","name":"g5_mb-4","status":"inherit","uploaded_to":1994502,"date":"2023-06-24 00:33:04","modified":"2023-06-24 00:38:23","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1400,"height":936,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","medium-width":390,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","large-width":1400,"large-height":936,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","1536x1536-width":1400,"1536x1536-height":936,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","2048x2048-width":1400,"2048x2048-height":936,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3-696x465.gif","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G5_MB-3.gif","wide_image-width":1400,"wide_image-height":936}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 4. To get an idea of the average age of residents in each food truck Census tract, we are first going to use a boundaries layer <strong>USA_Tract<\/strong> and spatially filter it by the food truck locations.<\/p>\n<p>We then enrich the Filtered USA Tract layer with census data showing median age from 2022 by tract.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1995852,"id":1995852,"title":"G3_MB","filename":"G3_MB.gif","filesize":7701598,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/g3_mb","alt":"","author":"304922","description":"","caption":"Step 4","name":"g3_mb","status":"inherit","uploaded_to":1994502,"date":"2023-06-23 23:37:38","modified":"2023-06-24 00:40:23","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1400,"height":936,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","medium-width":390,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","large-width":1400,"large-height":936,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","1536x1536-width":1400,"1536x1536-height":936,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","2048x2048-width":1400,"2048x2048-height":936,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB-696x465.gif","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G3_MB.gif","wide_image-width":1400,"wide_image-height":936}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 5. After enriching the filtered tract with data showing median age, drag that layer onto your original map and perform a spatial aggregation to summarize the Tweets by your new Spatial Filter 1 layer. Through additional options you can also add various statistics such as the sum of <strong>Likes<\/strong> to summarize the data by.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1996162,"id":1996162,"title":"G4_MB","filename":"G4_MB.gif","filesize":8306369,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/g4_mb","alt":"","author":"304922","description":"","caption":"Step 5","name":"g4_mb","status":"inherit","uploaded_to":1994502,"date":"2023-06-24 00:42:32","modified":"2023-06-24 01:53:12","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1400,"height":936,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","medium-width":390,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","large-width":1400,"large-height":936,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","1536x1536-width":1400,"1536x1536-height":936,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","2048x2048-width":1400,"2048x2048-height":936,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB-696x465.gif","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/G4_MB.gif","wide_image-width":1400,"wide_image-height":936}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 6. You can visualize different components of the data using the fields from the new Spatial Aggregation 1 layer. In addition to a map showing the count of Tweets, you can create a box plot showing the median age, a KPI card showing the sum of likes, and a bubble chart showing the mode of truck.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1996242,"id":1996242,"title":"S61","filename":"S61.gif","filesize":8918235,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/s61","alt":"","author":"304922","description":"","caption":"Step 6","name":"s61","status":"inherit","uploaded_to":1994502,"date":"2023-06-24 01:43:30","modified":"2023-06-24 04:09:45","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1372,"height":987,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","medium-width":363,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","medium_large-width":768,"medium_large-height":552,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","large-width":1372,"large-height":987,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","1536x1536-width":1372,"1536x1536-height":987,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","2048x2048-width":1372,"2048x2048-height":987,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61-646x465.gif","card_image-width":646,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S61.gif","wide_image-width":1372,"wide_image-height":987}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Step 7. After putting the final touches on your page, you can publish your report and share it publicly or with your organization!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1996272,"id":1996272,"title":"S62","filename":"S62.gif","filesize":7563156,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\/s62","alt":"","author":"304922","description":"","caption":"Step 7","name":"s62","status":"inherit","uploaded_to":1994502,"date":"2023-06-24 02:04:07","modified":"2023-06-24 04:11:55","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1372,"height":987,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","medium-width":363,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","medium_large-width":768,"medium_large-height":552,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","large-width":1372,"large-height":987,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","1536x1536-width":1372,"1536x1536-height":987,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","2048x2048-width":1372,"2048x2048-height":987,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62-646x465.gif","card_image-width":646,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/S62.gif","wide_image-width":1372,"wide_image-height":987}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>You could either stop at this point or continue to answer more questions. Some possible avenues for exploration:<\/p>\n<ul>\n<li>Where would introducing a new food truck make the business more profitable?<\/li>\n<li>Which streets would be more lucrative for food trucks based on demographics from areas where the food trucks are likely more visited?<\/li>\n<\/ul>\n<p><strong>Exploratory spatial analysis made simple<\/strong><\/p>\n<p>As you\u2019ve seen, the scripting console has made it very easy to pull in data from external sources and then visualize it within Insights! We\u2019ve walked through several different data exploration methods, but there are many more ways to conduct advanced analysis.<\/p>\n<p>Download our <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-insights\/trial\">free trial<\/a> of ArcGIS Insights, pull in your desired data, and explore for yourself!<\/p>\n"}],"related_articles":[{"ID":1163122,"post_author":"203542","post_date":"2021-03-23 08:32:27","post_date_gmt":"2021-03-23 15:32:27","post_content":"","post_title":"A Primer for Python Scripting in ArcGIS Insights","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"a-primer-for-python-scripting-in-insights","to_ping":"","pinged":"","post_modified":"2021-03-24 14:07:19","post_modified_gmt":"2021-03-24 21:07:19","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1163122","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/MicrosoftTeams-image-33-1.jpg","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/MicrosoftTeams-image-32-1.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Use the Insights scripting environment to access API data and visualize results<\/title>\n<meta name=\"description\" content=\"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use the Insights scripting environment to access API data and visualize results\" \/>\n<meta property=\"og:description\" content=\"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-24T04:55:22+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\"},\"author\":{\"name\":\"Mariam Moeen\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/70220e1e136a28b6f9ae3f20fab3689e\"},\"headline\":\"Use the Insights scripting environment to access API data and visualize results\",\"datePublished\":\"2023-06-24T04:40:55+00:00\",\"dateModified\":\"2023-06-24T04:55:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\"},\"wordCount\":12,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Analysis\",\"api\",\"python\",\"scripting\",\"Twitter\"],\"articleSection\":[\"Analytics\",\"Developers\",\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\",\"name\":\"Use the Insights scripting environment to access API data and visualize results\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2023-06-24T04:40:55+00:00\",\"dateModified\":\"2023-06-24T04:55:22+00:00\",\"description\":\"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Use the Insights scripting environment to access API data and visualize results\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/70220e1e136a28b6f9ae3f20fab3689e\",\"name\":\"Mariam Moeen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Mariam_Moeen_Profile-213x200.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Mariam_Moeen_Profile-213x200.jpeg\",\"caption\":\"Mariam Moeen\"},\"description\":\"Hey there! I'm a Product Engineer II on the ArcGIS Insights team at Esri. With a diverse background in GIS, Geography, and Remote Sensing, I'm passionate about creating powerful software that helps users extract accurate and valuable insights from their data. When I'm not immersed in my work, you can find me exploring the breathtaking trails of California or unwinding in picturesque beach cities. I also have a knack for cooking, indulging in creative arts, and cherishing quality time with loved ones at home.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/mariam-moeen\"],\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Use the Insights scripting environment to access API data and visualize results","description":"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","og_locale":"en_US","og_type":"article","og_title":"Use the Insights scripting environment to access API data and visualize results","og_description":"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2023-06-24T04:55:22+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results"},"author":{"name":"Mariam Moeen","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/70220e1e136a28b6f9ae3f20fab3689e"},"headline":"Use the Insights scripting environment to access API data and visualize results","datePublished":"2023-06-24T04:40:55+00:00","dateModified":"2023-06-24T04:55:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results"},"wordCount":12,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Analysis","api","python","scripting","Twitter"],"articleSection":["Analytics","Developers","Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results","name":"Use the Insights scripting environment to access API data and visualize results","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2023-06-24T04:40:55+00:00","dateModified":"2023-06-24T04:55:22+00:00","description":"Use the ArcGIS Insights scripting environment to maximize data exploration capabilities within Insights","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/insights\/analytics\/use-the-insights-scripting-environment-to-access-api-data-and-visualize-results#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Use the Insights scripting environment to access API data and visualize results"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/70220e1e136a28b6f9ae3f20fab3689e","name":"Mariam Moeen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Mariam_Moeen_Profile-213x200.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Mariam_Moeen_Profile-213x200.jpeg","caption":"Mariam Moeen"},"description":"Hey there! I'm a Product Engineer II on the ArcGIS Insights team at Esri. With a diverse background in GIS, Geography, and Remote Sensing, I'm passionate about creating powerful software that helps users extract accurate and valuable insights from their data. When I'm not immersed in my work, you can find me exploring the breathtaking trails of California or unwinding in picturesque beach cities. I also have a knack for cooking, indulging in creative arts, and cherishing quality time with loved ones at home.","sameAs":["https:\/\/www.linkedin.com\/in\/mariam-moeen"],"url":""}]}},"text_date":"June 23, 2023","author_name":"Mariam Moeen","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/MicrosoftTeams-image-32-1.jpg","primary_product":"ArcGIS Insights","tag_data":[{"term_id":24311,"name":"Analysis","slug":"analysis","term_group":0,"term_taxonomy_id":24311,"taxonomy":"post_tag","description":"","parent":0,"count":96,"filter":"raw"},{"term_id":287022,"name":"api","slug":"api","term_group":0,"term_taxonomy_id":287022,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":171,"filter":"raw"},{"term_id":24351,"name":"scripting","slug":"scripting","term_group":0,"term_taxonomy_id":24351,"taxonomy":"post_tag","description":"","parent":0,"count":15,"filter":"raw"},{"term_id":31771,"name":"Twitter","slug":"twitter","term_group":0,"term_taxonomy_id":31771,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"}],"category_data":[{"term_id":23341,"name":"Analytics","slug":"analytics","term_group":0,"term_taxonomy_id":23341,"taxonomy":"category","description":"","parent":0,"count":1328,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":421,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2688,"filter":"raw"}],"product_data":[{"term_id":36801,"name":"ArcGIS Insights","slug":"insights","term_group":0,"term_taxonomy_id":36801,"taxonomy":"product","description":"","parent":36591,"count":119,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=insights","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1994502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/304922"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1994502"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1994502\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1994502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1994502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1994502"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1994502"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1994502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}