It's All Stack · CLI Reference

IAS License Activator

License server: generate, activate, validate, revoke and track licence keys, webhooks and packages.

Conventions on this page

Every command accepts --format=<json|table|csv|yaml>. Commands marked Write accept --dry-run (resolve, audit, write nothing) and --yes (skip the prompt). Commands marked Irreversible additionally prompt unless --yes is passed, and any bulk delete refuses to run without an explicit scope argument rather than defaulting to delete-all.

wp ias license-activator audit-log list#

List entries from the suite-wide CLI audit log.

wp ias license-activator audit-log list [--since=<date>] [--user=<id>] [--plugin=<slug>] [--page=<page>] [--per-page=<per-page>] [--format=<format>]

Options

ArgumentRequiredTypeDescription
[--since=<date>]noflag (value)Only entries on/after this date (anything strtotime understands).
[--user=<id>]noflag (value)Filter by the WP user ID that ran the command.
[--plugin=<slug>]noflag (value)Filter by the plugin slug that emitted the entry.
[--page=<page>]noflag (value)Page of results (1-based).
[--per-page=<per-page>]noflag (value)Results per page (capped at 1000).
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator audit-log list --plugin=serial-keys --format=json

wp ias license-activator check-update#

Simulate the REST check-update payload for a product slug (debug aid).

wp ias license-activator check-update <slug> [--current-version=<version>] [--format=<format>]

Options

ArgumentRequiredTypeDescription
<slug>yespositionalProduct update slug.
[--current-version=<version>]noflag (value)If given, report whether an update is available relative to this version.
[--format=<format>]noflag (value)Output format.

Examples

wp ias license-activator check-update ias-serial-keys
wp ias license-activator check-update ias-serial-keys --current-version=1.0.0

Related

wp ias license-activator inspect

wp ias license-activator inspect#

Report the plugin slug, version and CLI environment.

wp ias license-activator inspect [--format=<format>]

Options

ArgumentRequiredTypeDescription
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator inspect

Related

wp ias license-activator check-update

wp ias license-activator licenses activate#

Force-activate a licence key on a site (admin/support tool).

wp ias license-activator licenses activate <key> <site_url> [--dry-run] [--yes] [--format=<format>]

Delegates to IAS_Activation_Manager::activate(); honours the licence's activation limit and status exactly as the public REST endpoint does.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe licence key.
<site_url>yespositionalThe site URL to activate the licence on.
[--dry-run]noflagReport what would happen without recording the activation.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator licenses activate IAS-XXXX-YYYY-ZZZZ https://customer.example

Related

wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses deactivate#

Force-deactivate a site binding from a licence key (admin/support tool).

wp ias license-activator licenses deactivate <key> <site_url> [--dry-run] [--yes] [--format=<format>]

Delegates to IAS_Activation_Manager::deactivate() with deactivated_by='cli'.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe licence key.
<site_url>yespositionalThe site URL to deactivate.
[--dry-run]noflagReport what would happen without recording the deactivation.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator licenses deactivate IAS-XXXX-YYYY-ZZZZ https://customer.example

Related

wp ias license-activator licenses activate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses delete#

⚠ Irreversible — --dry-run first.

This command permanently destroys data or applies a terminal state that cannot be undone from the CLI. Preview the exact effect with --dry-run, then re-run with --yes once you are certain.

Permanently delete a licence key and its dependent rows (NON-RECOVERABLE).

wp ias license-activator licenses delete <key> [--keep-audit] [--dry-run] [--yes] [--format=<format>]

Removes the licence row (IAS_License_Manager::delete()) plus its site activations, and — unless --keep-audit is given — its per-licence log rows. This is irreversible: there is no soft-delete. To merely stop a key validating while keeping the record, use licenses revoke instead. Only a non-reversible fingerprint of the key is written to the audit log.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe licence key to delete.
[--keep-audit]noflagRetain the licence's log rows (delete only the licence + activations).
[--dry-run]noflagResolve and report the planned change without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { key_fingerprint — non-reversible key id; license_deleted — bool; activations_deleted — int; logs_deleted — int }.

Examples

wp ias license-activator licenses delete IAS-XXXX-YYYY-ZZZZ --yes
wp ias license-activator licenses delete IAS-XXXX-YYYY-ZZZZ --keep-audit

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses delete-bulk#

⚠ Irreversible — --dry-run first.

This command permanently destroys data or applies a terminal state that cannot be undone from the CLI. Preview the exact effect with --dry-run, then re-run with --yes once you are certain.

Bulk-delete every licence matching a JSON filter (NON-RECOVERABLE).

wp ias license-activator licenses delete-bulk --filter=<json> [--keep-audit] [--dry-run] [--yes] [--format=<format>]

Requires an explicit --filter=<json>; there is deliberately no "--all" — a bare wildcard is refused. Each matched licence is deleted along with its activations and (unless --keep-audit) its log rows, exactly as licenses delete does per key. Only non-reversible key fingerprints are written to the audit log.

A single run processes at most 1000 licences. The true (uncapped) match count is reported as total_matching and, when it exceeds the per-run cap, capped is true and a warning is emitted — re-run the command after each batch to delete the remainder.

Options

ArgumentRequiredTypeDescription
--filter=<json>yesflag (value)A JSON object selecting which licences to delete. Honoured keys: status, product_id, customer_id, search. At least one is required.
[--keep-audit]noflagRetain each licence's log rows (delete only the licence + activations).
[--dry-run]noflagResolve and report the matched count without deleting anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { total_matching — true (uncapped) match count; matched — number selected this run (≤1000); capped — true when total_matching exceeds the per-run cap; deleted — number deleted; activations_deleted — int; logs_deleted — int; fingerprints — non-reversible key ids }.

Examples

wp ias license-activator licenses delete-bulk --filter='{"status":"expired"}' --dry-run
wp ias license-activator licenses delete-bulk --filter='{"product_id":42}' --yes

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses generate#

Issue one or more new license keys for a product.

wp ias license-activator licenses generate <product> [--customer=<customer>] [--quantity=<n>] [--limit=<n>] [--expires=<date>] [--note=<text>] [--dry-run] [--yes] [--format=<format>]

Delegates to IAS_License_Manager::create() (the same path the admin Generate screen uses); each key is auto-generated, unique and encrypted at rest.

Options

ArgumentRequiredTypeDescription
<product>yespositionalProduct reference — numeric ID or SKU.
[--customer=<customer>]noflag (value)Assign the new licence(s) to this customer (numeric WP user ID or email).
[--quantity=<n>]noflag (value)Number of licences to issue.
[--limit=<n>]noflag (value)Activation limit per licence (0 = unlimited). Defaults to the product's configured limit, or 1.
[--expires=<date>]noflag (value)Expiry date (anything strtotime understands). Omit for a lifetime licence.
[--note=<text>]noflag (value)Free-text note stored on each licence.
[--dry-run]noflagValidate and report what would be issued without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Examples

wp ias license-activator licenses generate 42 --customer=customer@example.com --quantity=3
wp ias license-activator licenses generate SKU-PRO --expires="+1 year" --dry-run

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses generate-bulk#

Bulk-issue licences for a product, optionally one per customer from a file.

wp ias license-activator licenses generate-bulk <product> --count=<n> [--customer-list=<file>] [--prefix=<text>] [--dry-run] [--yes] [--format=<format>]

With --customer-list each non-empty line (a numeric ID or an email) is resolved and gets one assigned licence; the issue count defaults to the line count (capped by --count when both are given). Without a list, --count unassigned licences are issued into the pool. Each licence is created via IAS_License_Manager::create() exactly as licenses generate does. Only non-reversible key fingerprints are written to the audit log.

Options

ArgumentRequiredTypeDescription
<product>yespositionalProduct reference — numeric ID or SKU.
--count=<n>yesflag (value)Number of licences to issue (the cap when --customer-list is also given).
[--customer-list=<file>]noflag (value)Path to a file with one customer reference (ID or email) per line; issues one assigned licence per resolvable line.
[--prefix=<text>]noflag (value)Free-text prefixed to the note stored on each issued licence.
[--dry-run]noflagResolve and report the planned count without issuing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { product_id — resolved product; planned — licences intended; created — issued count; failed — failed count; keys — issued licence keys }.

Examples

wp ias license-activator licenses generate-bulk 42 --count=100
wp ias license-activator licenses generate-bulk SKU-PRO --customer-list=/tmp/customers.txt

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses list · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses list#

List license keys with filters and pagination.

wp ias license-activator licenses list [--customer=<customer>] [--product=<product>] [--status=<status>] [--page=<page>] [--per-page=<per-page>] [--format=<format>]

Options

ArgumentRequiredTypeDescription
[--customer=<customer>]noflag (value)Filter by customer (numeric WP user ID or email).
[--product=<product>]noflag (value)Filter by product (numeric ID or SKU).
[--status=<status>]noflag (value)Filter by license status (e.g. active, expired, revoked).
[--page=<page>]noflag (value)Page of results (1-based).
[--per-page=<per-page>]noflag (value)Results per page (capped at 1000).
[--format=<format>]noflag (value)Output format.

Examples

wp ias license-activator licenses list --status=active
wp ias license-activator licenses list --customer=customer@example.com --format=json

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses regenerate · wp ias license-activator licenses revoke

wp ias license-activator licenses regenerate#

Regenerate the key for an existing licence (key rotation).

wp ias license-activator licenses regenerate <key> [--notify-customer] [--dry-run] [--yes] [--format=<format>]

License keys are immutable at rest by design (IAS_License_Manager::update() strips the key column), so "regenerate" issues a fresh licence carrying the same entitlement (product, customer, activation limit, expiry) and revokes the old key. The old key stops validating; the customer keeps their entitlement under the new key. Both fingerprints are written to the audit log so support can tell a customer their key changed.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe existing licence key to rotate.
[--notify-customer]noflagBest-effort email the new key to the licence's customer address.
[--dry-run]noflagReport what would happen without issuing or revoking anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator licenses regenerate IAS-XXXX-YYYY-ZZZZ --notify-customer

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses revoke

wp ias license-activator licenses revoke#

⚠ Irreversible — --dry-run first.

This command permanently destroys data or applies a terminal state that cannot be undone from the CLI. Preview the exact effect with --dry-run, then re-run with --yes once you are certain.

Revoke a licence key (admin/support tool).

wp ias license-activator licenses revoke <key> [--reason=<text>] [--dry-run] [--yes] [--format=<format>]

Sets the licence status to "revoked" and deactivates every site bound to it via IAS_License_Manager::revoke(). The key continues to exist (so it stays searchable and auditable) but stops validating. Only a non-reversible fingerprint of the key is written to the audit log.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe licence key to revoke.
[--reason=<text>]noflag (value)Free-text reason stored on the revocation log entry.
[--dry-run]noflagResolve and report the planned change without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { status_before — licence status prior to revocation; status_after — "revoked"; reason — recorded reason; key_fingerprint — non-reversible key id }.

Example

wp ias license-activator licenses revoke IAS-XXXX-YYYY-ZZZZ --reason="Chargeback"

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate

wp ias license-activator licenses show#

Show the full state of one license key.

wp ias license-activator licenses show <key> [--format=<format>]

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe license key.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator licenses show IAS-XXXX-YYYY-ZZZZ --format=json

Related

wp ias license-activator licenses activate · wp ias license-activator licenses deactivate · wp ias license-activator licenses delete · wp ias license-activator licenses delete-bulk · wp ias license-activator licenses generate · wp ias license-activator licenses generate-bulk · wp ias license-activator licenses list · wp ias license-activator licenses regenerate

wp ias license-activator licenses sites deactivate#

Force-deactivate one site binding from a licence key (admin/support tool).

wp ias license-activator licenses sites deactivate <key> <site_url> [--dry-run] [--yes] [--format=<format>]

Delegates to IAS_Activation_Manager::deactivate() with deactivated_by='cli', freeing one activation slot on the licence. Only a non-reversible fingerprint of the key is written to the audit log.

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe licence key.
<site_url>yespositionalThe site URL to deactivate.
[--dry-run]noflagResolve and report the planned change without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { key_fingerprint — non-reversible key id; site_url — the deactivated site; plus the manager's result data }.

Example

wp ias license-activator licenses sites deactivate IAS-XXXX-YYYY-ZZZZ https://customer.example

Related

wp ias license-activator licenses sites list

wp ias license-activator licenses sites list#

List the site/domain activations bound to a license key.

wp ias license-activator licenses sites list <key> [--status=<status>] [--format=<format>]

Options

ArgumentRequiredTypeDescription
<key>yespositionalThe license key.
[--status=<status>]noflag (value)Filter activations by status.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator licenses sites list IAS-XXXX-YYYY-ZZZZ

Related

wp ias license-activator licenses sites deactivate

wp ias license-activator package delete-version#

⚠ Irreversible — --dry-run first.

This command permanently destroys data or applies a terminal state that cannot be undone from the CLI. Preview the exact effect with --dry-run, then re-run with --yes once you are certain.

Unpublish a product's current package version (stop advertising updates).

wp ias license-activator package delete-version <slug> <version> [--dry-run] [--yes] [--format=<format>]

SINGLE-VERSION MODEL: the licence server tracks only one CURRENT published version per product, in the post meta _ias_license_current_version — there is no version-history table. This command therefore only acts when <version> matches that current version: it clears the meta, after which the slug stops advertising an available update via check-update. A non-matching version is rejected (real) or reported as not found (dry-run); there are no older versions to delete.

Options

ArgumentRequiredTypeDescription
<slug>yespositionalProduct update slug.
<version>yespositionalThe version to unpublish (must equal the product's current version).
[--dry-run]noflagResolve and report the planned change without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { slug — the product slug; product_id — resolved product; version — the requested version; was_current — whether it matched; cleared — bool }.

Example

wp ias license-activator package delete-version ias-serial-keys 1.4.2 --yes

Related

wp ias license-activator package list-versions

wp ias license-activator package list-versions#

List the available package version(s) for a product update slug.

wp ias license-activator package list-versions <slug> [--format=<format>]

The server tracks only the current published version (there is no version history table), so this reports a single row for that version.

Options

ArgumentRequiredTypeDescription
<slug>yespositionalProduct update slug.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator package list-versions ias-serial-keys

Related

wp ias license-activator package delete-version

wp ias license-activator products list#

List products that have licensing enabled.

wp ias license-activator products list [--format=<format>]

Options

ArgumentRequiredTypeDescription
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator products list --format=json

wp ias license-activator webhooks delete#

⚠ Irreversible — --dry-run first.

This command permanently destroys data or applies a terminal state that cannot be undone from the CLI. Preview the exact effect with --dry-run, then re-run with --yes once you are certain.

Delete one recorded webhook delivery row by its id.

wp ias license-activator webhooks delete <id> [--dry-run] [--yes] [--format=<format>]

Removes a single entry from the ias_license_webhook_deliveries delivery log (the most-recent-500 record of webhook delivery attempts, written automatically at dispatch time). This clears the historical record only; it does not affect webhook configuration. The real path errors if no row matches the id.

Options

ArgumentRequiredTypeDescription
<id>yespositionalThe delivery record id to delete.
[--dry-run]noflagResolve and report the planned change without writing anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { id — the deleted record id; deleted — bool; remaining — count of records left }.

Example

wp ias license-activator webhooks delete d1 --yes

Related

wp ias license-activator webhooks list · wp ias license-activator webhooks rotate-secret

wp ias license-activator webhooks deliveries list#

List recent webhook delivery attempts.

wp ias license-activator webhooks deliveries list [--webhook=<id>] [--status=<status>] [--since=<date>] [--page=<page>] [--per-page=<per-page>] [--format=<format>]

Every webhook delivery attempt (success or failure) is recorded automatically at dispatch time in the ias_license_webhook_deliveries option — a FIFO log of the most recent 500 attempts. Each row reports the delivery id, the webhook id, event, status, response code, duration and timestamp (the full payload and response excerpt are retained in the stored record and surfaced in --format=json). When no deliveries have been recorded this returns an empty list.

Options

ArgumentRequiredTypeDescription
[--webhook=<id>]noflag (value)Filter to one webhook endpoint ID.
[--status=<status>]noflag (value)Filter by delivery status (e.g. success, failed).
[--since=<date>]noflag (value)Only deliveries on/after this date (anything strtotime understands).
[--page=<page>]noflag (value)Page of results (1-based).
[--per-page=<per-page>]noflag (value)Results per page (capped at 1000).
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator webhooks deliveries list --status=failed

Related

wp ias license-activator webhooks deliveries retry

wp ias license-activator webhooks deliveries retry#

Re-dispatch a recorded webhook delivery by its id.

wp ias license-activator webhooks deliveries retry <id> [--dry-run] [--yes] [--format=<format>]

Looks up the delivery row in the ias_license_webhook_deliveries log (every delivery attempt is recorded automatically at dispatch time, retaining its url and payload) and re-sends it through IAS_License_Webhook_Manager::process_webhook() — the same public dispatch path used for live deliveries, so HMAC signing, the SSRF host guard and the retry/backoff schedule all apply. Errors if the record cannot be rebuilt. The audit log records the delivery id, target host and event only (never the full payload).

Options

ArgumentRequiredTypeDescription
<id>yespositionalThe delivery record id to retry.
[--dry-run]noflagResolve and report the planned retry without sending anything.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Returns

A JSON object: { id — the retried record id; retried — bool; host — target host; event — the webhook event }.

Example

wp ias license-activator webhooks deliveries retry d1 --yes

Related

wp ias license-activator webhooks deliveries list

wp ias license-activator webhooks list#

List the configured webhook endpoint (secret is never shown).

wp ias license-activator webhooks list [--format=<format>]

Options

ArgumentRequiredTypeDescription
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator webhooks list --format=json

Related

wp ias license-activator webhooks delete · wp ias license-activator webhooks rotate-secret

wp ias license-activator webhooks rotate-secret#

Rotate the HMAC signing secret used for outbound webhook deliveries.

wp ias license-activator webhooks rotate-secret [--webhook=<id>] [--dry-run] [--yes] [--format=<format>]

Generates a fresh cryptographically-random secret and persists it via IAS_License_Webhook_Manager::save_settings() (preserving every other webhook setting). The NEW secret is printed once so you can update the receiving endpoint; only a non-reversible fingerprint is written to the audit log. After rotation, any receiver still using the old secret will reject deliveries until reconfigured.

Options

ArgumentRequiredTypeDescription
[--webhook=<id>]noflag (value)Logical webhook identifier to tag in the audit log (a single endpoint is configured suite-wide; this is recorded for traceability only).
[--dry-run]noflagReport that a rotation would occur without changing the stored secret.
[--yes]noflagSkip the confirmation prompt.
[--format=<format>]noflag (value)Output format.

Example

wp ias license-activator webhooks rotate-secret --yes

Related

wp ias license-activator webhooks delete · wp ias license-activator webhooks list