It can very simple for the beginning and I think for the foreseeable future following compromises are acceptable:
- no time series, only quotes on shares/etfs/FX
- depending on demand quotes can be cached/stale for 5/10/20/30 minutes etc.
- depending on demand api access can be provided to users holding only over a certain amount of value in their account
- api access should be rate limited (not sure 50 per minute?)
2nd phase can include
- ability to put limit buy/sell orders (market orders without up to date quotes might be dangerous for users)
- ability to cancel existing orders
- ability to query current free funds
- ability to query portfolio holdings.
Since most of these features already exist in mobile app, I am sure there are api’s already working for all of these and more. It is a question of rate limiting and opening these apps to your users I suppose.