Skip to content
Akedly
Command reference

Billing, pricing, seats and customer requests

Akedly CLI command reference: Billing, pricing, seats and customer requests.

billing plan

Read the account’s assigned plan and billing balance projection before assessing available account credits or the subscription context for a billing action.

When to use

  • Use when deciding which plan and balance the logged-in account currently has.

How it works

  1. Fetches the owner-scoped billing record; response includes plan, selected billing user fields, transferred-credit estimate and top-up balance.

Prerequisites

  • An authenticated account with billing:read and an assigned billing plan.

Expected outcome

Returns the current plan and billing balance projection; it does not change a plan or move money.

Next steps

  • Use billing quota for the minimized quota view; use billing history to review subscription bills.

Usage

sh
akedly billing plan

Inspect this command offline before preparing an operation:

sh
akedly describe "billing plan" --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: billing:read.

Server request: GET /billing/user/:userID.

Owner parameters resolved from the CLI Login: userID.

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 your account billing plan and current balance projection. The account id is resolved from your login.

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.

Synthetic CLI use

Use when deciding which plan and balance the logged-in account currently has.

sh
akedly billing plan

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "transferredCredits": 0,
    "replacesBalanceOnPurchase": false,
    "plan": {
      "name": "Example",
      "duration": "monthly",
      "quota": 1000,
      "price": 500
    },
    "user": {
      "_id": "507f1f77bcf86cd799439011",
      "remainingQuota": 800,
      "lastTopUpBalance": 100,
      "billingPlanID": "507f1f77bcf86cd799439012",
      "pricingModel": "granular",
      "verified": true,
      "active": true
    },
    "topUpBalance": 100
  }
}

Returns the current plan and billing balance projection; it does not change a plan or move money.

Additional command forms

sh
akedly billing plan

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Plan may be null if the account references a plan row that no longer resolves; optional user projection properties can be omitted when absent.

Common error guidance.

billing quota

Read the account’s compact plan and quota summary to see current remaining quota and top-up balance.

When to use

  • Use for a quick account balance check or before asking for a demo extension.

How it works

  1. Fetches plan name, duration, quota and price plus the quota projection; does not expose full billing user details.

Prerequisites

  • Authenticated account with billing_quota:read and an assigned plan.

Expected outcome

Returns plan and quota projection without changing credits.

Next steps

  • Use billing plan for broader billing context; use demo-extension status to check a request.

Usage

sh
akedly billing quota

Inspect this command offline before preparing an operation:

sh
akedly describe "billing quota" --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: billing_quota:read.

Server request: GET /billing/quota/:userID.

Owner parameters resolved from the CLI Login: userID.

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 minimized plan/quota projection and top-up balance for your account. The account id is resolved from your login.

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.

Synthetic CLI use

Use for a quick account balance check or before asking for a demo extension.

sh
akedly billing quota

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "plan": {
      "_id": "507f1f77bcf86cd799439012",
      "name": "Example",
      "duration": "monthly",
      "quota": 1000,
      "price": 500
    },
    "quota": {
      "subDate": "2026-10-01T00:00:00.000Z",
      "remainingQuota": 800,
      "topUpBalance": 100
    }
  }
}

Returns plan and quota projection without changing credits.

Additional command forms

sh
akedly billing quota

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

billing history

Review subscription bill records for the account, including credits applied where recorded.

When to use

  • Use when reconciling past subscription billing events.

How it works

  1. Returns all customer-visible subscription bills and their associated projected plan; endpoint has no pagination.

Prerequisites

  • Authenticated account with billing:read.

Expected outcome

Returns the complete unpaginated subscription bill list; this is a read only.

Next steps

  • For current balances use billing quota; do not infer current balance from historical bills.

Usage

sh
akedly billing history

Inspect this command offline before preparing an operation:

sh
akedly describe "billing history" --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: billing:read.

Server request: GET /billing/user/history/:userID.

Owner parameters resolved from the CLI Login: userID.

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 all subscription bills for your account, including creditedAt when available. This endpoint has no pagination.

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.

Synthetic CLI use

Use when reconciling past subscription billing events.

sh
akedly billing history

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": [
    {
      "_id": "507f1f77bcf86cd799439013",
      "type": "Subscription",
      "amount": 500,
      "unit": "Monthly",
      "creationDate": "2026-10-01T00:00:00.000Z",
      "billingPlanID": "507f1f77bcf86cd799439012",
      "merchantOrderID": "example-order-1",
      "planName": "Example",
      "planGrant": 500,
      "quotaBefore": 0,
      "quotaAfter": 500,
      "creditedAt": null,
      "paymentMethod": "card",
      "paymobTransactionID": "example-paymob-transaction",
      "billingPlan": {
        "_id": "507f1f77bcf86cd799439012",
        "name": "Example",
        "duration": "monthly",
        "quota": 500,
        "price": 500
      }
    }
  ]
}

Returns the complete unpaginated subscription bill list; this is a read only.

Additional command forms

sh
akedly billing history

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Customer bill rows use creationDate (not createdAt); the attached billingPlan is the customer projection and its duration is a string.

Common error guidance.

billing startup-package

Check whether the account can see or select the Startup Package and whether it is currently on that package.

When to use

  • Use before deciding whether the Startup Package card should be available to this account.

How it works

  1. Reads customer-safe eligibility booleans and returns plan information only when the account may view it; response intentionally omits staff refusal reasons.

Prerequisites

  • Authenticated account with billing:read.

Expected outcome

Returns eligibility visibility state without activating or requesting a package.

Next steps

  • If eligible and interested, use the dashboard package flow; this command itself does not purchase.

Usage

sh
akedly billing startup-package

Inspect this command offline before preparing an operation:

sh
akedly describe "billing startup-package" --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: billing:read.

Server request: GET /billing/startup-package/eligibility.

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 your account Startup Package eligibility without requesting or activating a package.

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.

Synthetic CLI use

Use before deciding whether the Startup Package card should be available to this account.

sh
akedly billing startup-package

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "mayViewPlan": true,
    "eligible": true,
    "isOnStartupPackage": false,
    "showsVolumeSignpost": false,
    "plan": {
      "planId": "507f1f77bcf86cd799439012",
      "name": "Startup Package",
      "price": 0,
      "quota": 1000,
      "localRate": 0.25,
      "maxMonthlyOtps": 2000,
      "purchaseWindowDays": 30,
      "duration": "Yearly",
      "expiryMonths": 3
    },
    "purchaseWindowApplies": true
  }
}

Returns eligibility visibility state without activating or requesting a package.

Additional command forms

sh
akedly billing startup-package

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

billing payg-limits

Read the public minimum and maximum EGP top-up and the published PAYG rates before preparing a dashboard top-up.

When to use

  • Use to explain the allowed amount range and rates without signing in.

How it works

  1. Reads public PAYG configuration; no checkout is opened and no payment is created.

Prerequisites

  • Network access to the configured Akedly API; no login required.

Expected outcome

Returns EGP amount bounds, rates and duration only.

Next steps

  • Choose an integer within the returned amount bounds, then use billing top-up to print a dashboard handoff.

Usage

sh
akedly billing payg-limits

Inspect this command offline before preparing an operation:

sh
akedly describe "billing payg-limits" --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: public. Permission: none declared.

Server request: GET /payments/payg-config.

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 public PAYG top-up limits and rates. Top-up amounts are EGP; this read creates no payment.

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.

Synthetic CLI use

Use to explain the allowed amount range and rates without signing in.

sh
akedly billing payg-limits

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "minAmount": 50,
    "maxAmount": 2000,
    "nationalRate": 2.5,
    "internationalRate": 12,
    "totpRate": 0.25,
    "duration": "Yearly"
  }
}

Returns EGP amount bounds, rates and duration only.

Additional command forms

sh
akedly billing payg-limits

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

billing top-up

Prepare a dashboard handoff for a requested EGP PAYG top-up; the CLI never creates checkout or processes payment.

When to use

  • Use when an account owner plans to top up, and needs a dashboard link for a chosen integer EGP amount.

How it works

  1. Requires explicit --yes, prints a dashboard path/link, and optionally polls the account balance. Wait can only verify a balance change meeting the coarse rule; it cannot identify amount paid or failed/abandoned checkout.

Prerequisites

  • Authenticated account with billing:read; amount within configured PAYG bounds; dashboard payment still requires billing:pay.

Expected outcome

Prints a handoff object; with --wait adds verification poll count/time, not payment proof for the requested amount.

Next steps

  • Open the dashboard manually and complete checkout; then inspect billing plan or dashboard balance. Never retry payment based solely on wait timeout.

Usage

sh
akedly billing top-up

Inspect this command offline before preparing an operation:

sh
akedly describe "billing top-up" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--amount-egpinteger50 to 2000yesCommand-specific option; see the full command details below.
--yesboolean switch—noConfirm this action where consent is required.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--waitboolean switch—noCommand-specific option; see the full command details below.
--timeoutseconds—noCommand-specific option; see the full command details below.
--ksaboolean switch—noSelect the KSA deployment.
--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: billing:read.

Dashboard path: /admin/billing. Status check: billing plan.

Shared server-guard guidance.

Consent

--yes. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: true. 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

Print a link to the dashboard to top up the requested integer amount in EGP (50 to 2000). The CLI creates no checkout and never processes a payment. Requires --yes. --wait observes an authenticated top-up change; it cannot see declined or abandoned payments. --wait confirms that a top-up landed (your last top-up balance changed or your balance rose by at least the minimum top-up), not the amount or that your requested payment succeeded; confirm in the dashboard. Printing the link does not open a browser. Paying in the dashboard requires billing:pay; this CLI hand-off only reads billing:read or owner-only seat state.

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.

Synthetic CLI use

Use when an account owner plans to top up, and needs a dashboard link for a chosen integer EGP amount.

sh
akedly billing top-up --amount-egp 100 --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "handoff": {
      "action": "billing top-up",
      "path": "/admin/billing",
      "url": "https://app.akedly.io/admin/billing",
      "requested": "Top up 100 EGP in the dashboard."
    }
  }
}

Prints a handoff object; with --wait adds verification poll count/time, not payment proof for the requested amount.

Additional command forms

sh
akedly billing top-up --amount-egp 100 --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

With --wait, a verified state-change response also has waited.outcome, waited.polls and waited.elapsedSeconds. It confirms only the stated balance/seat/term change detector; it does not establish payment amount or provider outcome.

Common error guidance.

pricing rates

Inspect effective per-account rate rows for an OTP or utility product, optionally narrowed to channel, provider and destination country.

When to use

  • Use to compare the rates the account’s current pricing configuration resolves for a specific delivery slice.

How it works

  1. Sends supplied server filters as query parameters; country normalization and eligible provider/rate selection happen server-side. OTP lookup requires granular pricing enabled on the account.

Prerequisites

  • Authenticated login with ana_rates_explorer:read; OTP requires granular pricing model, while utility lookup is allowed for legacy model.

Expected outcome

Returns an array of effective rate rows, possibly empty when no active matching rate exists.

Next steps

  • Use pricing countries to find countries with active rows; this is read-only and does not quote an actual transaction.

Usage

sh
akedly pricing rates

Inspect this command offline before preparing an operation:

sh
akedly describe "pricing rates" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--productenumotp | utilityCommand-specific option; see the full command details below. Query parameter: product.
--channeltext—Command-specific option; see the full command details below. Query parameter: channel.
--providertext—Command-specific option; see the full command details below. Query parameter: provider.
--countrytext—Command-specific option; see the full command details below. Query parameter: country.
--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: ana_rates_explorer:read.

Server request: GET /pricing/rates.

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 effective rates for your account. --product defaults to otp; utility is also supported. --channel, --provider and --country are server filters; country is normalized to uppercase by the server. OTP rates require the granular pricing model on the account.

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.

Synthetic CLI use

Use to compare the rates the account’s current pricing configuration resolves for a specific delivery slice.

sh
akedly pricing rates --product utility --channel sms --country EG

Illustrative response (sensitive values omitted):

json
[
  {
    "channel": "sms",
    "provider": "cequens",
    "country": "EG",
    "countryName": "Egypt",
    "currency": "EGP",
    "akedlySellingPrice": null,
    "apiVersionMultipliers": {},
    "effectiveDate": "2026-10-30T00:00:00.000Z",
    "obfuscated": true,
    "priceRange": {
      "min": 0.5,
      "max": 1.2
    }
  }
]

Returns an array of effective rate rows, possibly empty when no active matching rate exists.

Additional command forms

sh
akedly pricing rates

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

pricing countries

Find countries that currently have active effective pricing for OTP or utility.

When to use

  • Use before building a country list for quotation requests or narrowing rate inspection.

How it works

  1. Fetches active countries represented by active effective provider rates for the selected product, sorted by country name. OTP requires granular pricing enabled.

Prerequisites

  • Authenticated login with ana_rates_explorer:read; OTP requires granular pricing model; utility lookup is allowed otherwise.

Expected outcome

Returns an array of {isoCode,name}; may be empty.

Next steps

  • Pass a returned ISO code to pricing rates or quotation-requests create.

Usage

sh
akedly pricing countries

Inspect this command offline before preparing an operation:

sh
akedly describe "pricing countries" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--productenumotp | utilityCommand-specific option; see the full command details below. Query parameter: product.
--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: ana_rates_explorer:read.

Server request: GET /pricing/countries.

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 countries with active rates for --product (otp by default, or utility). OTP rates require the granular pricing model on the account.

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.

Synthetic CLI use

Use before building a country list for quotation requests or narrowing rate inspection.

sh
akedly pricing countries --product utility

Illustrative response (sensitive values omitted):

json
[
  {
    "isoCode": "EG",
    "name": "Egypt"
  }
]

Returns an array of {isoCode,name}; may be empty.

Additional command forms

sh
akedly pricing countries

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

pricing exchange-rate

Read the service’s current global USD-to-EGP exchange rate.

When to use

  • Use when interpreting USD-derived rate fields converted to EGP.

How it works

  1. Returns a single numeric USD-to-EGP rate; requires login but no rate-explorer permission.

Prerequisites

  • Authenticated login.

Expected outcome

Returns {usdToEgp}; does not initiate any conversion or transaction.

Next steps

  • Read pricing rates for account-specific rate rows.

Usage

sh
akedly pricing exchange-rate

Inspect this command offline before preparing an operation:

sh
akedly describe "pricing exchange-rate" --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: none declared.

Server request: GET /pricing/exchange-rate.

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 global USD-to-EGP exchange rate. Requires login and is available to read-only logins.

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.

Synthetic CLI use

Use when interpreting USD-derived rate fields converted to EGP.

sh
akedly pricing exchange-rate

Illustrative response (sensitive values omitted):

json
{
  "usdToEgp": 50.25
}

Returns {usdToEgp}; does not initiate any conversion or transaction.

Additional command forms

sh
akedly pricing exchange-rate

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

quotation-requests list

Review country-specific quote requests already filed by this account, newest first.

When to use

  • Use after submission or an ambiguous CLI failure to verify whether a staff quotation request exists before repeating it.

How it works

  1. Returns all customer-owned quotation requests without pagination or filters, including country sections and lifecycle timestamps.

Prerequisites

  • Authenticated account with quotation_requests:read.

Expected outcome

Returns a raw array; empty array means no matching customer requests.

Next steps

  • Wait for staff to contact the account; create a new request only for a distinct request.

Usage

sh
akedly quotation-requests list

Inspect this command offline before preparing an operation:

sh
akedly describe "quotation-requests list" --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: quotation_requests:read.

Server request: GET /quotation-requests.

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 your account customer quotation requests, newest first. Returns the full list with no pagination or filters.

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.

Synthetic CLI use

Use after submission or an ambiguous CLI failure to verify whether a staff quotation request exists before repeating it.

sh
akedly quotation-requests list

Illustrative response (sensitive values omitted):

json
[
  {
    "_id": "507f1f77bcf86cd799439014",
    "countrySections": [
      {
        "country": "EG",
        "channels": [
          "sms"
        ],
        "estimatedVolume": 1000,
        "hasOfficialPapers": false,
        "trafficTier": null
      }
    ],
    "estimatedMonthlyVolume": 1000,
    "annualProjection": 12000,
    "status": "pending",
    "createdAt": "2026-10-30T12:00:00.000Z"
  }
]

Returns a raw array; empty array means no matching customer requests.

Additional command forms

sh
akedly quotation-requests 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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

quotation-requests create

Submit one country’s requested OTP or utility delivery mix and expected monthly volume for staff quotation follow-up.

When to use

  • Use when the account needs pricing discussion for a concrete country/channel/volume combination.

How it works

  1. Builds one countrySections entry from flags, defaults product to otp, creates a request and sends staff notification. --yes authorizes a real notification; ambiguous failures are not automatically retried.

Prerequisites

  • Authenticated account with quotation_requests:create; valid ISO country code, one or more allowed channels and positive monthly volume.

Expected outcome

Returns the created request ID, generated summary paragraph, monthly volume total and annual projection; this is a request for contact, not an offered price.

Next steps

  • Check quotation-requests list before retrying; staff follow-up determines any actual quote.

Usage

sh
akedly quotation-requests create

Inspect this command offline before preparing an operation:

sh
akedly describe "quotation-requests create" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--countrytext—yesCommand-specific option; see the full command details below. Manifest body field: countrySections.0.country.
--channelstext—yesCommand-specific option; see the full command details below. Manifest body field: countrySections.0.channels.
--estimated-volumeinteger1 to unboundedyesCommand-specific option; see the full command details below. Manifest body field: countrySections.0.estimatedVolume.
--has-official-papersboolean switch—noCommand-specific option; see the full command details below. Manifest body field: countrySections.0.hasOfficialPapers.
--traffic-tierenumprimary | secondary | minornoCommand-specific option; see the full command details below. Manifest body field: countrySections.0.trafficTier.
--productenumotp | utilitynoCommand-specific option; see the full command details below. Manifest body field: product.
--notestext—noCommand-specific option; see the full command details below. Manifest body field: notes.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--yesboolean switch—noConfirm this action where consent is required.
--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: quotation_requests:create.

Server request: POST /quotation-requests.

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

Submit one country section to staff and send a real quotation notification. Requires --yes and never retries an ambiguous failure. --channels is comma-separated whatsapp,sms,email,telegram; --estimated-volume is a positive monthly whole number. --has-official-papers applies only when WhatsApp is selected. --traffic-tier is primary, secondary or minor; --product defaults to otp. Check quotation-requests list before retrying. --country is an ISO country code such as EG; akedly pricing countries lists them. Each successful run files a separate quotation request and notifies staff; check akedly quotation-requests list before repeating.

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.

Synthetic CLI use

Use when the account needs pricing discussion for a concrete country/channel/volume combination.

sh
akedly quotation-requests create --country EG --channels sms --estimated-volume 1000 --yes

Illustrative response (sensitive values omitted):

json
{
  "_id": "507f1f77bcf86cd799439015",
  "generatedParagraph": "Example request summary",
  "estimatedMonthlyVolume": 1000,
  "annualProjection": 12000
}

Returns the created request ID, generated summary paragraph, monthly volume total and annual projection; this is a request for contact, not an offered price.

Additional command forms

sh
akedly quotation-requests create --country EG --channels sms --estimated-volume 1000 --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

demo-extension status

Check the latest demo-credit extension request for the logged-in account.

When to use

  • Use after requesting free demo credits or before retrying an ambiguous submit.

How it works

  1. Reads the account-scoped latest request and returns a customer-safe request projection or null.

Prerequisites

  • Authenticated account with billing:pay; read-only logins cannot access this route.

Expected outcome

Returns success envelope with request object or null; approval is not implied.

Next steps

  • If pending, wait for staff; if declined, a new eligible request can be submitted.

Usage

sh
akedly demo-extension status

Inspect this command offline before preparing an operation:

sh
akedly describe "demo-extension status" --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: billing:pay.

Server request: GET /demo-extension/status/:userId.

Owner parameters resolved from the CLI Login: userId.

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 latest demo-extension request status for your account. This GET requires billing:pay, so read-only logins are refused with CLI_READ_ONLY.

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.

Synthetic CLI use

Use after requesting free demo credits or before retrying an ambiguous submit.

sh
akedly demo-extension status

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "request": null
  }
}

Returns success envelope with request object or null; approval is not implied.

Synthetic first-check state: no request exists, so request is null.

Additional command forms

sh
akedly demo-extension status

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

A new account with no request receives data.request: null.

Common error guidance.

demo-extension request

Ask staff to consider free demo credits when a demo account’s trial ended or credits ran out.

When to use

  • Use only when a demo evaluation cannot proceed because trial time/credits are exhausted.

How it works

  1. Optionally submits a trimmed reason and creates a staff request with real staff email/group notifications; requires --yes. It does not grant credits immediately. Pending requests block duplicates.

Prerequisites

  • Eligible demo account, not a sub-account drawing credits from a parent; authenticated billing:pay login.

Expected outcome

Returns customer-visible request state; no credits are granted by acceptance of the HTTP request.

Next steps

  • Check demo-extension status and wait for staff; do not duplicate a pending request.

Usage

sh
akedly demo-extension request

Inspect this command offline before preparing an operation:

sh
akedly describe "demo-extension request" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--messagetext—Command-specific option; see the full command details below. Manifest body field: message.
--dry-runboolean switch—Preview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--yesboolean switch—Confirm this action where consent is required.
--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: billing:pay.

Server request: POST /demo-extension/request.

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

Ask staff for free demo credits (the dashboard's 'Request Free Credits'); only for demo accounts whose trial ended or whose credits ran out; any other account is refused with DEMO_EXTENSION_NOT_ELIGIBLE (HTTP 409). Put the reason in --message (optional, 1 to 500 characters). This sends real staff notifications and requires --yes. A pending request is refused with HTTP 409 and the message 'Request already pending'; a declined one can be filed again. Nothing is granted immediately; check demo-extension status before retrying an ambiguous failure. Read-only logins receive CLI_READ_ONLY. A successful repeat files a separate request and notifies staff; check akedly demo-extension status first, and do not repeat while a request is pending.

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.

Synthetic CLI use

Use only when a demo evaluation cannot proceed because trial time/credits are exhausted.

sh
akedly demo-extension request --message 'More evaluation time' --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "request": {
      "_id": "507f1f77bcf86cd799439017",
      "status": "pending",
      "message": "More evaluation time",
      "createdAt": "2026-10-30T12:00:00.000Z",
      "updatedAt": "2026-10-30T12:00:00.000Z",
      "respondedAt": null,
      "companyName": null
    }
  }
}

Returns customer-visible request state; no credits are granted by acceptance of the HTTP request.

Additional command forms

sh
akedly demo-extension request --message "More evaluation time" --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Own recovery guidance

CodeHint
DEMO_EXTENSION_NOT_ELIGIBLERun akedly billing quota to inspect the current plan and credits. Free demo credits are only available for demo accounts whose trial ended or whose credits ran out.
API_ERRORIf the message says 'Request already pending', check akedly demo-extension status and wait for staff. After an ambiguous failure, check akedly demo-extension status before repeating; a successful repeat files a separate request and notifies staff.

Common error guidance.

seats visibility

Read the narrow team-seat subscription badge for the current account’s organization.

When to use

  • Use when a member needs to confirm whether a seat subscription exists without purchase or order details.

How it works

  1. Returns status, seat count, term end/length and source only; requires org-admin access.

Prerequisites

  • Authenticated organization administrator; org membership checks may cache role changes for up to 60 seconds.

Expected outcome

Returns subscription object or null.

Next steps

  • For owner purchase/provisioning order state, use seats status.

Usage

sh
akedly seats visibility

Inspect this command offline before preparing an operation:

sh
akedly describe "seats visibility" --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: none declared.

Server request: GET /enterprise/seats/visibility.

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 narrow seat subscription visibility for your organization, without purchase or order details. Requires organization-admin access; personal and staff-approved logins without an organization receive ORG_ADMIN_REQUIRED. Role changes can take up to 60 seconds to apply because membership checks are cached.

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.

Synthetic CLI use

Use when a member needs to confirm whether a seat subscription exists without purchase or order details.

sh
akedly seats visibility

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "subscription": {
      "status": "active",
      "seats": 3,
      "termEnd": "2026-12-01T00:00:00.000Z",
      "termLength": "monthly",
      "source": "paid"
    }
  }
}

Returns subscription object or null.

Additional command forms

sh
akedly seats visibility

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

For complimentary subscriptions, termEnd and termLength are null because the term is open-ended.

Common error guidance.

seats status

Inspect the account owner’s latest first-purchase order and current seat subscription state.

When to use

  • Use before selecting buy/add/renew and after a dashboard payment handoff.

How it works

  1. Returns provisioned flag, most recent new-purpose purchase projection and subscription projection, including renewal preference and scheduled reduction.

Prerequisites

  • Authenticated account owner; does not accept an order identifier or read another account.

Expected outcome

Returns null purchase/subscription when none exists; provisioned is false until server-side provisioning completes.

Next steps

  • Choose buy for absent/ended term; add for active term; renew for eligible existing term.

Usage

sh
akedly seats status

Inspect this command offline before preparing an operation:

sh
akedly describe "seats status" --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: none declared.

Server request: GET /enterprise/subscription/status.

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 account owner latest first-purchase and seat subscription status. Owner-only: non-owner members receive OWNER_REQUIRED. This read creates no checkout and accepts no merchant order flag.

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.

Synthetic CLI use

Use before selecting buy/add/renew and after a dashboard payment handoff.

sh
akedly seats status

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "provisioned": true,
    "purchase": {
      "merchantOrderID": "order-example-1",
      "status": "provisioned",
      "seats": 3,
      "termLength": "monthly"
    },
    "subscription": {
      "status": "active",
      "seats": 3,
      "termStart": "2026-10-01T00:00:00.000Z",
      "termEnd": "2026-11-01T00:00:00.000Z",
      "termLength": "monthly",
      "source": "paid",
      "notRenewing": false,
      "pendingSeats": null
    }
  }
}

Returns null purchase/subscription when none exists; provisioned is false until server-side provisioning completes.

Additional command forms

sh
akedly seats status

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

For complimentary subscriptions, termEnd and termLength are null; those nulls describe an open-ended term.

Common error guidance.

seats quote

Preview the prorated cost to add a number of seats during the active term.

When to use

  • Use to estimate the server-priced add-seat amount before deciding to hand off to dashboard.

How it works

  1. Submits seat delta to quote endpoint, which prices only active subscription remainder from its snapshotted per-seat monthly piastres; no checkout/order is created.

Prerequisites

  • Authenticated account owner, active billable term with days remaining and total seats below 20. Read-only login may use quote endpoint.

Expected outcome

Returns purpose add, delta and integer piastres plus EGP amount and remaining-term proration values.

Next steps

  • If proceeding, seats add uses the same delta meaning and opens dashboard handoff.

Usage

sh
akedly seats quote

Inspect this command offline before preparing an operation:

sh
akedly describe "seats quote" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--seatsinteger1 to 19yesCommand-specific option; see the full command details below. Manifest body field: seats.
--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: none declared.

Server request: POST /enterprise/seats/quote.

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

Preview the prorated price of adding --seats to an active subscription; this creates no checkout, charge or quote record. Owner-only; read-only logins may use it. --seats is a delta from 1 to 19; the server also enforces the total seat ceiling and remaining term. HTTP 409 means there is no active subscription.

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.

Synthetic CLI use

Use to estimate the server-priced add-seat amount before deciding to hand off to dashboard.

sh
akedly seats quote --seats 1

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "purpose": "add",
    "extraSeats": 1,
    "currentSeats": 2,
    "newTotal": 3,
    "term": "monthly",
    "daysRemaining": 8,
    "daysInTerm": 32,
    "pricePerSeatPiastres": 10000,
    "amountEGP": 25,
    "amountPiastres": 2500
  }
}

Returns purpose add, delta and integer piastres plus EGP amount and remaining-term proration values.

Additional command forms

sh
akedly seats quote --seats 2

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

seats renew-quote

Preview current-price full-term renewal for a requested new total seat count and monthly/annual term.

When to use

  • Use when comparing the current renewal amount before opening dashboard renewal.

How it works

  1. Returns a fresh full-term quote at current configured prices; no order, charge or saved quote. Member minimum and scheduled reduction caps are enforced at checkout, not preview.

Prerequisites

  • Authenticated account owner with active, grace or lapsed subscription; seats 1–19 and term monthly/annual.

Expected outcome

Returns purpose renew and price components; all piastres values are integer hundredths of EGP.

Next steps

  • Use seats renew with the same new total/term if proceeding; verify member floor and scheduled reduction first.

Usage

sh
akedly seats renew-quote

Inspect this command offline before preparing an operation:

sh
akedly describe "seats renew-quote" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--seatsinteger1 to 19yesCommand-specific option; see the full command details below. Manifest body field: seats.
--termenummonthly | annualyesCommand-specific option; see the full command details below. Manifest body field: term.
--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: none declared.

Server request: POST /enterprise/seats/renew/quote.

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

Preview renewal at current prices for --seats (1 to 19) and --term monthly or annual. Creates no checkout, charge or quote record. Owner-only; read-only logins may use it. Requires an active, grace or lapsed subscription; the member floor is enforced at checkout rather than this preview. A scheduled reduction (seats set-reduction) is enforced at checkout, not in this preview.

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.

Synthetic CLI use

Use when comparing the current renewal amount before opening dashboard renewal.

sh
akedly seats renew-quote --seats 3 --term monthly

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "purpose": "renew",
    "seats": 3,
    "term": "monthly",
    "months": 1,
    "pricePerSeatEGP": 100,
    "pricePerSeatPiastres": 10000,
    "amountEGP": 300,
    "amountPiastres": 30000
  }
}

Returns purpose renew and price components; all piastres values are integer hundredths of EGP.

Additional command forms

sh
akedly seats renew-quote --seats 3 --term monthly

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

seats set-renewal

Turn term-end renewal reminders off or on for the owner’s team-seat subscription.

When to use

  • Use when changing reminder preference while understanding the term end remains unchanged.

How it works

  1. Maps --renewal-reminders off to notRenewing=true and on to false; only updates preference/reminders, does not cancel access or charge.

Prerequisites

  • Authenticated owner with an entitled team seat subscription; owner-only and not available to read-only login.

Expected outcome

Returns the saved notRenewing boolean.

Next steps

  • Check seats status to confirm; seats still end at term end unless renewed regardless of reminder setting.

Usage

sh
akedly seats set-renewal

Inspect this command offline before preparing an operation:

sh
akedly describe "seats set-renewal" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--renewal-remindersenumon | offyesCommand-specific option; see the full command details below. Manifest body field: notRenewing.
--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: none declared.

Server request: PUT /enterprise/subscription/renewal.

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

--renewal-reminders off stops the term-end renewal reminders; your seats still end at the term end unless you renew, and nothing is cancelled or charged. on turns reminders back on. Comped terms get no reminders. Owner-only; read-only logins are refused.

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.

Synthetic CLI use

Use when changing reminder preference while understanding the term end remains unchanged.

sh
akedly seats set-renewal --renewal-reminders off

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "notRenewing": true
  }
}

Returns the saved notRenewing boolean.

Additional command forms

sh
akedly seats set-renewal --renewal-reminders off

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

seats set-reduction

Schedule a lower maximum seat total for the next renewal, or clear a previously scheduled reduction.

When to use

  • Use when planning fewer seats at renewal; --seats is the new total cap, not number of seats to remove.

How it works

  1. Stores pendingSeats for renewal; does not remove seats mid-term or refund money. Clearing sends pendingSeats:null and needs no confirmation; scheduling requires --yes.

Prerequisites

  • Authenticated owner with subscription; target cap must be below current seats and at least current org member count at renewal.

Expected outcome

Returns pendingSeats and current seats.

Next steps

  • Check seats status; remove excess members before renewal or clear the cap if it would block checkout.

Usage

sh
akedly seats set-reduction

Inspect this command offline before preparing an operation:

sh
akedly describe "seats set-reduction" --output json

Flags

FlagTypeEnum / rangeDescription
--ksaboolean switch—Select the KSA deployment.
--seatsinteger1 to 19Command-specific option; see the full command details below. Manifest body field: pendingSeats.
--clearboolean switch—Command-specific option; see the full command details below. Manifest body field: pendingSeats.
--dry-runboolean switch—Preview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--yesboolean switch—Confirm this action where consent is required.
--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: none declared.

Server request: PUT /enterprise/subscription/pending-seats.

Shared server-guard guidance.

Consent

--yes when --seats is given. --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

Cap your next renewal at --seats N, the new seat total (fewer than your current seats), not the number to remove; unlike seats quote, where --seats is the number to add. Needs --yes. --clear cancels a scheduled reduction and needs no --yes. Use exactly one. Nothing is removed or refunded mid-term; the renewal checkout refuses more than N seats until you clear it. Owner-only; read-only logins are refused. N must be at least your current member count, or the renewal is refused until you clear the cap or remove members.

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.

Synthetic CLI use

Use when planning fewer seats at renewal; --seats is the new total cap, not number of seats to remove.

sh
akedly seats set-reduction --seats 2 --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "pendingSeats": 2,
    "seats": 5
  }
}

Returns pendingSeats and current seats.

Additional command forms

sh
akedly seats set-reduction --seats 2 --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

seats buy

Prepare dashboard checkout handoff for a new seat subscription with the requested total seats and term.

When to use

  • Use for a first paid purchase or after a prior term ended; --seats means total seats.

How it works

  1. Prints dashboard handoff only; CLI creates no checkout or payment. Optional wait checks for a new active/provisioned state, which does not prove requested amount or payment success.

Prerequisites

  • Authenticated owner; choose 1–19 seats and monthly/annual term; comped subscriptions require support, not paid checkout.

Expected outcome

Returns handoff and optionally waited verification metadata.

Next steps

  • Open dashboard path and finish checkout there; verify seats status afterward.

Usage

sh
akedly seats buy

Inspect this command offline before preparing an operation:

sh
akedly describe "seats buy" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--seatsinteger1 to 19yesCommand-specific option; see the full command details below.
--termenummonthly | annualyesCommand-specific option; see the full command details below.
--yesboolean switch—noConfirm this action where consent is required.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--waitboolean switch—noCommand-specific option; see the full command details below.
--timeoutseconds—noCommand-specific option; see the full command details below.
--ksaboolean switch—noSelect the KSA deployment.
--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: none declared.

Dashboard path: /enterprise. Status check: seats status.

Shared server-guard guidance.

Consent

--yes. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: true. 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

Print a link to the dashboard to buy --seats as the new total for --term. Requires --yes; no checkout is created by the CLI. Owner-only. --wait observes a new active subscription or a changed provisioned purchase. Comped subscriptions need support rather than a paid checkout. The CLI cannot see declined or abandoned payments. Printing the link does not open a browser. Paying in the dashboard is owner-only, like this command. --wait confirms that a seat change landed, not the requested seat count or that your requested payment succeeded; confirm in the dashboard.

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.

Synthetic CLI use

Use for a first paid purchase or after a prior term ended; --seats means total seats.

sh
akedly seats buy --seats 3 --term monthly --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "handoff": {
      "action": "seats buy",
      "path": "/enterprise",
      "url": "https://app.akedly.io/enterprise",
      "requested": "Buy a total of 3 seat(s) (monthly term) in the dashboard."
    }
  }
}

Returns handoff and optionally waited verification metadata.

Additional command forms

sh
akedly seats buy --seats 3 --term monthly --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

With --wait, a verified state-change response also has waited.outcome, waited.polls and waited.elapsedSeconds. It confirms only the stated balance/seat/term change detector; it does not establish payment amount or provider outcome.

Common error guidance.

seats add

Prepare dashboard handoff to add a seat delta during the current active subscription.

When to use

  • Use when an active term needs more seats; --seats is number to add, unlike buy/renew total.

How it works

  1. Prints dashboard handoff only. Optional wait checks that total seats increased; checkout and charge happen in browser, never in CLI.

Prerequisites

  • Authenticated owner with active team seat term, under 20-seat ceiling; comped plans need support.

Expected outcome

Returns handoff, and with wait a coarse seat-increase verification.

Next steps

  • For grace/lapsed use seats renew; no plan or ended term use seats buy; verify seats status.

Usage

sh
akedly seats add

Inspect this command offline before preparing an operation:

sh
akedly describe "seats add" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--seatsinteger1 to 19yesCommand-specific option; see the full command details below.
--yesboolean switch—noConfirm this action where consent is required.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--waitboolean switch—noCommand-specific option; see the full command details below.
--timeoutseconds—noCommand-specific option; see the full command details below.
--ksaboolean switch—noSelect the KSA deployment.
--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: none declared.

Dashboard path: /admin/team/seats. Status check: seats status.

Shared server-guard guidance.

Consent

--yes. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: true. 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

Print a link to the dashboard to add --seats as the number to add, not the new total. Requires --yes; no checkout is created by the CLI. Owner-only. --wait observes an increased seat total. Comped subscriptions need support rather than a paid checkout. The CLI cannot see declined or abandoned payments. Printing the link does not open a browser. Paying in the dashboard is owner-only, like this command. --wait confirms that a seat change landed, not the requested seat count or that your requested payment succeeded; confirm in the dashboard. Needs an active team-seats term; in grace or lapsed run akedly seats renew; with no plan or an ended term run akedly seats buy. Check first with akedly seats status.

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.

Synthetic CLI use

Use when an active term needs more seats; --seats is number to add, unlike buy/renew total.

sh
akedly seats add --seats 1 --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "handoff": {
      "action": "seats add",
      "path": "/admin/team/seats",
      "url": "https://app.akedly.io/admin/team/seats",
      "requested": "Add 1 seat(s) in the dashboard."
    }
  }
}

Returns handoff, and with wait a coarse seat-increase verification.

Additional command forms

sh
akedly seats add --seats 1 --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

With --wait, a verified state-change response also has waited.outcome, waited.polls and waited.elapsedSeconds. It confirms only the stated balance/seat/term change detector; it does not establish payment amount or provider outcome.

Common error guidance.

seats renew

Prepare dashboard handoff to purchase a fresh renewal term with a requested new total seat count.

When to use

  • Use for an existing team-seat subscription whose term is eligible to renew; this is full-term renewal, not prorated add.

How it works

  1. Prints dashboard handoff only. Optional wait checks that term end extends; checkout and payment are browser actions.

Prerequisites

  • Authenticated owner with a team-seat subscription not ended; seats 1–19 and monthly/annual term; comped plans need support.

Expected outcome

Returns handoff and optional term-extension verification.

Next steps

  • Check seats status and complete checkout in dashboard; use seats buy if no subscription or ended term.

Usage

sh
akedly seats renew

Inspect this command offline before preparing an operation:

sh
akedly describe "seats renew" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--seatsinteger1 to 19yesCommand-specific option; see the full command details below.
--termenummonthly | annualyesCommand-specific option; see the full command details below.
--yesboolean switch—noConfirm this action where consent is required.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--waitboolean switch—noCommand-specific option; see the full command details below.
--timeoutseconds—noCommand-specific option; see the full command details below.
--ksaboolean switch—noSelect the KSA deployment.
--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: none declared.

Dashboard path: /admin/team/seats. Status check: seats status.

Shared server-guard guidance.

Consent

--yes. --dry-run bypasses confirmation where supported. Destructive: false. Spends money: true. 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

Print a link to the dashboard to renew --seats as the new total for --term. Requires --yes; no checkout is created by the CLI. Owner-only. --wait observes an extended term end. Comped subscriptions need support rather than a paid checkout. The CLI cannot see declined or abandoned payments. Printing the link does not open a browser. Paying in the dashboard is owner-only, like this command. --wait confirms that a seat change landed, not the requested seat count or that your requested payment succeeded; confirm in the dashboard. Needs a team-seats plan that has not ended; with no plan or an ended term run akedly seats buy.

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.

Synthetic CLI use

Use for an existing team-seat subscription whose term is eligible to renew; this is full-term renewal, not prorated add.

sh
akedly seats renew --seats 3 --term monthly --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "handoff": {
      "action": "seats renew",
      "path": "/admin/team/seats",
      "url": "https://app.akedly.io/admin/team/seats",
      "requested": "Renew a total of 3 seat(s) (monthly term) in the dashboard."
    }
  }
}

Returns handoff and optional term-extension verification.

Additional command forms

sh
akedly seats renew --seats 3 --term monthly --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

With --wait, a verified state-change response also has waited.outcome, waited.polls and waited.elapsedSeconds. It confirms only the stated balance/seat/term change detector; it does not establish payment amount or provider outcome.

Common error guidance.

sso-request status

Check the latest customer-safe enterprise SSO setup request for the account owner.

When to use

  • Use after sending a request or before retrying an ambiguous submission.

How it works

  1. Reads latest owner-scoped SSO request and excludes staff-only notes and responder identity.

Prerequisites

  • Authenticated account owner.

Expected outcome

Returns data.request null when none exists; otherwise request status and submitted values/timestamps.

Next steps

  • If pending/in_progress wait for staff; after terminal status a distinct request may be filed.

Usage

sh
akedly sso-request status

Inspect this command offline before preparing an operation:

sh
akedly describe "sso-request status" --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: none declared.

Server request: GET /enterprise/sso-request/status.

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 account owner latest SSO request using the customer-safe projection. Owner-only: non-owner members receive OWNER_REQUIRED. Returns data.request: null when no request exists.

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.

Synthetic CLI use

Use after sending a request or before retrying an ambiguous submission.

sh
akedly sso-request status

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "request": {
      "_id": "507f1f77bcf86cd799439018",
      "status": "pending",
      "domain": "example.invalid",
      "idp": "Okta",
      "message": null,
      "createdAt": "2026-10-30T12:00:00.000Z",
      "updatedAt": "2026-10-30T12:00:00.000Z",
      "respondedAt": null
    }
  }
}

Returns data.request null when none exists; otherwise request status and submitted values/timestamps.

Additional command forms

sh
akedly sso-request status

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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Common error guidance.

sso-request create

Ask staff to configure enterprise SSO for the account’s verified domain and identity provider.

When to use

  • Use when an entitled enterprise account is ready for staff to coordinate SSO setup.

How it works

  1. Submits trimmed domain/IdP/optional message, records a request and sends real staff email and group notifications; requires --yes. One pending or in-progress request blocks duplicates; ambiguous failure must be checked before retry.

Prerequisites

  • Authenticated account owner with active enterprise entitlement; domain, IdP and optional message nonblank within limits. Organization admin role alone does not grant entitlement.

Expected outcome

Returns request projection; it is a staff setup request, not configured SSO or immediate access change.

Next steps

  • Check sso-request status and wait for staff; do not repeat while request is open.

Usage

sh
akedly sso-request create

Inspect this command offline before preparing an operation:

sh
akedly describe "sso-request create" --output json

Flags

FlagTypeEnum / rangeRequiredDescription
--ksaboolean switch—noSelect the KSA deployment.
--domaintext—yesCommand-specific option; see the full command details below. Manifest body field: domain.
--idptext—yesCommand-specific option; see the full command details below. Manifest body field: idp.
--messagetext—noCommand-specific option; see the full command details below. Manifest body field: message.
--dry-runboolean switch—noPreview without sending the write or creating output files; planning reads may still occur. Bypass consent.
--yesboolean switch—noConfirm this action where consent is required.
--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: none declared.

Server request: POST /enterprise/sso-request.

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

Ask staff to configure enterprise SSO; sends real staff notifications and requires --yes. Owner-only and requires enterprise entitlement. --domain and --idp are free text, trimmed and limited to 253 and 100 characters; optional --message is limited to 500 characters. Empty values are refused. An open request is refused with HTTP 409. Check sso-request status before retrying an ambiguous failure. A codeless HTTP 403 can mean the account lacks active enterprise entitlement; organization-admin access alone cannot grant it.

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.

Synthetic CLI use

Use when an entitled enterprise account is ready for staff to coordinate SSO setup.

sh
akedly sso-request create --domain example.invalid --idp Okta --yes

Illustrative response (sensitive values omitted):

json
{
  "status": "success",
  "data": {
    "request": {
      "_id": "507f1f77bcf86cd799439019",
      "status": "pending",
      "domain": "example.invalid",
      "idp": "Okta",
      "message": null,
      "createdAt": "2026-10-30T12:00:00.000Z",
      "updatedAt": "2026-10-30T12:00:00.000Z",
      "respondedAt": null
    }
  }
}

Returns request projection; it is a staff setup request, not configured SSO or immediate access change.

Additional command forms

sh
akedly sso-request create --domain example.invalid --idp Okta --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

Response examples are synthetic. API may include additional response fields where the schema allows them.

Own recovery guidance

CodeHint
API_ERRORIf the message says an SSO request is already open, check akedly sso-request status and wait for staff. After an ambiguous failure, check akedly sso-request status before repeating; a later successful submission creates a separate request and notifies staff.

Common error guidance.