Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Unannounced) Binance read-only public API endpoints are no longer available in the US / restricted locations #610

Open
gldstrrbt opened this issue Nov 30, 2022 · 8 comments

Comments

@gldstrrbt
Copy link

Up until today, the Binance public read-only data API has been available for all to use and access. But now, any device not connected to a VPN / proxy server outside of restricted areas is getting 451 errors.

The customer service rep I spoke with assured me that they (Binance) put in their "best efforts" to notify those who would be affected by this cut off of their read-only data endpoints... by email. Email? Really? They're surely aware that many devs from all over the world (restricted and non-restricted alike) make use of the read-only API endpoints that they've provided up until today. They're also likely aware that many folks have products (charting/analytics/etc) which rely on this read-only data they provide, considering they're one of, if not THE, top exchange(s) in the world, meaning their data paints a better picture of global trading activity.

Binance should have been responsible and should have given all devs a heads up through a public announcement, stating how they're cutting off their access to their read-only data in "restricted" locations, such as the US. It makes zero sense why they would pull this, especially considering that this read-only data is still accessible for all to read around the world through the tables and advanced charts provided on their core website... just not through their public API.

The customer service rep insisted that I use the Binance US API, but again, the previously publicly available read-only data provided by the main Binance is much more robust and paints a clearer picture of international trading activity, and doesn't limit devs to data from one region. They also insisted that I create a ticket speaking to this, knowing that it would require me to create a Binance account... which I'm restricted from doing.

So after being fed up with all the corporate speak, mental gymnastics, and gaslighting the rep pulled, I decided to write here in hopes of letting those using the API in the US and other now restricted areas, know that their access to the core read-only Binance public API has been cutoff as of today. Also wrote this in hopes of catching any of the Binance dev's attention and maybe reversing this cutoff or at least encourage their team to reverse the decision should they have any actual in this.

Yes, a proxy server / VPN can be connected to in a non-restricted area to side step this, but for those (such as myself) in situations where their project or product is purely client side, this is negatively affecting my livelihood/progression of my business/offerings.

@gldstrrbt
Copy link
Author

gldstrrbt commented Nov 30, 2022

Not sure if you're official Binance employees, but if you are, can this be addressed without the corporate speak? Why cutoff access now? If you aren't, my apologies.

@balthazar
Copy link
Member

Sorry, not a Binance dev 😄

@gldstrrbt
Copy link
Author

@balthazar thank you for the heads up and my apologies.

@jaggedsoft
Copy link

The only alternative I can think of is hosting a simple proxy for private use, I have a php file I can share to wrap it through a digitalocean host like this:
https://example.site/cors/https://api1.binance.com/api/v3/ticker?symbol=BTCUSDT

@balthazar
Copy link
Member

No worries, you can keep the message up for others though. And no need to tag the others, they're not Binance employees either.

@gldstrrbt
Copy link
Author

gldstrrbt commented Nov 30, 2022

@jaggedsoft that'd be much appreciated. Thank you so much. Trying to keep everything client side, but if that doesn't work out I'll go through with your suggestion

@balthazar thank you again, man. Just removed the tags

@jaggedsoft
Copy link

jaggedsoft commented Nov 30, 2022

save to /cors/index.php
and access from your server ip, for example http:https://127.0.0.1/cors/?url=https://api.binance.com/api/v3/ticker?symbol=BTCUSDT
if you require https use cloudflare with flexible ssl enabled

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$url = $_GET['url'];
//if ( substr( $url, 0, 8 ) !== "https://" ) die("Access Denied");
$whitelist = [
    "bitmax.io",
    "ascendex.com",
    "hotbit.io",
    "bitmex",
    "mexc.com",
    "binance.org",
    "openapi-v2.kucoin.com",
    "api.kucoin.com",
    "api.binance.com",
    "info.binance.com",
    "quandl.com",
    "bitstamp",
    "hitbtc",
    "okex",
    "coinex",
    "bibox",
    "idex",
    "coingecko",
    "coinpaprika",
    "poloniex",
    "btse"
];
$matches = 0;
foreach ( $whitelist as $keyword ) {
    if ( strpos($url, $keyword) === false ) ++$matches;
}
if ( $matches < 1 ) die("Not Authorized");
header('Access-Control-Allow-Origin: *');
echo file_get_contents($url);

@gldstrrbt
Copy link
Author

@jaggedsoft thank you so much for your help with this. Truly appreciated, especially with facing this current situation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants