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 Investment Details Feed 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

Generate a JSON Web Token (JWT)

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

Investment Details

Request investment details

post

Headers

Preferstringrequired

Must be set to respond-async to indicate the client requires that
the request is processed asynchronously. If omitted or set to another value, the server responds with an error message.

Allowed values:respond-async

Body

application/json

RequestInvestmentDetails

Request investment details for up to 3 views and 250 investments.

* Additional properties are NOT allowed.
investmentsarray[object]required

Investment to query. Investment look up is supported.

>= 1 items<= 250 items

* Additional properties are NOT allowed.
Show Child Parameters
viewsarray[object]required

List of views.

>= 1 items<= 3 items

Show Child Parameters
startDatestring(date)

Specifies the start date of a time series. Accepts yyyy-MM-dd.

Example:2020-01-25

endDatestring(date)

Specifies the start date of a time series. Accepts yyyy-MM-dd.

Example:2024-01-25

languageIdstring

Specifies the language to filter results on. Required for language-dependent data.

Allowed values:ENGSPAFRADEUITAJPNCHIZHOKOR

Default:ENG

countryIdstring

Specifies the country to filter results on. Accepts 3-character ISO 3166-1 country codes. Required for country-dependent data.

Default:USA

Example:CAN

regionIdstring

Specifies the region for style box breakpoints.

Allowed values:1234567

Example:1

Response

application/json

Accepted

ResponseAccepted

Defines the HTTP 202 Accepted response returned when a request is
accepted for asynchronous processing. Includes the job identifier,
metadata, and links to retrieve the job status or results.

jobIdstring

A unique identifier for the asynchronous job. This ID is used to
track processing progress or retrieve completed results.

Example:16bf1a7a-c883-4424-8810-2f4e9d244d40

_linksobject

A set of hypermedia links providing URLs for polling job status or
accessing results when available.

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

Body

{ "investments": [ { "id": "id" } ], "views": [ { "viewId": "viewId" } ] }
 
application/json