Skip to content
Akedly
Command reference

Reports

Akedly CLI command reference: Reports.

reports list

Review a self-service report belonging to your account.

When to use

  • Use to list a report you own or that has been sent to you.

How it works

  1. List your own self-service reports and sent admin/system reports; page defaults to 1 and limit to 100 (CLI maximum 100). Supply both --start-date and --end-date or neither; the server filters stored report-period bounds using UTC ISO date-only strings. Listing can mark stale generating reports failed. --all uses the shared Pagination rules in akedly agent-guide. List rows omit stored HTML; use reports get or html for content. Rows include structured analytics, recommendations, aiInsights and the opened flag; opened false marks an unopened report, while the badge counts only visible completed/sent reports with opened not true. --fields does not project inside row arrays. Read-only logins are supported.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports list

Inspect this command offline before preparing an operation:

sh
akedly describe "reports list" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--pageinteger1 to unboundedCommand-specific option; see the full command details below. Query parameter: page.
--limitinteger1 to 100Command-specific option; see the full command details below. Query parameter: limit.
--allboolean switch—Command-specific option; see the full command details below.
--statusenumgenerating | completed | failed | sentCommand-specific option; see the full command details below. Query parameter: status.
--start-datetext—Command-specific option; see the full command details below. Query parameter: startDate.
--end-datetext—Command-specific option; see the full command details below. Query parameter: endDate.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: GET /reports/me.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

List your own self-service reports and sent admin/system reports; page defaults to 1 and limit to 100 (CLI maximum 100). Supply both --start-date and --end-date or neither; the server filters stored report-period bounds using UTC ISO date-only strings. Listing can mark stale generating reports failed. --all uses the shared Pagination rules in akedly agent-guide. List rows omit stored HTML; use reports get or html for content. Rows include structured analytics, recommendations, aiInsights and the opened flag; opened false marks an unopened report, while the badge counts only visible completed/sent reports with opened not true. --fields does not project inside row arrays. Read-only logins are supported.

Login 429 guidance.

Pagination rules.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports list

Review a self-service report belonging to your account.

sh
akedly reports list

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "reports": [
      {
        "reportId": "rep_example_20261001",
        "name": "Example report",
        "status": "completed",
        "reportPeriod": {
          "startDate": "2026-10-01",
          "endDate": "2026-10-31"
        },
        "opened": false,
        "isSelfService": true,
        "recommendations": {
          "performance": [],
          "costOptimization": [],
          "securityInsights": [],
          "usageOptimization": [],
          "generatedAt": "2026-10-20T12:00:00Z",
          "version": "1.0",
          "confidence": 80
        }
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 100,
      "pages": 1,
      "total": 1
    }
  }
}

Additional command forms

sh
akedly reports list

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

List rows exclude htmlContent and htmlJs by backend projection. `recommendations` is a structured object of category arrays when present; detail HTML bodies can be absent for report types/statuses.

Common error guidance.

reports get

Review a self-service report belonging to your account.

When to use

  • Use to get a report you own or that has been sent to you.

How it works

  1. Read an owned report with its report period and HTML content. Only your self-service reports and sent admin/system reports are accessible. HTML can be large; prefer --fields data.reportId,data.name,data.status when content is not needed. For structured content without HTML, use --fields data.analytics,data.recommendations,data.aiInsights. The opened flag identifies whether this report has been opened. Read-only logins are supported.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports get <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports get" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: GET /reports/me/:reportId.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Read an owned report with its report period and HTML content. Only your self-service reports and sent admin/system reports are accessible. HTML can be large; prefer --fields data.reportId,data.name,data.status when content is not needed. For structured content without HTML, use --fields data.analytics,data.recommendations,data.aiInsights. The opened flag identifies whether this report has been opened. Read-only logins are supported.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports get

Review a self-service report belonging to your account.

sh
akedly reports get RPT-example-20261001

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "reportId": "rep_example_20261001",
    "name": "Example report",
    "status": "completed",
    "reportPeriod": {
      "startDate": "2026-10-01",
      "endDate": "2026-10-31"
    },
    "opened": false,
    "isSelfService": true,
    "htmlContent": "<html>synthetic</html>",
    "htmlJs": "<html>synthetic interactive</html>",
    "analytics": {},
    "recommendations": {
      "performance": [],
      "costOptimization": [],
      "securityInsights": [],
      "usageOptimization": [],
      "generatedAt": "2026-10-20T12:00:00Z",
      "version": "1.0",
      "confidence": 80
    },
    "aiInsights": {
      "status": "ok"
    }
  }
}

Additional command forms

sh
akedly reports get <reportId>

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

Stored report details are status/report-kind dependent. HTML bodies and analytics/recommendations/AI fields may be absent; recommendations, when present, is an object with performance, costOptimization, securityInsights, and usageOptimization arrays plus metadata.

Common error guidance.

reports unopened-count

Review a self-service report belonging to your account.

When to use

  • Use to unopened-count a report you own or that has been sent to you.

How it works

  1. Read the count of unopened reports visible to your account. Use reports list to identify the rows: the count includes visible completed/sent reports with opened not true; opened false marks an unopened list row. Read-only logins are supported.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports unopened-count

Inspect this command offline before preparing an operation:

sh
akedly describe "reports unopened-count" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: GET /reports/me/unopened-count.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Read the count of unopened reports visible to your account. Use reports list to identify the rows: the count includes visible completed/sent reports with opened not true; opened false marks an unopened list row. Read-only logins are supported.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports unopened-count

Review a self-service report belonging to your account.

sh
akedly reports unopened-count

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "count": 2
  }
}

Additional command forms

sh
akedly reports unopened-count

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

The report body contains stored report data; field availability varies by report kind and status.

Common error guidance.

reports html

Review a self-service report belonging to your account.

When to use

  • Use to html a report you own or that has been sent to you.

How it works

  1. Read interactive HTML in the JSON data.htmlJs field for an owned report; this is the same content as the browser-only interactive route. HTML can be large; use --fields data.reportId,data.name,data.status when content is not needed. For structured analytics, recommendations and aiInsights instead of HTML, use reports get <reportId> --fields data.analytics,data.recommendations,data.aiInsights. Read-only logins are supported.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports html <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports html" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: GET /reports/me/:reportId/html-js.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Read interactive HTML in the JSON data.htmlJs field for an owned report; this is the same content as the browser-only interactive route. HTML can be large; use --fields data.reportId,data.name,data.status when content is not needed. For structured analytics, recommendations and aiInsights instead of HTML, use reports get <reportId> --fields data.analytics,data.recommendations,data.aiInsights. Read-only logins are supported.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports html

Review a self-service report belonging to your account.

sh
akedly reports html RPT-example-20261001

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "reportId": "RPT-example-20261001",
    "name": "Monthly report",
    "htmlJs": "<!doctype html><html><body>synthetic</body></html>",
    "status": "completed"
  }
}

Additional command forms

sh
akedly reports html <reportId>

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

The report body contains stored report data; field availability varies by report kind and status.

Common error guidance.

reports download

Save a self-service report belonging to your account.

When to use

  • Use to download a report you own or that has been sent to you.

How it works

  1. Download an owned report PDF to required --out <new path>, exclusively at mode 0600; existing paths and symlinks, or a missing parent directory, are refused before contacting the server. The CLI validates application/pdf, %PDF- magic and a maximum of 50 MiB before writing, ignores Content-Disposition, and returns status success with data.written (the resolved absolute path) and data.bytes. A cache miss can render via Chromium and upload to Cloudinary; on prod non-KSA a download posts a staff group notification. Dry-run shows the GET preview without requests or file writes. Each download request allows up to two minutes for a cache-miss render. Read-only logins are supported.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A validated PDF file written exclusively with mode 0600 and a JSON path/size result.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports download <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports download" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--outtext—yesCommand-specific option; see the full command details below.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--helpboolean switch—noShow offline command help.
--outputenumjson | humannoSelect JSON or human output.
--fieldsdot-paths—noSelect comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: GET /reports/me/:reportId/pdf.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Download an owned report PDF to required --out <new path>, exclusively at mode 0600; existing paths and symlinks, or a missing parent directory, are refused before contacting the server. The CLI validates application/pdf, %PDF- magic and a maximum of 50 MiB before writing, ignores Content-Disposition, and returns status success with data.written (the resolved absolute path) and data.bytes. A cache miss can render via Chromium and upload to Cloudinary; on prod non-KSA a download posts a staff group notification. Dry-run shows the GET preview without requests or file writes. Each download request allows up to two minutes for a cache-miss render. Read-only logins are supported.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports download

Save a self-service report belonging to your account.

sh
akedly reports download RPT-example-20261001 --out ./report-example.pdf

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "written": "/absolute/path/akedly-report.pdf",
    "bytes": 2048
  }
}

The PDF is written to ./report-example.pdf as an exclusive local file; this JSON response reports its resolved path and byte count.

Additional command forms

sh
akedly reports download <reportId> --out report.pdf

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

Binary PDF bytes are written to --out; JSON stdout contains data.written and data.bytes.

Common error guidance.

reports generate

Generate a self-service report belonging to your account.

When to use

  • Use when you need a saved report for a bounded period, including usage analytics and recommendations.

How it works

  1. Generate your own self-service report synchronously. Required --start-date and --end-date are valid YYYY-MM-DD dates; start must be strictly before end, with at most 30 elapsed days between them. The service aligns the report period to UTC days. The report includes the whole --end-date UTC day, so --start-date 2026-10-01 --end-date 2026-10-31 covers all of October. The shortest report covers two days. Product scope defaults to otp; all includes OTP and utility. Self-service reports omit AI recommendations. No --yes is needed. Full-access logins are required; read-only logins are refused. Each request allows two minutes and is not retried automatically. The server allows five completed, sent or in-flight self-service generations per rolling 24 hours for the whole account, including dashboard and teammate generations, and one shared generation in flight; failed generations do not count. Stale generating reports are reaped after five minutes. After an ambiguous failure, check reports list before retrying; another generation can consume the limit. There is no --wait. Read the resulting report with akedly reports get <reportId>.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use akedly reports get <reportId> to inspect the resulting report.

Usage

sh
akedly reports generate

Inspect this command offline before preparing an operation:

sh
akedly describe "reports generate" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--start-datetext—yesCommand-specific option; see the full command details below. Manifest body field: sDate.
--end-datetext—yesCommand-specific option; see the full command details below. Manifest body field: eDate.
--productenumall | otp | utilitynoCommand-specific option; see the full command details below. Manifest body field: productScope.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--helpboolean switch—noShow offline command help.
--outputenumjson | humannoSelect JSON or human output.
--fieldsdot-paths—noSelect comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:generate.

Server request: POST /reports/me/generate.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

write: Non-idempotent writes are not automatically retried. guarded-write: when an update carries the revision read from the server, its write is not automatically retried after network errors or HTTP 429/502/503/504. It may already be saved; inspect the resource before rerunning. A rerun reads current settings again. The explicit CLI_RATE_LIMITED refusal exception below still applies. recommendation-read: the recommendation request made while planning --recommended-limits is not automatically retried after network errors or HTTP 429/502/503/504. If planning fails, no update is sent; rerun the command to request a new recommendation. The explicit CLI_RATE_LIMITED refusal exception below still applies. This label does not change the retry policy of the standalone rate-recommendations command.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Generate your own self-service report synchronously. Required --start-date and --end-date are valid YYYY-MM-DD dates; start must be strictly before end, with at most 30 elapsed days between them. The service aligns the report period to UTC days. The report includes the whole --end-date UTC day, so --start-date 2026-10-01 --end-date 2026-10-31 covers all of October. The shortest report covers two days. Product scope defaults to otp; all includes OTP and utility. Self-service reports omit AI recommendations. No --yes is needed. Full-access logins are required; read-only logins are refused. Each request allows two minutes and is not retried automatically. The server allows five completed, sent or in-flight self-service generations per rolling 24 hours for the whole account, including dashboard and teammate generations, and one shared generation in flight; failed generations do not count. Stale generating reports are reaped after five minutes. After an ambiguous failure, check reports list before retrying; another generation can consume the limit. There is no --wait. Read the resulting report with akedly reports get <reportId>.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports generate

Generate a self-service report belonging to your account.

sh
akedly reports generate --start-date 2026-10-01 --end-date 2026-10-31

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "reportId": "RPT-example-20261001",
    "name": "Example report",
    "status": "completed",
    "generationTime": 1.2,
    "dataPoints": 42
  }
}

Additional command forms

sh
akedly reports generate --start-date <YYYY-MM-DD> --end-date <YYYY-MM-DD>

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

Success returns only reportId, name, status, generationTime and dataPoints. It does not return the persisted report detail; fetch it with reports get.

Common error guidance.

reports send

Email a self-service report belonging to your account.

When to use

  • Use only after checking the report and saved recipients; sending emails is an outbound side effect.

How it works

  1. Email a completed or already sent owned report to the owner email and saved, consented reports recipients. Requires --yes and Full access; read-only logins are refused. Saved recipients are sent together in a single To line, even if the primary delivery returns a failure. Self-service sends skip the internal staff reports inbox. There is no deduplication: retrying can email everyone again. Success includes sentTo email addresses; keep output private. A first send renders the PDF and can take up to about two minutes. After an ambiguous failure or HTTP 400 Failed to send report email (the owner or saved recipients may already have been emailed), check reports list and the recipients before retrying. Before sending, inspect saved recipients with akedly team-notifications list.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

The completed report is emailed to the owner and saved, consented report recipients; the response may name recipients.

Next steps

  • Keep the response private because it can include recipient email addresses; check reports list before retry after ambiguous failures.

Usage

sh
akedly reports send <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports send" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--yesboolean switch—Confirm this action where consent is required.
--dry-runboolean switch—Preview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:send.

Server request: POST /reports/me/:reportId/send.

Shared server-guard guidance.

Consent

--yes. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: true.

Retry

write: Non-idempotent writes are not automatically retried. guarded-write: when an update carries the revision read from the server, its write is not automatically retried after network errors or HTTP 429/502/503/504. It may already be saved; inspect the resource before rerunning. A rerun reads current settings again. The explicit CLI_RATE_LIMITED refusal exception below still applies. recommendation-read: the recommendation request made while planning --recommended-limits is not automatically retried after network errors or HTTP 429/502/503/504. If planning fails, no update is sent; rerun the command to request a new recommendation. The explicit CLI_RATE_LIMITED refusal exception below still applies. This label does not change the retry policy of the standalone rate-recommendations command.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Email a completed or already sent owned report to the owner email and saved, consented reports recipients. Requires --yes and Full access; read-only logins are refused. Saved recipients are sent together in a single To line, even if the primary delivery returns a failure. Self-service sends skip the internal staff reports inbox. There is no deduplication: retrying can email everyone again. Success includes sentTo email addresses; keep output private. A first send renders the PDF and can take up to about two minutes. After an ambiguous failure or HTTP 400 Failed to send report email (the owner or saved recipients may already have been emailed), check reports list and the recipients before retrying. Before sending, inspect saved recipients with akedly team-notifications list.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports send

Email a self-service report belonging to your account.

sh
akedly reports send RPT-example-20261001 --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "reportId": "RPT-example-20261001",
    "sentTo": [
      "owner@example.invalid"
    ],
    "sentAt": "2026-10-20T12:00:00Z",
    "deliveryStatus": "sent"
  }
}

Additional command forms

sh
akedly reports send <reportId> --yes

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

The report body contains stored report data; field availability varies by report kind and status.

Common error guidance.

reports mark-opened

Review a self-service report belonging to your account.

When to use

  • Use to mark-opened a report you own or that has been sent to you.

How it works

  1. Mark an accessible owned report opened; repeated calls leave it opened. Only self-service reports and sent admin/system reports are accessible. Read-only logins are supported. No --yes is needed.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports mark-opened <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports mark-opened" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--dry-runboolean switch—Preview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--helpboolean switch—Show offline command help.
--outputenumjson | humanSelect JSON or human output.
--fieldsdot-paths—Select comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: POST /reports/me/:reportId/open.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Mark an accessible owned report opened; repeated calls leave it opened. Only self-service reports and sent admin/system reports are accessible. Read-only logins are supported. No --yes is needed.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports mark-opened

Review a self-service report belonging to your account.

sh
akedly reports mark-opened RPT-example-20261001

Illustrative response (sensitive values omitted):

json
{
  "status": "success"
}

Additional command forms

sh
akedly reports mark-opened <reportId>

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

The report body contains stored report data; field availability varies by report kind and status.

Common error guidance.

reports rate

Review a self-service report belonging to your account.

When to use

  • Use to rate a report you own or that has been sent to you.

How it works

  1. Rate the AI recommendations of an accessible owned report with required --rating 1 to 5, replacing any previous rating. Reports without successful AI insights return HTTP 400 NO_AI_INSIGHTS; self-service generated reports never have AI insights to rate. Read-only logins are supported. No --yes is needed. Find rateable reports with aiInsights.status "ok" in akedly reports list or akedly reports get.
  2. The CLI returns the backend report response; a PDF download is written locally to --out and its JSON stdout reports the absolute path and byte count.

Prerequisites

  • An authenticated session; report reads are owner-scoped.
  • The report must be owned by this account; system/admin reports are visible only after they have been sent.

Expected outcome

A report record or report content returned as JSON.

Next steps

  • Use reports list to find related reports and status.

Usage

sh
akedly reports rate <reportId>

Inspect this command offline before preparing an operation:

sh
akedly describe "reports rate" --output json
PositionalGrammarUsage guidance
<reportId>^RPT-[A-Za-z0-9-]{1,64}$Use the reportId from akedly reports list.

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--ratinginteger1 to 5yesCommand-specific option; see the full command details below. Manifest body field: rating.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--helpboolean switch—noShow offline command help.
--outputenumjson | humannoSelect JSON or human output.
--fieldsdot-paths—noSelect comma-separated safe dot paths; apply to each element of a root array.

Authentication, permission and guards

Auth: login. Permission: reports:read.

Server request: POST /reports/me/:reportId/ai-rating.

Shared server-guard guidance.

Consent

none. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: false. Real send: false.

Retry

idempotent: Idempotent requests retry network errors and HTTP 429/502/503/504, at most 3 tries, waiting for cooldownSeconds, retryAfter or the Retry-After header (otherwise 1 second) between tries, up to 30 seconds; a longer requested wait is returned as the error.

Output

Output: data. API output is pass-through server data unless the command details describe a CLI shape. Local commands, composites and hand-offs use their documented CLI shapes.

Full command details

Rate the AI recommendations of an accessible owned report with required --rating 1 to 5, replacing any previous rating. Reports without successful AI insights return HTTP 400 NO_AI_INSIGHTS; self-service generated reports never have AI insights to rate. Read-only logins are supported. No --yes is needed. Find rateable reports with aiInsights.status "ok" in akedly reports list or akedly reports get.

Login 429 guidance.

Worked examples

Examples are synthetic illustrations, never live account records. Replace resource IDs with your own authorized resources. Secret values are omitted here; redacted examples illustrate the shape and are not schema-validation fixtures.

Example reports rate

Review a self-service report belonging to your account.

sh
akedly reports rate RPT-example-20261001 --rating 5

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "userRating": 5,
    "userRatedAt": "2026-10-20T12:00:00.000Z"
  }
}

Additional command forms

sh
akedly reports rate <reportId> --rating 5

Input and file contracts

The contract below describes typed arguments, file formats, validation boundaries and API mappings. Boolean switches take no value; numeric and comma-separated values are each passed as one argument. Read prerequisites and full command details for state-dependent requirements.

Response contract

The report body contains stored report data; field availability varies by report kind and status.

Own recovery guidance

CodeHint
NO_AI_INSIGHTSRun akedly reports list or akedly reports get and look for aiInsights.status "ok"; self-service reports never have AI insights.

Common error guidance.