Post 6th September
I am working on a project where I want to display live prices from Google Finance API for multiple stock with information like change
change in %
volume
Timestamp of data
and
few ratios like ROI/E
, ROA
, Net-profit-margin
-- This is completely optional. (If available then amazing if not then still not much of a issue.)
Sending one request for every stock is absurd when it comes to efficiency.
I tried multiple things like
https://finance.google.com/finance?q=NSE:ABAN,NSE:ABB&output=json
This gave me the basic info of the stocks but not the live prices.
https://finance.google.com/finance?q=NSE:ABAN,ABB&output=json
This query just acknowledged that the stock with name ABAN exists.
I am interested in NSE (National Stock Exchange-India)'s data. I already went through 2-3 threads for this matter but couldn't get much info, also Yahoo stopped support for Indian markets so that option is also crossed of the list as well.
The project is academic so I would want a free source for the data if possible.
Any help regarding this will really be really appreciated.
Update: Google killed it.
You can do the following trick:
https://finance.google.com/finance?output=json&q=,,... (up to 14 stocks per query)
The output would have the 'id' field that you should collect. Example:
{...
"searchresults" : [
{
"title" : "Aban Offshore Ltd",
"id" : "3302534",
"ticker" : "ABAN",
"exchange" : "NSE",
...
} , {
"title" : "ABB India Ltd",
"id" : "5296497",
"ticker" : "ABB",
"exchange" : "NSE",
...
}]
...
https://finance.google.com/finance/data?dp=mra&output=json&catid=all&cid=3302534,5296497,... (don't know the limit but it's way more than 14 IDs)
the output will have info about every ID
{...,company:{related:{cols:[...],
rows:[
{id:"3302534",
values:["3302534","ABAN","Aban Offshore Ltd","ABAN","NSE","INR","178.35","+0.40","chg","0.22","","-184.19","","0.39","0.59","10.41B","","0.00","","0.63","63.15","74.78","448.77","531.41","-5.34","-32.89","-6.46","1.40","-59.21","93.14","52.77","12.88","1,275","17,579.20","-10,408.33","9,275.71"]},
{id:"5296497",
values:["5296497","ABB","ABB India Ltd","ABB","NSE","INR","1,365.20","+24.00","chg","1.79","","17.88","76.36","8.66","3.09","289.56B","","4.00","0.30","1.56","7.76","7.76","18.28","18.28","4.95","11.90","9.86","1.43","4.08","32.94","7.56","5.92","5,603","91,840.50","3,744.70","6,945.30"]}],
visible_cols:[...]}}}
The columns are: ID, Ticker, Name, Ticker, Exchange, Currency, Price, Change, Unknown, Change%, Unknown, EPS, PE, PB, PS, Cap, EntValue, Div, DivYield, CurrRatio, LtDebtToAssets, TotalDebtToAssets, LtDebtToEquity, TotalDebtToEquity, ReturnOnAvgAssets, ReturnOnAvgEquity, ReturnOnAvgInvestment, Beta, NetProfitMargin, GrossMargin, EBITDMargin, OperatingMargin, Employees, Revenue, NetIncome, EBITDA
Unfortunately there's no extended session price or any of the last trade times. If you know how to get the last trade time for a stock, please let me know.