1.0OAS 3.1

Try This API

You can try this API by creating an account to get credentials. Once your calls are authorized, you can test the endpoints on this page and get back a limited sample of real data — enough to evaluate the response structure and integrate against it.

Trial responses are restricted to a sample universe. For full data coverage and production access, talk to our sales team.

Before You Start

You’ll need a Client ID and Client Secret. These come from an your account profile — they’re separate from the username and password you use to log in to Morningstar for Developers.

Create Account

Already have an account? Log in and follow the steps below.

  1. Create an application in your portal profile.
  2. Copy the Client ID and Client Secret it issues.

Authenticating Your Requests

Authentication is a two-step process.

  1. Request a token from POST /token/oauth, using your Client ID and Client Secret as HTTP Basic credentials.
  2. Send the token to all other endpoints as an Authorization: Bearer <token> header.

Reuse the token for up to 60 minutes, then request a new one.

Learn More

Ready to go deeper? The Managed Investments API guide has the concepts, worked examples, and reference material you’ll need to build with confidence.

New to Morningstar’s APIs? The Quick Start takes you from account to first call in a few minutes.


API Base URL
  • Server 1:https://www.us-api.morningstar.com

    Americas

  • Server 2:https://www.apac-api.morningstar.com

    APAC

  • Server 3:https://www.emea-api.morningstar.com

    EMEA

Security
Bearer (http)

JWT obtained from POST /token/oauth.

Send it on every request as Authorization: Bearer <token>. Reuse the token for up to 60 minutes, then request a new one.

Basic (http)

Used only by POST /token/oauth to obtain a bearer token.

Send your Client ID and Client Secret as a Base64-encoded clientId:clientSecret pair.

Authentication

Get token

Exchanges your Client ID and Client Secret for a signed JWT bearer token.

Send your credentials as a Base64-encoded clientId:clientSecret string in the Authorization header. Use the returned access_token as a Bearer token on all other endpoints in this API.

post

Response

application/json

200: OK

OutputToken

A successful authentication response containing a JWT bearer token.

access_tokenstringrequired

The signed JWT to use as a Bearer token in subsequent authenticated requests.

Example:eyJhbGciOiJ example

expires_inintegerrequired

The number of seconds until the token expires. After expiry, request a new token.

Example:3599

token_typestringrequired

The token type. Always Bearer.

Example:Bearer

post/token/oauth
 
application/json

Screener

Screen managed investments and return selected data points.

Query managed investments and return selected data points.

Returns the investments that meet the conditions defined in universe/scope and query. Returns instrumentIdentifiers.performanceId by default and any other data points specified in the dataPoints array.

post

Body

application/json

RequestManagedInvestmentsScreener

Screener request body. Define the starting universe with universe or scope, then narrow results with query.

* Additional properties are NOT allowed.
universestring | null

Applies a predefined scope. Use as an alternative to defining a custom scope.

Allowed values:mip_data_univ

Example:mip_data_univ

scopeobject

Defines the starting universe of investments. For managed investments, the scoping data point is basicReference.countryAvailableForSale. Compound and nested compound queries are supported. Each branch of the query must contain the scoping data point.

Show Child Parameters
queryobject

Filters investments using dataPoint: filter conditions or compound logic. Keys are data point names; values are filters. For example:

  • Equals: { "basicReference.baseCurrency": "USD" }
  • In: { "basicReference.baseCurrency": ["USD", "GBP"] }
  • Range: { "basicReference.inceptionDate": { "gt": "2020-01-01", "lt": "2024-01-01" } }
  • Contains: { "basicReference.name": { "contains": "app" } }
  • Fuzzy: { "basicReference.name": "Aviva", "fuzzy": true }
  • Compound: { "and": [ { "dataPoint1": "value1" }, { "dataPoint2": "value2" } ] }
  • Nested compound: { "or": [ { "and": [ ... ] }, { "dataPoint": "value" } ] }

Check the operators supported by each data point via the data points endpoint.

Show Child Parameters
dataPointsarray[string]

Lists data points to return. Retrieve valid values programmatically via GET /direct-web-services/v1/screeners/managed-investments/data-points, or browse the full reference in the data dictionary.

<= 100 items

Example:basicReference.legalName, basicReference.name, basicReference.firmName, basicReference.inceptionDate

paginationobject

Determines how results are paginated.

* Additional properties are NOT allowed.
Show Child Parameters
sortarray | null[object]

The data point and sort direction.

* Additional properties are NOT allowed.
Show Child Parameters
languageIdstring | null

Specifies the language code used for language-dependent results.

Allowed values:ARACHIDANDUTENGFINFREGERHEBITAJPNKORNORPORSPASWETHAZHO

Default:ENG

Example:JPN

currencyIdstring | null

Specifies the currency used for currency-dependent results. Accepts ISO 4217 currency codes.

Default:USD

Example:EUR

Response

application/json

OK

ResponseManagedInvestmentsScreener

Screener response including results and metadata.

* Additional properties are NOT allowed.
investmentsarray | null[object]

Data points and values returned for a single result. Keys are data point names in the format <dataGroup>.<fieldName>; values depend on the data type of the data point. instrumentIdentifiers.performanceId is always returned. Data points with no value may be omitted.

Example:{"instrumentIdentifiers.performanceId":"0P0001RHZF","basicReference.firmName":"10X Investments (Pty) Ltd","basicReference.inceptionDate":"2023-05-17","basicReference.name":"10X Income AMETF","yieldsHistorical.12MoYield":7.2118}

metadataobject

Metadata returned with screener results, including pagination tokens and information about data points not returned.

* Additional properties are NOT allowed.
Show Child Parameters
post/direct-web-services/v1/screeners/managed-investments

Body

{ "scope": { "basicReference.countryAvailableForSale": "USA" }, "query": { "basicReference.baseCurrency": "USD" }, "dataPoints": [ "basicReference.legalName", "basicReference.name", "basicReference.firmName", "basicReference.fundCode" ], "pagination": { "pageSize": 5 }, "sort": [ { "dataPoint": "basicReference.legalName", "orderBy": "asc" }, { "dataPoint": "basicReference.firmName", "orderBy": "desc" } ] }
 
application/json