Security Screener FAQs

Explore frequently asked questions about our security screener API.

In addition to our basic security screening help articles, we wanted to include more advanced questions we receive. 

Is there a limitation on the number (or position) of nested "groups clauses"? 

There are some limitations to the number of groups allowed. There can be only 10 groups and the condition labels must be 100 characters or less. The position of the groups follows a logical progression thus ordering will affect what is returned. 

How would I screen for companies that have filed with the SEC the last X number of years? 

In order to find data about companies that have or have not filed in the last X number of years, you will need to make use of the delisted tag. From there you can screen by security data or find creative uses of the order parameter. Note that in some cases Intrinio will make tickers Null for delisted companies if the id is being used by another company, though this situation is not widespread.

Is there a way to screen using an operator like "IN" to match an array of industry codes (SIC, industry_group, etc.)? 

Unfortunately, the head operator property is restricted to "AND", "OR", and "NOT". There are no other recognized head operators. 

You should be able to give ranges that you want to cover using the logical operators provided. 

The security screener gives you the data for the last quarter. Is it possible to screen by data for a specific quarter? 

The parameters for security_api.screen_securities are restricted to the five optimal parameters (logic, order_column, order_diretion, primary_only, and page_size) with their associated types. To screen the data by fiscal year, you would need to create another clause for your logic parameter, for example: 

  • clause1 = intrinio_sdk.SecurityScreenClause(field ='totalcommonequity', operator = 'gt', value = 100000000) 
  • clause2 = intrinio_sdk.SecurityScreenClause(field = 'next_earnings_year', operator = 'eq', value = 2017) 
  • logic = intrinio_sdk.SecurityScreenGroup(operator ="OR", clauses =[clause1, clause2]) 

To help with field tags, https://data.intrinio.com/data-tags is a simple way to search the tag library.  

How do I get Python SDK screener results into a Pandas Dataframe? 

Our devs came up with the following, which should help. Note that this will only work in Python 3. 

logic = intrinio_sdk.SecurityScreenGroup(operator ="AND", clauses =[clause1, clause2]) 

order_column = 'employees' 

order_direction = 'desc' 

primary_only = True  

page_size = 100 

  

try: 

api_response = security_api.screen_securities( 

logic=logic,  

order_direction=order_direction,  

primary_only=primary_only,  

page_size=page_size, 

 

except ApiException as e: 

print("Exception when calling SecurityApi->screen_securities: %s\r\n" % e) 

  

data = [] 

  

for x in api_response: 

  

record = {} 

  

for attr, value in x.security.__dict__.items(): 

if attr.startswith('_'): 

record[attr.replace('_', '')] = value 

  

for d in x.data:  

record[d.tag] = d.number_value or d.text_value 

data.append(record) 

 

data_frame = pd.DataFrame(data) 

print(data_frame)