Fundamental Data

Fundamental data for stocks and the Wall Street Events Horizon Calendar can be accessed via the TWS API through the LYNXApi.EClient.reqFundamentalData . For the "CalendarReport" it is necessary to have the Wall Street Horizon subscription activated first in Account Management. The other report types require the Fundamentals subscription but this is freely available and will be activated in most accounts by default.

** Python **

self.reqFundamentalData(8001, ContractSamples.USStock(), "ReportsFinSummary", [])

** Java **

client.reqFundamentalData(8001, ContractSamples.USStock(), "ReportsFinSummary", null);

Note how a string attribute specifies the requested report type. In the example above the request was made for the financial summary. See Report Types at the bottom of this page for the rest report types available.

There is a limitation of 60 reqFundamentalData requests that can be made in a 10 minute period.

Results are delivered via LYNXApi.EWrapper.fundamentalData in form of an XML report:

** Python **

class TestWrapper(wrapper.EWrapper):

def fundamentalData(self, reqId: TickerId, data: str):
    super().fundamentalData(reqId, data)
    print("FundamentalData. ReqId:", reqId, "Data:", data)

** Java **

public class EWrapperImpl implements EWrapper {

public void fundamentalData(int reqId, String data) {
    System.out.println("FundamentalData. ReqId: ["+reqId+"] - Data: ["+data+"]");

The LYNXApi.EClient.reqFundamentalData request can be cancelled via LYNXApi.EClient.cancelFundamentalData :

** Python **


** Java **


Report Types

Report Type Description
ReportsFinSummary Financial summary
ReportsOwnership Company's ownership (Can be large in size)
ReportSnapshot Company's financial overview
ReportsFinStatements Financial Statements
RESC Analyst Estimates
CalendarReport Company's calendar

Fundamental Ratios data can be acquired by requesting generic tick type 258 with LYNXApi.EClient.reqMktData. See both Available Tick Types and Fundamental Ratios.