How to detect if ETH address belongs to Exchange? Is there any proper method or API to detect it 100% correct?
There is no methods or API to do this automatically. However websites like etherscan, have the option to add names to addresses with correct signature, meaning if you own the address you can request to associate a name to it.
One possible method is to use the exchanges and request withdraws to see what address they use, which so far most exchanges seem to use one hotwallet address for ethereum and tokens.
e.g. Bittrex Hotwallet is : https://etherscan.io/address/0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98
More eye candy view of addresses and their Token balance: https://faa.st/portfolio#/address/0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98