Equities Screener API

Powerful, criteria-based screening using flexible filtering logic.

Equality and Text Filters

Equality filters match investments whose data point has an exact value, or one of a list of values. Text filters search string data points for a substring or an approximate match. This page covers both.

Match a Single Value

To match one value, give the data point and the value. You don't need to write an operator.

"query": {
  "shareClassInformation.symbol": "MSES"
}

A single value works with every data type, so you can match a number, a boolean or a date in the same way.

"query": {
  "shareClassInformation.investmentStatus": 1
}
"query": {
  "shareClassInformation.isMainShare": true
}

Match Any of a List of Values

To match any of several values, give an array. An investment is returned if its value equals any entry in the array.

"query": {
  "shareClassInformation.securityType": [
    "ST00000001",
    "ST00000002"
  ]
}

The array must contain at least one value, and all values must be of the same type as the data point.

Search Text with Contains

For string data points that support it, use contains to match a substring.

"query": {
  "basicReference.name": {
    "contains": "APP"
  }
}

Fuzzy search finds text that approximately matches the value you give, so it tolerates spelling differences. Set fuzzy to true in the filter.

"query": {
  "basicReference.name": {
    "value": "appel",
    "fuzzy": true
  }
}

Fuzzy search has the following rules.

  • It works only with string data points that support fuzzy search. Support isn't available for all string data points.
  • It works only as an equality filter, so you can't combine it with contains or a comparison.
  • The search text must be at least 3 characters.

If you set fuzzy to true on a data point that doesn't support it, the request returns an error.

Combine Text Filters with Other Filters

Equality and text filters can be combined with other filters using compound operators. The following query returns securities of the given types whose name contains APP.

"query": {
  "and": [
    { "shareClassInformation.securityType": ["ST00000001", "ST00000002"] },
    { "basicReference.name": { "contains": "APP" } }
  ]
}

See Compound Filters.