@arcxp/cli
v1.4.0
Published
The Arc XP CLI is your command center for automating workflows to accelerate development and simplify engineering workflows.
Readme
@arcxp/cli
The Arc XP CLI is your command center for automating workflows to accelerate development and simplify engineering workflows.
For instructions on getting the CLI running on your local machine, visit this page: https://dev.arcxp.com/arcxp-cli/
Requirements
- Node.js v20 or later is required to run this project.
Options
--enable-debug-logs
Enable logging for environment loading
-V, --version
output the version number
Subcommands
arcxp ifx
Interact directly with the IFX APIs using the command line. Follow the guide to get started: https://dev.arcxp.com/integrations/ifx-cli/
Subcommands
arcxp ifx integrationsarcxp ifx secretsarcxp ifx custom-eventsarcxp ifx webhooksarcxp ifx logsarcxp ifx bundlesarcxp ifx event-subscriptions
arcxp ifx integrations
Subcommands
arcxp ifx integrations listarcxp ifx integrations viewarcxp ifx integrations createarcxp ifx integrations updatearcxp ifx integrations delete
arcxp ifx integrations list
View a detailed list of all integrations.
Usage
arcxp ifx integrations list [options]Options
-p, --page <page>
Page number, used with pageSize for paginating the list
-s, --pageSize <pageSize>
Number of items per page
arcxp ifx integrations view
View an integration's details and status.
Usage
arcxp ifx integrations view [options]Options
-n, --name <name>
Name of integration to view
arcxp ifx integrations create
Create a new integration.
Usage
arcxp ifx integrations create [options]Options
-n, --name <name>
Name of new integration
-d, --description <description>
Give it a description
-e, --email <email>
Email for receiving alerts
arcxp ifx integrations update
Update an existing integration.
Usage
arcxp ifx integrations update [options]Options
-n, --name <name>
Name of integration to update
-d, --description [description]
Updated description (optional)
-e, --email [email]
Email for receiving alerts (optional)
-s --enabled <enabled>
Enable (true) or disable (false) the integration
arcxp ifx integrations delete
Deletes an existing integration and all associated resources (except your Github repo).
Usage
arcxp ifx integrations delete [options]Options
-n, --name <name>
Name of integration to delete (cannot be undone)
arcxp ifx secrets
Subcommands
arcxp ifx secrets list
Lists secret names for an integration.
Usage
arcxp ifx secrets list [options]Options
-n, --integrationName <integrationName>
Name of integration to list secrets
arcxp ifx secrets create
Add a new secret to an integration.
Usage
arcxp ifx secrets create [options]Options
-n, --integrationName <integrationName>
Name of integration where the secret will be used
-s, --secretName <secretName>
Secret name to be referenced in your code
-v, --secretValue <secretValue>
The value of the secret
arcxp ifx secrets update
Update an existing secret.
Usage
arcxp ifx secrets update [options]Options
-n, --integrationName <integrationName>
Name of integration
-s, --secretName <secretName>
Name of secret to be updated
-v, --secretValue <secretValue>
The new value of the secret
arcxp ifx custom-events
Subcommands
arcxp ifx custom-events listarcxp ifx custom-events registerarcxp ifx custom-events updatearcxp ifx custom-events delete-eventarcxp ifx custom-events delete-event-schedule
arcxp ifx custom-events list
View your organization's existing custom events.
Usage
arcxp ifx custom-events list [options]Options
-p, --page <page>
Page number, used with pageSize for paginating the list
-s, --pageSize <pageSize>
Number of items per page
arcxp ifx custom-events register
Register a custom event for your organization to be used on a schedule or with a webhook.
Usage
arcxp ifx custom-events register [options]Options
-e, --eventName <eventName>
Name the event e.g. custom:schedule_report
-d, --description <description>
Describe what the event will be used for
-s, --schedule [schedule]
6-field cron string e.g. 0 12 ? * WED * (optional)
arcxp ifx custom-events update
Update description and/or schedule of an existing custom event.
Usage
arcxp ifx custom-events update [options]Options
-e, --eventName <eventName>
The custom event name to be updated
-d, --description [description]
Updated description (optional)
-s, --schedule [schedule]
6-field cron string e.g. 0 12 ? * WED * (optional)
arcxp ifx custom-events delete-event
Delete a custom event. The event must not have any active subscriptions. Note this action cannot be undone, but you can recreate the event if needed.
Usage
arcxp ifx custom-events delete-event [options]Options
-e, --eventName <eventName>
Name of event to delete (cannot be undone)
arcxp ifx custom-events delete-event-schedule
Delete an event's schedule without deleting the event itself. This action cannot be undone, but the schedule can be added back to the event.
Usage
arcxp ifx custom-events delete-event-schedule [options]Options
-e, --eventName <eventName>
Name of event whose schedule to delete
arcxp ifx webhooks
Subcommands
arcxp ifx webhooks listarcxp ifx webhooks registerarcxp ifx webhooks updatearcxp ifx webhooks deletearcxp ifx webhooks trigger
arcxp ifx webhooks list
View your organization's existing webhooks.
Usage
arcxp ifx webhooks list [options]Options
-p, --page <page>
Page number, used with pageSize for paginating the list
-s, --pageSize <pageSize>
Number of items per page
arcxp ifx webhooks register
Once you have created a custom event, register a webhook to receive the request for that event.
Usage
arcxp ifx webhooks register [options]Options
-e, --eventName <eventName>
Name of event you want linked to your webhook
-d, --description <description>
Describe what the webhook will do
arcxp ifx webhooks update
Update the description for a webhook.
Usage
arcxp ifx webhooks update [options]Options
-e, --eventName <eventName>
Name of event you want linked to your webhook
-d, --description <description>
Updated description (optional)
arcxp ifx webhooks delete
Remove a webhook for an event. Note this action cannot be undone! If you need to recreate this webhook, a new UUID will be issued.
Usage
arcxp ifx webhooks delete [options]Options
-e, --eventName <eventName>
Name of event associated with the webhook
arcxp ifx webhooks trigger
Triggers a webhook by its UUID.
Usage
arcxp ifx webhooks trigger [options]Options
-u, --uuid <uuid>
The UUID of the webhook to trigger
-p, --payload <payload>
JSON-formatted custom payload
arcxp ifx logs
Subcommands
arcxp ifx logs search
View log search results.
Usage
arcxp ifx logs search [options]Options
-n, --name <name>
Integration name to search
-q, --query [search query]
Optional keywords to search for in logs
-s, --startDateTime [YYYY-MM-DD HH:MM:SS]
START timestamp in format YYYY-MM-DD [HH:MM:SS], default 300s ago
-e, --endDateTime [YYYY-MM-DD HH:MM:SS]
END timestamp in format YYYY-MM-DD [HH:MM:SS], default 'now'
arcxp ifx bundles
Subcommands
arcxp ifx bundles listarcxp ifx bundles uploadarcxp ifx bundles deployarcxp ifx bundles promotearcxp ifx bundles download
arcxp ifx bundles list
Get a list of all uploaded bundles for an integration.
Usage
arcxp ifx bundles list [options]Options
-n, --name <name>
Integration name to list bundles
arcxp ifx bundles upload
Upload a zipped bundle for an integration.
Usage
arcxp ifx bundles upload [options]Options
-n, --integrationName <integrationName>
Integration name for bundle upload
-b, --bundleName <bundleName>
Provide a unique bundle name
-p, --bundlePath <bundlePath>
Local path to the zipped bundle
arcxp ifx bundles deploy
Deploy an uploaded bundle so that it can be promoted to live.
Usage
arcxp ifx bundles deploy [options]Options
-n, --name <name>
Name of integration
-b, --bundleName <bundleName>
Name of bundle to deploy
arcxp ifx bundles promote
Promote a specific bundle version to live. Any traffic after the promotion will go to the newly promoted bundle.
Usage
arcxp ifx bundles promote [options]Options
-n, --name <name>
Name of integration
-v, --versionNumber <versionNumber>
Bundle version to promote to live
arcxp ifx bundles download
Promote a specific bundle version to live. Any traffic after the promotion will go to the newly promoted bundle.
Usage
arcxp ifx bundles download [options]Options
-n, --name <name>
Name of integration
-b --bundleName <bundleName>
Name of bundle to download
-o --outputFilePath <outputFilePath>
Local file path including filename to save the zip e.g. /Users/me/zips/somename.zip
arcxp ifx event-subscriptions
Subcommands
arcxp ifx event-subscriptions listarcxp ifx event-subscriptions createarcxp ifx event-subscriptions update
arcxp ifx event-subscriptions list
List all event subscriptions.
Usage
arcxp ifx event-subscriptions list [options]arcxp ifx event-subscriptions create
Subscribe to an event so that your integration will be invoked when the event is received.
Usage
arcxp ifx event-subscriptions create [options]Options
-n, --name <name>
Name of integration that will be triggered for this event
-e, --eventName <eventName>
Name of event you are subscribing to
-s, --enabled [enabled]
Enable (true) or disable (false) the subscription
arcxp ifx event-subscriptions update
Manage an existing event subscription
Usage
arcxp ifx event-subscriptions update [options]Options
-n, --name <name>
Integration name associated with the event
-e, --eventName <eventName>
Event name to update
-s, --enabled <enabled>
Enable (true) or disable (false) the subscription
arcxp pagebuilder
Interact with PageBuilder tools
Subcommands
arcxp pagebuilder view-logsarcxp pagebuilder upload-bundlearcxp pagebuilder upload-and-deploy-bundle
arcxp pagebuilder view-logs
View logs associated with a specific request ID
Usage
arcxp pagebuilder view-logs [options]Options
-r, --requestId <requestId>
Arc PageBuilder request ID to search logs for
arcxp pagebuilder upload-bundle
Usage
arcxp pagebuilder upload-bundle [options]Options
-m, --mxId <mxId>
MX ID (8 digits)
-f, --file <file>
Specific file to upload from dist folder
arcxp pagebuilder upload-and-deploy-bundle
Usage
arcxp pagebuilder upload-and-deploy-bundle [options]Options
-m, --mxId <mxId>
MX ID (8 digits)
-e, --engineVersion <engineVersion>
Engine version to use for deployment
-f, --file <file>
Specific file to upload from dist folder
arcxp themes
Scripts for managing site settings and theme blocks
Subcommands
arcxp themes fork-blockarcxp themes site-properties printarcxp themes site-properties write-local-settings-filearcxp themes site-properties convert-properties
arcxp themes site-properties print
Output current settings in terminal
Usage
arcxp themes site-properties printarcxp themes site-properties write-local-settings-file
Output a file with the site properties stored in Themes Settings
Usage
arcxp themes site-properties write-local-settings-file [options]Options
-o, --outputPath <outputPath>
Full path and file name to save .json. Defaults to blocks-${year}-${month}-${day}-${hours}${minutes}${seconds}.json
arcxp themes site-properties convert-properties
Converts a .json file to .xlsx, or .xlsx to .json When saving to .xlsx, global settings will be saved to 1 sheet and each site's properties will be in their own sheets.
Usage
* Interactive mode onlyarcxp themes fork-block
Fork a block from the themes repository into your local codebase
Usage
arcxp themes fork-block [options]Options
-b, --block <block>
Block name to copy (e.g., 'headline-block')
-v, --themes-version <version>
Themes version to use (defaults to latest)
-n, --name <n>
Custom name for the copied block (defaults to '{block-name}-copy')
-e, --eject
Remove the block from blocks.json after copying
arcxp subscriptions
Manage subscriptions. Provides bulk subscription migration via CSV file upload with two modes: simulate (validate and enrich data without making changes) and execute (create live subscriptions). Also supports terminate to cancel migrated subscriptions.
Subcommands
arcxp subscriptions upload simulate
Simulate a subscription migration upload without making changes. Validates each row against field rules, the Identity API, SKU/price code matching via the Retail API, and checks for already-migrated legacy IDs. Enriches with pricing data from the Sales API and writes a report CSV.
Rows with validation or enrichment errors are included in the output with an error code and message. Payment tokens are not included in the simulate output.
Usage
arcxp subscriptions upload simulate [options]Options
--file <file>
Path to the CSV file to simulate uploading
Input CSV Format
The simulate and execute commands share the same 20-column input CSV. Copy the example below into a spreadsheet to get started:
SITE,GATEWAY_ID,LEGACY_ID,SKU,PRICE_CODE,CLIENT_ID,NEXT_RENEWAL_DATE,COUNTRY,LINE1,LINE2,LOCALITY,REGION,POSTAL,TOKEN,FIRST_SIX,LAST_FOUR,EXPIRATION,CARDHOLDER_NAME,TAX_EXEMPT,TAX_LOCATION_ID
staging,1,sub-0001a,deluxepremium,YZWICX,817e2957-8047-495b-a077-ea1f5a058448,2026-07-15T00:00:00Z,US,742 Evergreen Terrace,,Springfield,IL,62704,tok_abc123def456,411111,1234,0827,Homer Simpson,false,tax-loc-001| Column | Required | Description |
|--------|----------|-------------|
| SITE | Yes | Site as configured in Site Service |
| GATEWAY_ID | Yes | ID of payment gateway configured in CSR Admin |
| LEGACY_ID | Yes | ID of subscription in publisher's legacy system |
| SKU | Yes | The subscription's product from Retail portion of CSR Admin |
| PRICE_CODE | Yes | The subscription's price code from Retail portion of CSR Admin |
| CLIENT_ID | Yes | The Identity ID of the owner of the subscription |
| NEXT_RENEWAL_DATE | Yes | Date for first payment attempt (ISO 8601: YYYY-MM-DDTHH:MM:SSZ) |
| COUNTRY | Yes | 2-letter country code for tax calculations |
| LINE1 | No | Address line 1 |
| LINE2 | No | Address line 2 |
| LOCALITY | No | City |
| REGION | No | State/province |
| POSTAL | No | Zip/postal code |
| TOKEN | Yes | Payment token stored at the payment gateway |
| FIRST_SIX | No | First six digits of card number |
| LAST_FOUR | No | Last four digits of card number |
| EXPIRATION | No | Card expiration (MMYY) |
| CARDHOLDER_NAME | No | Name on the card |
| TAX_EXEMPT | Yes | true or false |
| TAX_LOCATION_ID | No | Required by Taxamo tax gateway |
Simulate Output CSV
The simulate output is written to <input-filename>-simulate.csv:
legacyId,subsCustomerID,paymentDate,nextPaymentDate,error,amountBilled,currency
sub-0001a,2c655974-2fea-4941-b92f-60f66e56ea89,2026-07-15T00:00:00.000Z,2026-08-15T00:00:00.000Z,,10,USD
sub-0002b,,,,B1000036: user account does not exist,,arcxp subscriptions upload execute
Execute a subscription migration upload. Each row in the CSV is POSTed to the migration API to create live subscriptions. Requests are sent in parallel batches based on the number of available backend hosts.
A confirmation prompt is displayed before execution begins. The output CSV includes all original columns (with payment tokens redacted) plus results and message columns.
Usage
arcxp subscriptions upload execute [options]Options
--file <file>
The CSV file to upload (same 20-column format as simulate)
Execute Output CSV
The execute output is written to <input-filename>-execute.csv. All original columns are included (with TOKEN masked as ******) plus results and message:
SITE,GATEWAY_ID,LEGACY_ID,SKU,PRICE_CODE,CLIENT_ID,NEXT_RENEWAL_DATE,COUNTRY,LINE1,LINE2,LOCALITY,REGION,POSTAL,TOKEN,FIRST_SIX,LAST_FOUR,EXPIRATION,CARDHOLDER_NAME,TAX_EXEMPT,TAX_LOCATION_ID,results,message
staging,1,sub-0001a,deluxepremium,YZWICX,817e2957-8047-495b-a077-ea1f5a058448,2026-07-15T00:00:00Z,US,742 Evergreen Terrace,,Springfield,IL,62704,******,411111,1234,0827,Homer Simpson,false,tax-loc-001,success,
staging,1,sub-0002b,deluxepremium,YZWICX,6a31d940-2d34-4150-bd76-ad27a1173f9a,2026-08-01T00:00:00Z,US,123 Main St,Apt 4B,Shelbyville,IL,62565,******,523456,5678,1228,Ned Flanders,false,,failed,B1000036: user account does not existarcxp subscriptions terminate
Terminate migrated subscriptions. Reads a CSV file containing legacy IDs and their associated sites, then sends DELETE requests to the migration API to cancel each subscription. Requests are sent in parallel batches based on the number of available backend hosts.
A confirmation prompt is displayed before termination begins. The output CSV includes LEGACY_ID, SITE, results, and message columns.
Usage
arcxp subscriptions terminate [options]Options
--file <file>
Path to a CSV file with LEGACY_ID,SITE columns
Input CSV Format
The terminate command uses a 2-column CSV. Copy the example below into a spreadsheet to get started:
LEGACY_ID,SITE
sub-0001a,staging
sub-0003c,theguide| Column | Required | Description | |--------|----------|-------------| | LEGACY_ID | Yes | The legacy subscription identifier to terminate | | SITE | Yes | The site the subscription belongs to |
Terminate Output CSV
The terminate output is written to <input-filename>-terminate.csv:
LEGACY_ID,SITE,results,message
sub-0001a,staging,success,
sub-0003c,theguide,failed,B100001C: legacyId is invalidarcxp static-storage
Manage static storage files
Subcommands
arcxp static-storage uploadarcxp static-storage deletearcxp static-storage get-urlarcxp static-storage list
arcxp static-storage upload
Upload a file to static storage
Usage
arcxp static-storage upload [options]Options
--path <path>
The path where the file will be uploaded
--file <file>
The file to be uploaded
--ttl <ttl>
Time-to-live for the file in seconds (default: "15")
arcxp static-storage delete
Delete a file from static storage
Usage
arcxp static-storage delete [options]Options
--path <path>
The path of the file to be deleted
arcxp static-storage get-url
Get a file's URL from static storage
Usage
arcxp static-storage get-url [options]Options
--path <path>
The path of the file download
arcxp static-storage list
List objects in a directory from static storage
Usage
arcxp static-storage list [options]Options
--path <path>
The path of the directory to list files for
