Well, language agnostic APIs are always preferred (like FIX). Secondly, sometimes you just don't have a choice and the "modern" APIs are web based.
only advantage I see is you have a bulk load of orders you want to place, cancel, get position data. it's simple
REst is platform agnostic as communication is http. Caller can be in any language as long as input conforms to the spec.
Yes, you can submit orders at once or in batches. For tracking you need to periodically check again which orders are filled. If api supports web sockets then you well be informed of the fill automatically.
so do i need to check 200 orders by 200 calls to the server using rest protocol? or I can check 200 orders by one call to the server?
Sorry, to be perfectly correct in my previous comment, whether we are able to place multiple orders at once or check fill of multiple orders at once is not dependent upon REST technology but dependent upon the brokers API.
TD Ameritrade supports REST APIs (see https://developer.tdameritrade.com/apis ) via OAuth 2.0 -- JSON response. You need to register. Yes, a single call can get all your current balances, positions and orders -- Up to your calling program to parse and store.
if I have 10000 orders outstanding on the broker server, can one call get all the information? I guess the message is too large given you have to poll every seconds and poll those orders never filled.
Yes, it polls every order. I think there is an option to specify the particular order ID - not sure. But every second is certainly too frequent.
A few years back I actually wrote to a rest api in Python no less. Fully automated market maker program on futures calendar spreads. It was "meh" - it worked, slowly but fast enough not to get caught (most of the time). Bulk of the latency was actually in network, not in my code.