Investment Details Feed API

Get detailed profile data for up to 250 investments in a single request, drawing on Morningstar's fundamental, reference, and historical data..

Request Managed Investment Data

This article explains how to request Managed Investment data. For the concepts behind each part of a request, see Core Concepts.

Request Overview

Send a POST request to the Investment Details endpoint, using the base URL for your region (Getting Started).

POST /direct-web-services/v1/investments
HeaderValueDescription
AuthorizationBearer {token}See Authentication.
Content-Typeapplication/json
Preferrespond-asyncRequired.

The JSON body has the following properties.

PropertyRequiredPurpose
investments or investmentListIdYesThe investments to retrieve.
viewsYesThe views of data to return.
languageId, countryId, currencyIdNoRequest-level filters.

For the full list of inputs, see API Inputs.

Build Your Request

1: Specify Investments

Use either the investments array or investmentListId.

Investments array. Morningstar Performance ID is the default identifier type.

"investments": [
    { "id": "0P0000004Y" },
    { "id": "0P00000046" },
    { "id": "0P00000056" }
]

To use another identifier, set idType on the entry. Accepted types are performanceId (default), isin, fundCode, securityId, cusip, msid, tradingSymbol and industryCode. You can mix types in one request.

"investments": [
    {
        "id": "US0042391096",
        "idType": "isin",
        "exchangeCountry": "USA",
        "domicile": "USA",
        "baseCurrency": "USD"
    },
    {
        "id": "F000015DDK",
        "idType": "securityId"
    }
]

If an identifier can match more than one investment, narrow it with exchangeCountry, domicile, baseCurrency or exchangeId. See Identifiers. Unmatched identifiers are reported in the results. See Retrieve Investment Details.

Investment list. Use investmentListId for a list created in the Direct Data Access platform.

"investmentListId": "2a88c3a6-66a3-407e-9fe3-1aaa558fb89a"

2: Specify Views

The views array takes 1 to 3 views, each with a viewId.

Package view. Derived from standard package definitions.

"views": [
  { "viewId": "best-and-worst-rolling-returns" }
]

DDA dataset view. Use a view ID created in the Direct Data Access platform, and set viewType to ddaDataset.

"views": [
  {
    "viewId": "4544651",
    "viewType": "ddaDataset"
  }
]

3: Set Request-Level Filters (Optional)

These apply to the whole request.

PropertyUse
languageIdLanguage for language-dependent data.
countryIdCountry for country-dependent data, as a 3-character ISO 3166-1 code.
currencyIdCurrency for currency-dependent data.

Send the Request

Example: Package View and Investments Array

curl --request POST \
  --url "https://www.us-api.morningstar.com/direct-web-services/v1/investments" \
  --header "Authorization: Bearer {token}" \
  --header "Content-Type: application/json" \
  --header "Prefer: respond-async" \
  --data '{
    "investments": [
        { "id": "0P0000004Y" },
        { "id": "0P00000046" },
        { "id": "0P00000056" }
    ],
    "views": [
        { "viewId": "best-and-worst-rolling-returns" }
    ]
}'

Example: DDA Dataset View and Investment List ID

Same URL and headers. Only the body is shown.

{
    "investmentListId": "2a88c3a6-66a3-407e-9fe3-1aaa558fb89a",
    "views": [
        {
            "viewId": "4544651",
            "viewType": "ddaDataset"
        }
    ]
}

Read the 202 Response

A valid request returns 202 Accepted with the job details, not data.

{
  "jobId": "16bf1a7a-c883-4424-8810-2f4e9d244d40",
  "_links": {
    "href": "https://www.us-api.morningstar.com/dynamic-services-apis/jobs/16bf1a7a-c883-4424-8810-2f4e9d244d40",
    "rel": "status",
    "method": "GET"
  },
  "metadata": {
    "requestId": "c63e7f6c-b52d-42c3-9d1b-4a4b4ac05f3c",
    "time": "2025-10-02T10:54:36.9161062Z"
  }
}
PropertyDescription
jobIdIdentifier of the job.
_links.hrefURL to call to check the job status.
_links.rel, _links.methodAlways status and GET.
metadata.requestIdIdentifier of the request. Include it if you contact support.
metadata.timeTime of the response.

Retrieve Results

To check the job and retrieve results, see Retrieve Investment Details.

Results

The response has two top-level properties.

PropertyDescription
investmentsAn array with one object for each investment that returned data.
metadataInformation about the response: the request ID, the time, and any messages.

Investments

Each object in investments is one investment. It has the following characteristics.

  • Identifiers. The identifiers object holds the investment's performance ID. Use it to match the data to the investments in your request.
  • Data groups. The remaining properties are data groups, named for the data they hold. The groups depend on the views you requested.
  • Objects and arrays. A group is an object when there is one record, and an array when there can be several, such as time series values or several reporting periods. In the example above, profitability is an array.
  • Coded values. Some values are returned as an object with a value and a code, for example { "value": "US Dollar", "code": "USD" }.
  • Language and country. Data that depends on language or country uses the languageId and countryId from your request.
  • Time series data. Time series data is returned at the data point level. In the following example, the view definition includes the view definition includes yieldsHistorical.12MoYield and yieldsHistorical.12MoYieldTimeseries. yieldsHistorical.12MoYielddisplays most recently available value.yieldsHistorical.12MoYieldTimeseries provides time series data.
Time Series Data

Time series data is only available for views defined in the Direct Data Access platform.

{
    "investments": [
        {
            "basicReference": {
                "name": "CA Brio Patrimoine"
            },
            "yieldsHistorical": {
                "12MoYield": 0,
                "12MoYieldTimeseries": [
                    {
                        "date": "2026-09-30",
                        "value": 0
                    },
                    {
                        "date": "2026-08-31",
                        "value": 0
                    },
                    {
                        "date": "2026-07-31",
                        "value": 0
                    },
                    {
                        "date": "2026-06-30",
                        "value": 0
                    },
                    {
                        "date": "2026-05-31",
                        "value": 0
                    },
                    {
                        "date": "2026-04-30",
                        "value": 0
                    },
                    {
                        "date": "2026-03-31",
                        "value": 0
                    }
                ]
            },
            "identifiers": {
                "performanceId": "0P00008W5H"
            }
        }
    ],
    "metadata": {
        "requestId": "31ad48a4-16d1-4305-99f7-7f4d4d21c93f",
        "time": "2026-10-23T16:32:45.5947011Z"
    }
}

Metadata

See Work with Results for information about metadata and metadata messages.