async-run-report-by-id
dci async-run-report-by-id <id> [flags]
Submits an async execution job for a saved report identified by ID. Returns 202 immediately with a Location header pointing to the operation status endpoint. Requires the Idempotency-Key header. Use ?dryRun=true to validate without creating an operation.
id— Report ID as shown bydci list-reports.
dci get-report <report-id> runs the same report synchronously and renders the
pivot table. Use the async form for long-running reports or when a script
should submit now and collect later; --time-range cannot be combined with
--start-date/--end-date.
Examples
# Run a saved report in the background (the API requires an idempotency key on every submission).
dci async-run-report-by-id <report-id> --idempotency-key "$(uuidgen)"
`operationId`, `createTime`, and `status` ("pending" or "running"). Poll with `dci get-async-operation <operation-id>`, then read the rows with `dci get-async-operation-results <operation-id>` once it is "succeeded".
# Override the report's time settings with a relative window (ISO 8601 duration, days back from today).
dci async-run-report-by-id <report-id> --time-range P30D --idempotency-key "$(uuidgen)"
# Override with an explicit date range (both dates required, yyyy-mm-dd).
dci async-run-report-by-id <report-id> --start-date 2026-01-01 --end-date 2026-01-31 --idempotency-key "$(uuidgen)"
# Validate the request without creating an operation (status "dry_run", no operationId).
dci async-run-report-by-id <report-id> --dry-run --idempotency-key "$(uuidgen)"
Flags
| Flag | Type | Default | Example | Description |
|---|---|---|---|---|
--dry-run | boolean | If true, validates the request and returns 200 without creating an operation or submitting a job. | ||
--time-range | string | P7D | An optional parameter to override the report time settings. Value should be represented in the format P[n]Y[n]M[n]D[n]. In the representations, the [n] is replaced by the value for each of the date and time elements that follow the [n]. Cannot be combined with startDate/endDate. | |
--start-date | string (date) | 2025-01-01 | An optional parameter to override the report time settings. Must be provided together with endDate. Format: yyyy-mm-dd | |
--end-date | string (date) | 2025-01-31 | An optional parameter to override the report time settings. Must be provided together with startDate. Format: yyyy-mm-dd |
Every command also accepts the CLI-wide flags for output shaping — see Output formats and Table output options.
Output
OK — dry-run only; no operation was created. The X-Dry-Run response header is set to "true".
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
operationId | string | Unique identifier for the operation. Absent on dry-run responses. |
status | string | Current lifecycle status of the operation. One of: "pending", "running", "succeeded", "failed", "canceled", "dry_run". |
createTime | string (date-time) | Time the operation was created (absent on dry-run). |
Raw JSON schema
{
"type": "object",
"description": "Response envelope for an async report operation. Returned on 202 (new operation) and 200 (dry-run). On dry-run, operationId is absent and status is \"dry_run\".",
"properties": {
"operationId": {
"type": "string",
"description": "Unique identifier for the operation. Absent on dry-run responses."
},
"status": {
"type": "string",
"enum": [
"pending",
"running",
"succeeded",
"failed",
"canceled",
"dry_run"
],
"description": "Current lifecycle status of the operation."
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "Time the operation was created (absent on dry-run)."
}
}
}
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 status to exit code mapping
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 404 | 20 | RESOURCE_NOT_FOUND | The requested resource does not exist. Check the identifier argument. |
| 500 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Related
- async-run-inline — Run a report asynchronously
- get-async-operation — Poll an async report run operation
- get-async-operation-results — Get results of an async report run operation
- cancel-async-operation — Cancel an async report run operation
- get-report — Get report results
- API reference: POST /analytics/v1/reports/{id}/actions/run
Aliases: asyncrunreportbyid