---
title: "Explore Data Points"
description: "List the data points available for equity screens and read their metadata to choose valid filters, sort fields and language or currency settings."
url: "https://developer-beta.morningstar.com/equities-screener-api/explore-data-points"
image: "https://developer-beta.morningstar.com/_og/d/c_Ocean.takumi,title_~RXhwbG9yZSBEYXRhIFBvaW50cyB8IEVxdWl0aWVzIFNjcmVlbmVyIEFQSQ,description_~TGlzdCB0aGUgZGF0YSBwb2ludHMgYXZhaWxhYmxlIGZvciBlcXVpdHkgc2NyZWVucyBhbmQgcmVhZCB0aGVpciBtZXRhZGF0YSB0byBjaG9vc2UgdmFsaWQgZmlsdGVycywgc29ydCBmaWVsZHMgYW5kIGxhbmd1YWdlIG9yIGN1cnJlbmN5IHNldHRpbmdzLg,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMwMDAwMDAifX19,p_Ii9lcXVpdGllcy1zY3JlZW5lci1hcGkvZXhwbG9yZS1kYXRhLXBvaW50cyI,s_tO7na9tthnc1LZIb.png"
---

-   [APIs](https://developer-beta.morningstar.com/apis)
-   [API Catalog](https://developer-beta.morningstar.com/api-catalog)
-   [API Assistant MCP Server](https://developer-beta.morningstar.com/api-assistant-mcp)
-   [Guides](https://developer-beta.morningstar.com/api-guides)
-   [Trial Access](https://developer-beta.morningstar.com/trial-access)

# Equities Screener API

Powerful, criteria-based screening using flexible filtering logic.

# Explore Data Points

[View Markdown](https://developer-beta.morningstar.com/equities-screener-api/explore-data-points.md)[Download Markdown](https://developer-beta.morningstar.com/equities-screener-api/explore-data-points.md)

Data points are the building blocks of a screen. You filter on them, return them and sort by them. This page explains how to list the available data points and how to read their metadata, so that you can build requests that are valid the first time.

For background on data points, see [Core Concepts](https://developer-beta.morningstar.com/equities-screener-api/core-concepts#data-points).

## [List the Data Points](#list-the-data-points)

Use the data points endpoint to retrieve every data point that can be used in a screen. The request takes no query parameters or body, only your access token.

```text
GET /direct-web-services/v1/screeners/equities/data-points
```

The following request lists the data points.

```bash
curl --request GET \
  --url "https://www.us-api.morningstar.com/direct-web-services/v1/screeners/equities/data-points" \
  --header "Authorization: Bearer {token}" \
  --header "accept: application/json"
```

Use the base URL for your region, as described in [Getting Started](https://developer-beta.morningstar.com/equities-screener-api/getting-started).

The response contains a `dataPoints` array and a `metadata` object. Each entry in the array describes one data point.

```json
{
  "dataPoints": [
    {
      "name": "shareClassInformation.symbol",
      "type": "string",
      "operators": ["eq", "in"],
      "isCurrencyDependent": false,
      "isLanguageDependent": false,
      "isSortable": true
    },
    {
      "name": "trailingReturn.trailing10YearReturn",
      "type": "decimal",
      "operators": ["gt", "lt", "gte", "lte", "eq", "in"],
      "isCurrencyDependent": true,
      "isLanguageDependent": false,
      "isSortable": true
    }
  ],
  "metadata": {
    "requestId": "f2e6ec6a-3f90-4b3c-a951-7558607a8d20",
    "time": "2025-09-29T13:04:51.190876Z"
  }
}
```

## [Read the Metadata](#read-the-metadata)

Each data point has the following properties.

| Property            | Description                                                                      |
| :------------------ | :------------------------------------------------------------------------------- |
| name                | The data point name, in the format <dataGroup>.<fieldName>. Use this value in query, dataPoints and sort. |
| type                | The data type of the value. It determines the filters you can use.               |
| operators           | The filter operators the data point supports.                                    |
| isSortable          | When true, you can sort results by the data point.                               |
| isLanguageDependent | When true, you must pass a languageId to retrieve the data point.                |
| isCurrencyDependent | When true, you must pass a currencyId to retrieve the data point.                |

The `metadata` object contains the `requestId` and the `time` of the response. Include the `requestId` if you contact support.

## [Use the Metadata to Build a Request](#use-the-metadata-to-build-a-request)

The metadata tells you what a data point can do. Check it before you use a data point in a request.

### [Filters](#filters)

The `type` and `operators` properties tell you which filters apply. A data point can only be filtered with the operators it lists.

| Data Type | Supported Filters                                          |
| :-------- | :--------------------------------------------------------- |
| boolean   | Equals.                                                    |
| date      | Range comparisons (gt, gte, lt, lte), equals and in.       |
| number    | Range comparisons (gt, gte, lt, lte), equals and in.       |
| string    | Equals and in. Some data points also support fuzzy search. |

For example, `shareClassInformation.symbol` lists only `eq` and `in`, so you can match it against a value or a list of values but can't use a range comparison on it. `trailingReturn.trailing10YearReturn` lists the range operators, so you can filter it with `gt`, `lt` and the others.

See [Filter Conditions](https://developer-beta.morningstar.com/equities-screener-api/filter-conditions) for the syntax.

### [Sorting](#sorting)

Use `isSortable` to check that you can sort by a data point. A data point you sort by must also be in the `dataPoints` array of the request.

### [Language and Currency](#language-and-currency)

If `isLanguageDependent` or `isCurrencyDependent` is `true`, add `languageId` or `currencyId` to the request when you use the data point. The default language is `ENG` and the default currency is `USD`.

`trailingReturn.trailing10YearReturn` in the example above is currency-dependent, so a request that returns it should set `currencyId`.

```json
{
  "scope": {
    "shareClassInformation.exchangeCode": "XPAR"
  },
  "query": {
    "shareClassInformation.symbol": ["MSES", "CA40"]
  },
  "dataPoints": [
    "shareClassInformation.symbol",
    "trailingReturn.trailing10YearReturn"
  ],
  "currencyId": "EUR"
}
```

## [Find the Data Point You Need](#find-the-data-point-you-need)

The response lists every available data point and has no parameters for searching or paging. To find the one you need:

-   **Search the names.** Names describe the value, so you can search the list for a keyword such as `return`, `carbon` or `symbol`.
-   **Browse by data group.** The part of the name before the period is the data group, and related data points share one.
-   **Save the list.** Retrieve it once and search it in your own application, instead of calling the endpoint each time you build a request.

The following data groups appear in the examples in this guide.

| Data Group                          | Example Data Points                                                              |
| :---------------------------------- | :------------------------------------------------------------------------------- |
| shareClassInformation               | shareClassInformation.symbol, shareClassInformation.exchangeCode, shareClassInformation.investmentName, shareClassInformation.securityType |
| instrumentIdentifiers               | instrumentIdentifiers.performanceId                                              |
| marketCapital                       | marketCapital.asOfDate, marketCapital.companyLevelMarketCapital                  |
| companyInformation                  | companyInformation.sic, companyInformation.legalName, companyInformation.domicileCountryCode |
| trailingReturn                      | trailingReturn.trailing1YearReturn, trailingReturn.trailing10YearReturn          |
| factorProfile                       | factorProfile.styleFactorMultiAssetModel                                         |
| esgCompanyLevel2DataCarbonEmissions | esgCompanyLevel2DataCarbonEmissions.carbonIntensity                              |

## [Entitlements](#entitlements)

The list contains the data points that are supported for screening. Whether you can retrieve a data point for a particular investment depends on your entitlements. If you request a data point that you aren't entitled to, the investment is still returned and a warning in `metadata.messages` lists the data points that couldn't be returned. See [Work with Results](https://developer-beta.morningstar.com/equities-screener-api/work-with-results).

## [Next Steps](#next-steps)

-   [Screen Equities](https://developer-beta.morningstar.com/equities-screener-api/screen-equities) shows how to use data points in a complete request.
-   [Filter Conditions](https://developer-beta.morningstar.com/equities-screener-api/filter-conditions) covers the filter syntax for each data type.