Integrating Google Sheets

BscScan's APIs provides a convenient way to connect and import block explorer information for developers to use in your own apps and services 💻 .

A valid BscScan 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.

function AutoRefresh() {  
    SpreadsheetApp.getActive().getSheetByName('AutoRefresh').getRange(1, 1).setValue(Math.random());
}

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.

=ImportJSON("https://api.bscscan.com/api?module=account&action=balance&address=0x70F657164e5b75689b64B7fd1fA275F334f28e18&apikey=YourApiKeyToken", "/result", "allHeaders", AutoRefresh!$A$1)

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.

Last updated