Let’s dive into each of these 3 methods in more detail.
Let’s see how we can use each of these Google Sheets functions to import external data automatically.
You can use the =IMPORTDATA function to pull data from a given URL in CSV or TSV format. Just use the function =IMPORTDATA(“X”) and replace X with an a URL.
The URL must be enclosed in quotation marks or it can be a reference to a cell that contains the appropriate text. You can only use a max of 50 ImportData functions per Google Sheet.
Use =ImportFeed to pull an RSS or ATOM feed.
- IMPORTFEED(url, [query], [headers], [num_items])
url: URL of the RSS or ATOM feed, including the protocol (e.g. http:// or https://). The url has to be in quotes or it can reference a cell that contains the appropriate text.
query: This specifies what data to fetch from url. This is optional, as the default is “items”. query options:
- “feed” pulls a single row that contains feed information including the title, description, and the URL.
- “feed <type>” pulls a specific attribute of the feed, where <type> can be the title, description, author, or the URL.
- “items” pulls a full table of information that contains items from the feed. If num_items is not specified, then all the items that are currently published on the feed will be pulled.
- “items <type>” pulls an attribute of the requested item. <type> is the title, summary of the content, url, or created (the post date of the item).
headers: Whether to include column headers as an extra row on top of the returned value. The default is false.
num_items: For queries of certain items, the number of items to return, starting with the most recent. Specifying this is optional, if num_items is not specified, then all the items that are currently published on the feed will be pulled.
Use the =ImportHTML function to pull table or list data from a HTML page. Just use the function =ImportHTML(X) and replace “X” with a URL, query, or index.
- IMPORTHTML(url, query, index)
url: URL of the page you want to pull information from, including the protocol (e.g. http:// or https://). The url must be enclosed in quotation marks or it can be a reference to a cell that contains the appropriate text.
query: You can use either “list” or “table” depending on the type of structure that contains the data you want to pull.
index: This is the index, starting with 1, that identifies the table or list as defined in the HTML source that you want to pull.
Use the =ImportRange function to pull a range of cells from a specific spreadsheet. This function requires that the sheet must have permission to import data from another spreadsheet. When you use this function for the first time, you will be prompted to enable permission. Once you give access, then any user on the destination sheet can use the IMPORTRANGE function to import data the source spreadsheet. You can revoke permission at any time. Also, if the data set you’re trying to import is too big, then you’ll get an error message.
spreadsheet_url: This is the URL of the spreadsheet that you want to import data from. The value for spreadsheet_url must be in quotation marks or it can be a reference to a cell containing the URL of a spreadsheet.
range_string: This is a string, formatted as “[sheet_name!]range”, which specifies the range to pull. The sheet_name of range_string is optional. The default IMPORTRANGE will pull from the given range on the first sheet. The value of range_string must either be in quotation marks or it can be a reference to a cell that contains the appropriate text.
Use =ImportXML to pull data from structured data types like XML, HTML, CSV, TSV, RSS, or ATOM.
- IMPORTXML(url, xpath_query)
url: This is the URL of the webpage, which must include the protocol (e.g. http:// or https://). The value of the url must either be in quotation marks or it can be a reference to the cell that contains the appropriate text.
- IMPORTXML(“https://en.wikipedia.org/wiki/Apollo_11″, “//a/@href”)
2. Google Sheets Add-ons
It’s a simple no-code tool for connecting an API to Google Sheets. You can pull in API data from any JSON or CSV API data source and you can save your API request or schedule it to run on a recurring basis.
It works with GET and POST requests and it also includes advanced features like the ability to save your API requests for easy access and the ability to schedule your API request to refresh the data in your spreadsheet on a recurring basis.
There’s also a custom =APIPHENY() function you can use to call an API request in your spreadsheet or you can reference the value of a cell in your API query.
Disclosure: The author is a co-founder of Apipheny.
Supermetrics vs Apipheny
There’s two key differences between Apipheny and Supermetrics:
- Features: Supermetrics is an all-in-one data integration and reporting solution that helps you do everything from connecting your data source to providing you with reporting templates so you can visualize your data, plus many other features. Apipheny is a DIY API data connector, you have to set up and connect your own API data sources and you have to create your own reports with the data.
- Price: Supermetrics starts at $99/month while Apipheny starts at $19/month.
3. Google Apps Script
For example, here’s how you can use Google Apps Script to import JSON data into Google Sheets:
Each method has it’s own pros and cons. The Google Sheets functions and Google Apps Script methods are limited in functionality but they are free to use. The Google Sheets Add-ons are more feature-rich but they cost money. Depending on how simple or complex your query is will determine the right tool for your needs.