A lightweight Google Spreadsheets Add-On to GET data directly from Binance API without any intermediaries!
This add-on
is basically an API client specially hand-crafted to work between Google Spreadsheets and Binance.
By using the BINANCE()
formula in your spreadsheet, you can get data fetched from Binance API like:
- Current crypto prices
- 24h stats
- Total account assets from Binance wallets (SPOT + CROSS + ISOLATED for now)
- All current open orders (SPOT + CROSS + ISOLATED for now)
- Latest done/finished orders (SPOT for now)
- Historical orders table + stats table (SPOT for now)
- Last update time
- ..and many more to come!
At first glance, NO Binance API key is needed to call public endpoints like current crypto prices and 24h stats.
It only requires a Binance API key for account info and open/done/table orders lists, but a READ-ONLY API key is enough for everything to work.
In deed, I personally recommend to generate a READ-ONLY API key at Binance site here.
It does NOT need write/trade access in ANY way to properly work with all its features, so don't give extra permissions if they aren't needed!
I think and hope that many of you will find it as useful as it is for myself.
Enjoy, cheers! 🍻
First of all, open your desired Google Spreadsheet and configure it properly:
- Go to
File -> Spreadsheet settings
. - Under the
Calculation
tab set theRecalculation
combobox toOn change and every minute
. - Hit
Save settings
button and that's it!
Just download the latest BINANCE.gs all-in-one file and copy & paste its contents following these steps:
- With your desired
Google Spreadsheet
opened, go toTools -> Script editor
.- It should open a new page with a
Code.gs
file containing an empty function.
- It should open a new page with a
- Remove any contents from
Code.gs
and paste the contents from the downloadedBINANCE.gs
file. - Save the project at
File -> Save
. Give any name you want. - Refresh/reload your Google Spreadsheet (hit
F5
on the browser).- Once reloaded, you should see a little message box (toast) at the bottom-right corner.
- Go to
Binance
item at your spreadsheet's main menu and click on theAuthorize add-on!
item. - A Google's dialog should appear asking for permissions, proceed with all the steps and click
Allow
.- The popup will close and nothing will change on your spreadsheet yet!
- Once the add-on is authorized, repeat step
5
(clickAuthorize add-on!
again) and voila!
You will need node and clasp in order to apply the add-on
to your Google Spreadsheets.
- Install
node
andclasp
following their simple setup guides. - Clone the
repo
and login to your Google account withclasp
by running:clasp login
. - Get the
Script ID
for your desired Google Spreadsheet.- With your
Google Spreadsheet
open, go toTools -> Script editor
. - At the
Google Script
screen, go toFile -> Project properties
. - The needed ID is the one under the
Script ID
label!
- With your
- Just for the first time, run the target
make setup SCRIPT_ID=my-script-id
replacingmy-script-id
with the ID obtained at point3
.- It should create the file
.clasp.json
with yourscriptId
inside for future use. - NOTE: You only need to re-run this step if you want to change the configured
scriptId
.
- It should create the file
- Now you can run
make push
(or justmake
alone) to upload/apply local code to your desired Google Spreadsheet!- From now on, you can just run
make
to keep applying changes to the same configured spreadsheet. - TIP: You can run
make update
to pull latest changes from this repo and push them to your configured spreadsheet.
- From now on, you can just run
- Refresh/reload your Google Spreadsheet (hit
F5
on the browser).- Once reloaded, you should see a little message box (toast) at the bottom-right corner.
- Go to
Binance
item at your spreadsheet's main menu and click on theAuthorize add-on!
item. - A Google's dialog should appear asking for permissions, proceed with all the steps and click
Allow
.- The popup will close and nothing will change on your spreadsheet yet!
- Once the add-on is authorized, repeat step
7
(clickAuthorize add-on!
again) and voila!
Windows users: You can download and use make
from here or even the entire GnuWin toolset.
Only needed if you also want to have account info, open/pending, done/finished and historical orders listing working in your spreadsheet.
To get your keys, go to Binance API panel and create a new one:
- Enter a label like
Binance to Google Sheets
and click theCreate
button. - Take note for both
API Key
andSecret Key
values. - Click the
Edit restrictions
button.- Under
API restrictions
ONLYCan Read
checkbox should be checked. - Under
IP access restrictions
selectUnrestricted
.
- Under
- Click the
Save
button and now you have to configure them on your spreadsheet!
Once you have the add-on
already installed/enabled on your desired Google Spreadsheet, the main menu item Binance
should have appeared at the rightmost position.
- At spreadsheet's main menu, go to
Binance -> Setup API Keys
. - Set your
API Key
and clickOK
. Do the same forAPI Secret Key
. - Voila, you are ready to go!
NOTE: You can remove or re-configure them at any time from the Binance
main menu item in your spreadsheet.
NOTE: Check the Examples
sheet in the live DEMO spreadsheet for more details.
You just need to call the =BINANCE()
formula in a cell!
Some operations are public, meaning they don't need a Binance API key to call'em.
Some operations are private, meaning they do require a Binance API key to call'em.
So far, these are the available operations:
=BINANCE("version")
will return the current Binance to Google Sheets
version you are running.
- Be sure to check the latest release and update yours if needed.
=BINANCE("last_update")
will return the timestamp of the last request/response from Binance API.
- The timestamp is updated every time we get a valid response from Binance API (status
200
, no matter what operation triggered it).
=BINANCE("prices")
will return a list with the latest prices from Binance.
=BINANCE("prices", "BTC")
Optionally you can give a symbol to just return its price (againstUSDT
by default).=BINANCE("prices", "BNB", "BTC")
Optionally you can give a ticker to compare against and to just return its price.=BINANCE("prices", A1:A3)
Optionally you can give a ticker range to return a list of symbols and prices.- Values must be simple symbols like
A1="BTC"
,A2="ETH"
andA3="LTC"
.
- Values must be simple symbols like
=BINANCE("prices", A1:A3, "headers: false")
Optionally you can give more options like not returning table headers.=BINANCE("prices", A1:A3, "ticker: BNB, prices: true")
Optionally you can return only the prices (and give a ticker in the meantime).
=BINANCE("stats/24h", A1:A3)
will return a list with the 24hs stats for given symbols from Binance.
- A single value like
"BTC"
or a range of values is required. Values must be simple symbols likeA1="BTC"
,A2="ETH"
andA3="LTC"
. =BINANCE("stats/24h", A1:A3, "BTC")
Optionally you can give a ticker to match against (defaults toUSDT
).=BINANCE("stats/24h", A1:A3, "ticker: BTC, headers: false")
Optionally you can give more options like not returning table headers.
=BINANCE("account")
will return total account assets from Binance wallets (SPOT + CROSS + ISOLATED).
=BINANCE("account", "spot")
Display assets summary for SPOT wallet.=BINANCE("account", "cross")
Display assets summary for CROSS MARGIN wallet.=BINANCE("account", "isolated")
Display assets summary for ISOLATED wallet.=BINANCE("account", "", "headers: false")
Optionally you can give more options like not returning table headers.
=BINANCE("orders/open")
will return a list with all your open/pending orders from Binance (SPOT + CROSS + ISOLATED).
=BINANCE("orders/open", "BTCUSDT")
Optionally you can give a full ticker to filter the results.=BINANCE("orders/open", "BTCUSDT", "headers: false")
Optionally you can give more options like not returning table headers.
=BINANCE("orders/done", A1:A3)
will return a list with your most recent (10
per symbol by default) done/finished orders for given symbols from Binance.
- A single value like
"BTC"
or a range of values is required. Values must be simple symbols likeA1="BTC"
,A2="ETH"
andA3="LTC"
. =BINANCE("orders/done", A1:A3, "BTC")
Optionally you can give a ticker to match against (defaults toUSDT
).=BINANCE("orders/done", A1:A3, "ticker: BTC, headers: false, max: 100")
Optionally you can give more options like not returning table headers and fetching latest100
orders per given symbol.- Values for
max
allowed between1
and1000
(defaults to10
).
=BINANCE("orders/table", MySheet!A1:A3)
will transform the current sheet into a "table" in where ALL historic done/finished orders will be periodically polled and stored for each given symbol from Binance.
- This formula must always be placed at
A1
in any new blank sheet into your spreadsheet. - A single value like
"BTC"
or a range of values is required. Values must be simple symbols likeMySheet!A1="BTC"
,MySheet!A2="ETH"
andMySheet!A3="LTC"
. - Be patient! It will adjust sheet's cols/rows and initialize a table header for you.
- Do NOT alter the table data by hand! It will poll for data every
10
minutes automatically. =BINANCE("orders/table", MySheet!A1:A3, "BTC")
Optionally you can give a ticker to match against (defaults toUSDT
).
NOTE: You can have multiple sheets with this formula on. They will be all polled every 10
minutes, but take into account that if you have too much sheets to update, it could become really slow and even unresponsive.
Google Spreadsheets has a very poor performance for adding rows to a sheet, so that's why each poll session is limited to 100
items only.
If you have many assets and/or orders to fetch, it's recommended to have only 1
or 2
sheets at most, with a range that contains all your asset's symbols.
=BINANCE("orders/table/stats", 'Orders Table'!A1)
coming soon
A spreadsheet example using the BINANCE()
formula:
https://docs.google.com/spreadsheets/d/1AcOcPFsncrDB_ve3wWMHwfiFql6A4hmG1sFc01LLTDg
I needed a way to have Binance data directly available at my Google Spreadsheet.
First, I've looked for several existing solutions, but none provided me the freedom, confidence and privacy that I want for this kind of delicate stuff.
It's a requirement for me that requests to Binance go directly from my spreadsheet to its API without any intermediary service in between (most than Google itself in where the spreadsheet resides, of course).
So I decided to write my own code, all from scratch, with only my will and my javascript knownledge aboard..
..and I was so happy with the results that I simply decided to share it to the world! 🎉
I'm just a guy that uses both services and wanted to have Binance data available at my personal Google Spreadsheet.
I did it for myself and I liked it so much, that I decided to share it so anyone can use it!
The script only needs READ access keys to Binance API, so there is no security concerns about what the script is able to do at Binance in your behalf.
It will just retrieve useful Binance data for your enjoyment in your spreadsheets. =]
I'm not responsible for your private usage of this tool, although it will never cause you any problems!
Therefore, you will agree upon your own fully responsibility at the very moment you start using this tool.
NOTE: If you have any concerns, please feel free to open a ticket in the issues section or email me.
No personal data collect and/or usage is done in any way, that's why this add-on
doesn't require any "controversial" permission from your side.
The only sensitive scopes according to Google are:
script.external_request
:: Needed to fetch data from Binance API into the spreadsheet (GET requests only).script.scriptapp
:: Needed to install and run triggers to keep data updated in the spreadsheet.
NOTE: This is an open-source project, so you will always be available to keep and eye to the code and audit it.
If you have any concerns, please feel free to open a ticket in the issues section or email me.
This is not a service. There is no contract nor obligations between the code/myself and you.
The only commitment on my behalf is regarding to no personal data usage in any way.
Only you decide when and how to use this tool. You can remove the add-on
anytime like any other add-on.
You may also remove your Binance API key anytime and just use the public endpoints.
Requests to Binance API from your spreadsheets are made from your Google account on your behalf.
No other service acts as an intermediary between your Google spreadsheet and Binance!
NOTE: If you have any concerns, please feel free to open a ticket in the issues section or email me.
Don't you have a Binance account yet?
Register using the referal link below and get a 10% discount on fees for all your trades!
https://www.binance.com/en/register?ref=SM93PRAV
Thank you for using Binance to Google Sheets add-on!
I really hope you enjoyed and loved it as much as I love to use it everyday.
If your love is strong enough, feel free to share it with me! =D
I will much appreciate any contribution and support to keep working on it.
I have several ideas for new features, so much more could come!
You can send any token through the Binance Smart Chain (BSC/BEP20) to the address:
0x1d047bc3e46ce0351fd0c44fc2a2029512e87a97
But you can also use:
- [BTC] BTC:
1FsN54WNibhhPhRt4vnAPRGgzaVeeFvEnM
- [BTC] SegWit:
bc1qanxn2ycp9em50hj5p7en6wxe962zj4umqvs7q9
- [ETH] ERC20:
0x1d047bc3e46ce0351fd0c44fc2a2029512e87a97
- [LTC] LTC:
LZ8URuChzyuuy272isMCrts7R7UKtwnj6a
This software was published and released under the GPL-3.0 License.
Use it wisely, happy trading! 🍻
Diego.