Investment Details API
Get detailed profile data for a single investment, drawing on Morningstar's fundamental, reference, and historical data.
Get View IDs
Two endpoints help you choose views. One lists the views you are entitled to, with their view IDs. The other returns the definition of a view, which lists its data points. Both are quick requests that return results at once. They aren't asynchronous.
For background on views, see Views.
List the Views You Can Request
Use the list views endpoint to retrieve the views you are entitled to. The request takes no query parameters or body, only your access token.
GET /direct-web-services/v1/investments/views
The following request lists the views.
curl --request GET \
--url "https://www.us-api.morningstar.com/direct-web-services/v1/investments/views" \
--header "accept: application/json" \
--header "Authorization: Bearer {token}"
Use the base URL for your region, as described in Getting Started.
The response contains a views array and a metadata object.
{
"views": [
{
"package": { "viewId": "active-share" },
"datasets": [
{ "viewId": "active-share" }
]
},
{
"package": { "viewId": "asset-allocation-breakdown" },
"datasets": [
{ "viewId": "asset-allocation-breakdown" }
]
}
],
"metadata": {
"requestId": "27d7fee8-3cb1-4d26-8594-30a3912f7967",
"time": "2026-06-15T14:23:12.8224237Z"
}
}
| Property | Description |
|---|---|
views | The views you are entitled to, one object for each package. |
views[].package.viewId | The view ID of the package. |
views[].datasets[].viewId | The view IDs of the datasets in the package. |
metadata | The requestId and the time of the response. |
Use a viewId from the response in the views array of an investment details request. See the Investment Details section for guidance on making requests.
Get a View Definition
Use the view definition endpoint to see which data points a view contains. Pass the view ID in the path.
GET /direct-web-services/v1/investments/views/{viewId}
The following request retrieves the definition of the active-share view.
curl --request GET \
--url "https://www.us-api.morningstar.com/direct-web-services/v1/investments/views/active-share" \
--header "accept: application/json" \
--header "Authorization: Bearer {token}"
The response contains the view ID, its data points and a metadata object.
{
"viewDefinition": {
"id": "active-share",
"dataPoints": [
{
"id": "activeShare.activeShareEtfBenchmarkProxy",
"isLanguageDependent": false,
"isCountryDependent": false,
"isCurrencyDependent": false
},
{
"id": "activeShare.activeShareDate",
"isLanguageDependent": false,
"isCountryDependent": false,
"isCurrencyDependent": false
}
]
},
"metadata": {
"requestId": "27d7fee8-3cb1-4d26-8594-30a3912f7967",
"time": "2026-06-15T14:23:12.8224237Z"
}
}
| Property | Description |
|---|---|
viewDefinition.id | The view ID. |
viewDefinition.dataPoints[].id | The data point, in the format <dataGroup>.<fieldName>. |
viewDefinition.dataPoints[].isLanguageDependent | When true, the data point varies by language. Set languageId in the request. |
viewDefinition.dataPoints[].isCountryDependent | When true, the data point varies by country. Set countryId in the request. |
viewDefinition.dataPoints[].isCurrencyDependent | When true, the data point varies by currency. |
When to Use These Endpoints
- To find your view IDs. Call the list endpoint once, and save the IDs. You don't need to call it for every request.
- After your entitlements change. The list shows the views you are entitled to, so call it again if you license new packages.
- To check what a view returns. Call the view definition endpoint before you request a view, to see its data points and which of them depend on language or country.
Errors
Both endpoints return a 400 if the request is invalid, and a 500 if there is a server error. The error response has a statusCode, an errorCode, a message and a requestId. See Error Messages.