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
| Header | Value | Description |
|---|---|---|
Authorization | Bearer {token} | See Authentication. |
Content-Type | application/json | |
Prefer | respond-async | Required. |
The JSON body has the following properties.
| Property | Required | Purpose |
|---|---|---|
investments or investmentListId | Yes | The investments to retrieve. |
views | Yes | The views of data to return. |
languageId, countryId, currencyId | No | Request-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.
- To find valid view IDs, see Get View IDs.
- For package-specific inputs and limits, see Package-Specific Guides.
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.
| Property | Use |
|---|---|
languageId | Language for language-dependent data. |
countryId | Country for country-dependent data, as a 3-character ISO 3166-1 code. |
currencyId | Currency 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"
}
}
| Property | Description |
|---|---|
jobId | Identifier of the job. |
_links.href | URL to call to check the job status. |
_links.rel, _links.method | Always status and GET. |
metadata.requestId | Identifier of the request. Include it if you contact support. |
metadata.time | Time of the response. |
Retrieve Results
To check the job and retrieve results, see Retrieve Investment Details.
Results
The response has two top-level properties.
| Property | Description |
|---|---|
investments | An array with one object for each investment that returned data. |
metadata | Information 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
identifiersobject 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,
profitabilityis an array. - Coded values. Some values are returned as an object with a
valueand acode, for example{ "value": "US Dollar", "code": "USD" }. - Language and country. Data that depends on language or country uses the
languageIdandcountryIdfrom 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.12MoYieldandyieldsHistorical.12MoYieldTimeseries.yieldsHistorical.12MoYielddisplays most recently available value.yieldsHistorical.12MoYieldTimeseriesprovides time series data.
{
"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.