Skip to main content

get-async-operation-results

dci get-async-operation-results operationId

Returns the result of a succeeded async report operation, including report metadata (id, reportName, owner, type, createTime, updateTime, urlUI) when the operation was started against a saved report — the same shape as the sync GetReportResponse, instead of requiring a second call to GET /analytics/v1/reports/{id}/config for it. Returns 404 if the operationId does not exist, has expired, or belongs to a different tenant. Returns 425 Too Early if the operation has not yet reached a terminal state — poll the operation status endpoint, which returns its own Retry-After guidance, until it succeeds. Returns 422 if the operation terminated as failed or canceled. The poll status endpoint response does not include result data inline — this is the only endpoint that returns it.

Output

OK — the operation succeeded; body is the report result, plus report metadata when the operation was started against a saved report.

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

FieldTypeDescription
idstringThe report's id. Present only when the operation was started against a saved report (run by id); omitted for ad hoc runs against an inline config.
reportNamestringThe report's current name, looked up at read time (not a snapshot from when the operation started). Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
ownerstringEmail address of the report owner, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
typestringPresent only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config. One of: "custom", "preset".
createTimeinteger (int64)The creation time of the report, in milliseconds since the epoch. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
updateTimeinteger (int64)The time when the report was last updated, in milliseconds since the epoch, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
urlUIstringThe URL of the report in DoiT console. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
resultobject
result.schemaarray of object
result.schema[].idstringStable allocation-group ID used to select the allocation dimension in report configurations. Omitted for other report columns.
result.schema[].namestringColumn name. Matches the corresponding value position in each row.
result.schema[].typestringWire-format type of the column values. Dimension columns use string; metric columns use float (cost, usage, saving, custom, and extended metrics) or integer (count aggregation). Time-series reports include a timestamp column. One of: "string", "float", "integer", "timestamp".
result.schema[].unitstringSemantic unit of the column values. One of: "currency", "number", "percent".
result.schema[].currencystringEffective ISO 4217 currency code when unit is currency.
result.schema[].aggregationstringAuthoritative aggregation applied to this metric column. One of: "total", "percent_total", "percent_col", "percent_row", "total_over_total", "count".
result.mlFeaturesarray of string
result.rowsarray of array of string or number or integer
result.secondaryRowsarray of array of string or number or integerSecondary time range rows.
result.forecastRowsarray of array of string or number or integer
result.cacheHitbooleanIf true, results were fetched from the cache.
Raw JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The report's id. Present only when the operation was started against a saved report (run by id); omitted for ad hoc runs against an inline config."
},
"reportName": {
"type": "string",
"description": "The report's current name, looked up at read time (not a snapshot from when the operation started). Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"owner": {
"type": "string",
"description": "Email address of the report owner, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"type": {
"type": "string",
"enum": [
"custom",
"preset"
],
"description": "Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"createTime": {
"type": "integer",
"format": "int64",
"description": "The creation time of the report, in milliseconds since the epoch. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"updateTime": {
"type": "integer",
"format": "int64",
"description": "The time when the report was last updated, in milliseconds since the epoch, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"urlUI": {
"type": "string",
"description": "The URL of the report in DoiT console. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"result": {
"type": "object",
"properties": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Schema of a report result column.",
"properties": {
"id": {
"type": "string",
"description": "Stable allocation-group ID used to select the allocation dimension in report configurations. Omitted for other report columns."
},
"name": {
"type": "string",
"description": "Column name. Matches the corresponding value position in each row."
},
"type": {
"type": "string",
"description": "Wire-format type of the column values. Dimension columns use string; metric columns use float (cost, usage, saving, custom, and extended metrics) or integer (count aggregation). Time-series reports include a timestamp column.",
"enum": [
"string",
"float",
"integer",
"timestamp"
]
},
"unit": {
"type": "string",
"description": "Semantic unit of the column values.",
"enum": [
"currency",
"number",
"percent"
]
},
"currency": {
"type": "string",
"description": "Effective ISO 4217 currency code when unit is currency.",
"example": "USD"
},
"aggregation": {
"type": "string",
"description": "Authoritative aggregation applied to this metric column.",
"enum": [
"total",
"percent_total",
"percent_col",
"percent_row",
"total_over_total",
"count"
]
}
}
}
},
"mlFeatures": {
"type": "array",
"items": {
"type": "string",
"enum": [
"increasing",
"decreasing",
"none",
"forecast"
]
}
},
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"secondaryRows": {
"type": "array",
"description": "Secondary time range rows.",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"forecastRows": {
"type": "array",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"cacheHit": {
"type": "boolean",
"description": "If true, results were fetched from the cache."
}
}
}
}
}

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
400, 42230VALIDATION_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.
4251API_ERRORThe request failed; the printed error message has details.
50040API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: getasyncoperationresults