Skip to main content

list-insights

dci list-insights [flags]

Returns a paginated list of insights with their aggregate summaries (savings, risk counts). Use query parameters to filter by status, category, provider, or priority. Does not include individual resource-level results — use the resource-results endpoint for those.

CLI default view

dci list-insights shapes the raw API response before rendering:

  • Dismissed insights are excluded by default. Pass --include-dismissed to keep them; when rows were removed, the response carries a dismissedOmitted count.
  • Results are sorted by summary.potentialDailySavings (USD), highest first, in every output format, so the most valuable insights lead the list.
  • The default table shows a curated column set: title, dailySavings (formatted as USD, e.g. $500.00; blank when zero), provider (from cloudProvider), categories, lastUpdated, and source. Easy wins carry an (easy win) title suffix and, in interactive terminals, a green title; an insight's reportUrl becomes a clickable link on its title.
  • --output json and explicit -C/--fields selections return the raw fields documented below.

Flags

--search-term: (string)

--display-status: (array)

--category: (string enum:"FinOps","OperationalExcellence","PerformanceEfficiency","Reliability","Security","Sustainability")

--cloud-provider: (string) The cloud provider associated with the resource.

--source: (array)

--priority: (array)

--tag: (array)

--easy-win: (boolean)

--cloud-flows: (boolean)

--page-token: (string)

--max-results: (integer default:50)

Output

Successful operation

By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.

FieldTypeDescription
resultsarray of objectList of insight results.
results[].sourcestringThe source that generated the insight.
results[].keystringThe unique key identifying this insight.
results[].titlestringThe display title of the insight.
results[].shortDescriptionstringA brief summary of the insight.
results[].detailedDescriptionMdxstringA detailed description of the insight in MDX format.
results[].displayStatusstringThe display status of the insight. One of: "actionable", "acknowledged", "optimized", "dismissed", "in progress", "upgrade needed", "permissions needed".
results[].cloudProviderstringThe cloud provider associated with the resource.
results[].categoriesarray of stringCategories this insight belongs to.
results[].summaryobjectAggregate summary of risks and savings across all resource results for an insight.
results[].summary.operationalRisksnumber (double)Total number of operational risks.
results[].summary.performanceRisksnumber (double)Total number of performance risks.
results[].summary.potentialDailySavingsnumber (double)Total potential daily savings in USD.
results[].summary.reliabilityRisksnumber (double)Total number of reliability risks.
results[].summary.securityRisksnumber (double)Total number of security risks.
results[].summary.sustainabilityRisksnumber (double)Total number of sustainability risks.
results[].lastStatusChangeobjectIf set, this object contains the last status change made by a user for this insight
results[].lastStatusChange.userIdstringthe reference to the user who made the change (if it was made by a user) If the change was made by an automated system, this reference is empty.
results[].lastStatusChange.lastChangedAtstring (date-time)
results[].lastUpdatedstring (date-time)Timestamp of the last update to this insight.
results[].tagsarray of stringTags for the insight, primarily used for security certification labels (e.g. ISO).
results[].reportUrlstringURL to an external report related to this insight.
results[].cloudFlowTemplateIdstringID of a CloudFlow template that can automate the remediation of this insight.
results[].easyWinDescriptionstringA description of why this insight is considered an easy win.
results[].dismissalDetailsobjectDetails for why an insight was dismissed.
results[].dismissalDetails.reasonstringThe reason for dismissal. One of: "not relevant", "not enough information", "not worth the effort", "inaccurate optimization opportunities".
results[].dismissalDetails.commentstringAn optional free-text comment providing additional context.
paginationobjectCursor-based pagination metadata.
pagination.pageTokenstringToken to retrieve the next page. Absent when there are no more pages.
pagination.rowCountintegerNumber of items in this page.
Raw JSON schema
{
"type": "object",
"description": "Paginated list of insight results.",
"properties": {
"results": {
"description": "List of insight results.",
"type": "array",
"items": {
"type": "object",
"description": "An insight result containing summary information and metadata.",
"properties": {
"source": {
"type": "string",
"description": "The source that generated the insight.",
"example": "aws-trusted-advisor, aws-cost-optimization-hub, aws-security-hub, azure-advisor, custom, gcp-recommender"
},
"key": {
"type": "string",
"description": "The unique key identifying this insight."
},
"title": {
"type": "string",
"description": "The display title of the insight."
},
"shortDescription": {
"type": "string",
"description": "A brief summary of the insight."
},
"detailedDescriptionMdx": {
"type": "string",
"description": "A detailed description of the insight in MDX format."
},
"displayStatus": {
"type": "string",
"enum": [
"actionable",
"acknowledged",
"optimized",
"dismissed",
"in progress",
"upgrade needed",
"permissions needed"
],
"description": "The display status of the insight."
},
"cloudProvider": {
"type": "string",
"example": "aws",
"description": "The cloud provider associated with the resource."
},
"categories": {
"description": "Categories this insight belongs to.",
"type": "array",
"items": {
"type": "string",
"description": "The insight category.",
"enum": [
"FinOps",
"Operational excellence",
"Performance efficiency",
"Reliability",
"Security",
"Sustainability"
]
}
},
"summary": {
"type": "object",
"description": "Aggregate summary of risks and savings across all resource results for an insight.",
"properties": {
"operationalRisks": {
"type": "number",
"format": "double",
"description": "Total number of operational risks."
},
"performanceRisks": {
"type": "number",
"format": "double",
"description": "Total number of performance risks."
},
"potentialDailySavings": {
"type": "number",
"format": "double",
"description": "Total potential daily savings in USD."
},
"reliabilityRisks": {
"type": "number",
"format": "double",
"description": "Total number of reliability risks."
},
"securityRisks": {
"type": "number",
"format": "double",
"description": "Total number of security risks."
},
"sustainabilityRisks": {
"type": "number",
"format": "double",
"description": "Total number of sustainability risks."
}
}
},
"lastStatusChange": {
"description": "If set, this object contains the last status change made by a user for this insight",
"type": "object",
"properties": {
"userId": {
"description": "the reference to the user who made the change (if it was made by a user) If the change was made by an automated system, this reference is empty.\n",
"type": "string",
"example": "/users/0Rkrkeq5P0XLe8QFHKq2"
},
"lastChangedAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"userId",
"lastChangedAt"
]
},
"lastUpdated": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last update to this insight."
},
"tags": {
"description": "Tags for the insight, primarily used for security certification labels (e.g. ISO).",
"type": "array",
"items": {
"type": "string"
}
},
"reportUrl": {
"type": "string",
"description": "URL to an external report related to this insight."
},
"cloudFlowTemplateId": {
"type": "string",
"description": "ID of a CloudFlow template that can automate the remediation of this insight."
},
"easyWinDescription": {
"type": "string",
"description": "A description of why this insight is considered an easy win."
},
"dismissalDetails": {
"type": "object",
"description": "Details for why an insight was dismissed.",
"properties": {
"reason": {
"type": "string",
"description": "The reason for dismissal.",
"enum": [
"not relevant",
"not enough information",
"not worth the effort",
"inaccurate optimization opportunities"
]
},
"comment": {
"type": "string",
"description": "An optional free-text comment providing additional context."
}
}
}
}
}
},
"pagination": {
"type": "object",
"description": "Cursor-based pagination metadata.",
"required": [
"rowCount"
],
"properties": {
"pageToken": {
"type": "string",
"description": "Token to retrieve the next page. Absent when there are no more pages."
},
"rowCount": {
"type": "integer",
"description": "Number of items in this page."
}
}
}
}
}

Errors

On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.

HTTP statusExit codeError codeMeaning
40030VALIDATION_ERRORThe arguments or request body were rejected. Review the command's flags and payload.
40110AUTHENTICATION_FAILEDNot signed in, or the API token is invalid. Run dci login or check DCI_API_KEY.
40311PERMISSION_DENIEDThe DoiT user or the active customer context does not have access.
40420RESOURCE_NOT_FOUNDThe requested resource does not exist. Check the identifier argument.
50040API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: get-insight-results