Integrating Google Sheets
​Etherscan's APIs provides a convenient way to connect and import block explorer information for developers to use in your own apps and services
πŸ’»
.
Having technical knowledge is not a requirement for using APIs however, and non-developers
πŸ™Œ
can make use of the available endpoints to build your own dashboards and statistics by importing API data to Google Sheets
.
A valid Etherscan API key and a Google Account is required to follow along this tutorial.

1. Integrating Google Apps Script

In a new Google Sheets document, head over to Extensions > Apps Script.
We'll be utilizing an open source script called ImportJSON developed by @bradjasper and @tommyvernieri to help parse JSON responses returned by the API endpoints.
Paste the source code into the script editor, optionally you can rename the file to ImportJSON.gs.

2. Setting up auto refresh

Add a new Sheet from the small "+" icon at the bottom left and name it AutoRefresh.
Back to Google Apps Script, create a new file and name it AutoRefresh.gs. Paste in this following code.
1
function AutoRefresh() {
2
SpreadsheetApp.getActive().getSheetByName('AutoRefresh').getRange(1, 1).setValue(Math.random());
3
}
Copied!
The idea of this script is to generate a random number to the AutoRefresh sheet, which is then appended to the end of the ImportJSON request.
Google Sheets only performs a new request if it detects that a formula has changed.
With the script in place, we can run this function every minute by going to
⏰
Triggers > Add Trigger at the left panel.
Select the function as AutoRefresh, event source as Time Driven, time based trigger to Minutes Timer and minute interval to Every Minute.

3. Making an API request

Once you have added both scripts, go back to Sheet1 and start making API endpoint calls with the following syntax in cell A1.
1
=ImportJSON("https://api.etherscan.io/api?module=gastracker&action=gasoracle&apikey=YourApiKeyToken", "/result", "allHeaders", AutoRefresh!$A$1)
Copied!
Parameter
Description
url
the endpoint url to make requests from, with your API Key
query
comma separated paths to import, such as /result or /result/SafeGasPrice
parseOptions
list of options to process the returned data, either noInherit, noTruncate, rawHeaders, noHeaders or allHeaders
The query above will return the following response, and refreshes auto-magically
✨
every minute!

Extending and Building a Dashboard

While the above was a straightforward method to call an API endpoint and output the response into a Google Sheet, it could use further optimizing and data formatting.
Checkout some prepared dashboard examples we have, simply duplicate this by going to File > Make a copy
πŸ”—
and go about customizing this to your taste!
Last modified 7d ago