ASK CLI Command Reference


This reference describes all commands available through ASK CLI version 1. For an overview of ASK CLI, see ASK CLI Overview. To get started with the Alexa Skills Kit Command Line Interface (ASK CLI), see the ASK CLI Quick Start.

If you use Visual Studio Code, you can try the ASK Toolkit for Visual Studio Code (Beta) which enables you to create and manage skills using Visual Studio Code and ASK CLI.

ASK CLI Commands

ASK CLI has two different kinds of commands for manipulating skills associated with your developer account.

  • High-level commands simplify working with skill projects, often by abstracting details and performing several actions under the hood. These are the best commands to start with if you are new to skill development, or if you don't need to finely control API calls. init, new, deploy, clone, validate, and simulate are high-level commands.
  • Low-level commands can be used to control individual parts of your Alexa Skill. These commands are thin wrappers over the Alexa Skill Management API operations, so they give you fine-grained control over each API call. These commands are particularly useful when you want to change portions of a skill that you have already added to your account. The api and lambda commands are low-level.

$ ask <command> <subcommand> [options]

ASK CLI commands enable you to complete the following tasks:

Task  Command or Option     
Get help for tool or for a specific command. ask [command] -h | --help
Check the version number. ask -v | --version
Initialize ASK CLI with your Amazon developer account credentials. Run this command to initialize the tool with your developer account credentials before performing skill operations. Note that this command uses port 9090 and if this port is already in use, you will get an error. ask init
Create a new Alexa skill project on your computer, with the necessary folders and files to deploy it with minimal changes. ask new
Deploy a skill to your developer account including your skill manifest, interaction model, and AWS Lambda functions. ask deploy
Create a skill project by cloning an existing skill to a local skill project. ask clone
List the differences between the local and remote versions of a project. ask diff
Runs validation tests on a skill. ask validate
Simulates an invocation of your skill with text input. The parameters are the same as for ask api simulate-skill. ask simulate
Opens a dialog mode in which developers can simulate a multi-turn conversation with Alexa. ask dialog
Provides utility tools to manage Alexa skill development ask util [subcommand]
Create and update the AWS Lambda function code, independent of skill management. ask lambda [subcommand]
Manage details of Alexa skills, including beta testing, associated with your developer account. Use these commands if you want to create or update portions of an Alexa skill. ask api [subcommand]
Create and manage in-skill products See the In-Skill Product Command Reference

init command

The ask init command helps you configure the credentials that ASK CLI uses to authenticate you to Amazon developer services and Amazon Web Services (AWS). This interactive command opens a web browser so you can sign in to your Amazon Developer account, and prompts you to enter information or answer questions about the credentials you want to use.

You can use ask init to view and configure profiles, which contain credentials for different Amazon or AWS accounts. With profiles, you can use ASK CLI to manage skills that belong to different account by using the -p or --profile option with commands like ask new, ask clone, ask deploy, and others.

For more details about how ASK CLI stores and manages your Amazon developer and AWS credentials, see Manage Credentials with ASK CLI.

Syntax:

ask init [-l | --list-profiles]
         [-p | --profile <profile>]
         [--no-browser]
         [--aws-setup]
         [--debug]
         [-h | --help]

Options:

-l
--list-profiles
Optional. Displays a list of profiles that ASK CLI can use.
-p <profile>
--profile <profile>
Optional. Specifies a profile to use for the credentials that you are configuring. If you omit this option, ASK CLI prompts you to choose the profile from a list or create a new one.
--no-browser
Optional. Use this option when you run the ask init command on a computer that does not have a web browser. ASK CLI displays a URL that you can use to sign in with your Amazon developer account by using a web browser on a different computer. After you sign in, the browser displays a code that you can enter at the command line to complete the configuration of your credentials.
--aws-setup
Optional. Use this option to skip the configuration of your Amazon developer credentials and configure only your AWS credentials.

new command

The ask new command creates a new skill project by copying from a skill template.

For an overview and usage examples, see create a new skill project in the ASK CLI overview.

Syntax:

ask new [--url <url> [--template <template name>]]
        [-n | --skill-name <skill name>]
        [--lambda-name <Lambda function name>]
        [-p | --profile <profile>]
        [--debug]
        [--help]

Options:

--url <Git or JSON URL> [--template <template name>]
Optional. One of the following:
  • The URL of a Git repository that contains a skill template.
  • The URL of a JSON file that contains a list of skill templates.
When --url is a JSON file, you can optionally use --template to provide the name of a template in the list.
-n <skill name>
--skill-name <skill name>
Optional. The skill name for the new skill project. ASK CLI uses this name to create a skill project folder on your computer. Can contain upper and lowercase letters (A-Z,a-z), numbers (0-9), underscores (_) and dashes (-).
--lambda-name <Lambda function name>
Optional. The name of the AWS Lambda function for the skill. If not provided, ASK CLI names the Lambda function the same as the skill name.
-p <profile>
--profile <profile>
Optional. The profile under which ASK CLI creates the skill. If not provided, ASK CLI uses the default profile.

deploy command

For an overview and usage examples, see deploy a skill project to the development stage in the ASK CLI overview.

Syntax:

ask deploy [--no-wait]
           [-t | --target <target value>]
           [--force]
           [-p | --profile <profile>]
           [--debug]
           [--help]

Options:

--no-wait
Optional. When you specify --no-wait, ASK CLI does not wait for the model to build and does not enable the deployed skill. If you use --no-wait, make sure that you use the --force parameter the next time you use the deploy command. Otherwise, the next deploy command will compare eTag values and will likely product a warning due to unmatched eTag values because the previous deploy command completed without waiting for the models to build.
-t <target value>
--target <target value>
Optional. Use this parameter to indicate which resources to deploy. Valid values are:
  • all – All of the following resources
  • skill – The skill manifest
  • model – The skill model or models
  • lambda – AWS Lambda source code and configuration
  • isp – In-skill products
--force
Optional. Uploads the local version of the specified resources without confirmation, even when they differ from the remote version of the resources.
-p <profile>
--profile <profile>
Optional. The profile under which ASK CLI deploys the skill resources. If not provided, ASK CLI uses the default profile.

clone command

Creates a new local skill project by cloning an existing skill from its development stage. You cannot clone a skill from its certified or live stage. When you clone a skill that includes in-skill purchases, the in-skill purchases will be cloned as well. See

clone command format:

$ ask clone [-s|--skill-id <skillId>] [-p| --profile <profile>] [--debug]

Options:

--skill-id, -s
Optional. The skill ID for the target skill. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--profile, -p
Optional. The profile under which the skill is cloned. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

If ask clone is run without options, then a list of skills (sorted by LastModified) will be displayed, and the user can select the skill from the list to clone.

Otherwise, with a specified skill-id, the command clones the skill to the current directory. It will also download the interaction model(s) and lambda function(s), if available. If the skill code is hosted at an HTTPS endpoint, rather than as an AWS Lambda function, then this is not downloaded.

After the download of the skill definition, ASK CLI will put the AWS Lambda function ARN into the .ask/config file and replace the endpoint:uri property in the skill.json file with sourceDir, which is the source directory for the codebase for the lambda function. This is to ensure the portability of the skill project and to enable deployment of the same skill to multiple profiles, if needed. If the skill has been hosted as a web service, instead of AWS Lambda, then no replacement occurs.

create-hosted-skill command

This command creates a new Alexa-hosted skill. For more details about Alexa-hosted skills, see About Alexa-hosted Skills.

When you use this command to create a new Alexa-hosted skill, ASK CLI does not clone the skill to your computer by default. After you create the Alexa-hosted skill, you can clone the skill to your computer with the ask clone command, or you can use the --auto-clone true option to create and clone the skill with one command.

If this is your first Alexa-hosted skill, ASK CLI opens a web browser so that you can sign in to your Amazon developer account and perform a CAPTCHA test. If you can't open a web browser on the local computer, you can use the --no-browser option to complete this step.

Syntax:

ask create-hosted-skill [--runtime <runtime>]
                        [-n | --skill-name <name>]
                        [--auto-clone <true | false>]
                        [--no-browser]
                        [-p | --profile <profile>]
                        [--debug]
                        [-h | --help]

Options:

--runtime <runtime>
Optional. The AWS Lambda runtime to use for the Alexa-hosted skill. Supported values are either nodejs10.x or python3.7.
-n <name>
--skill-name <name>
Optional. The name for the Alexa-hosted skill.
--auto-clone <true | false>
Optional. Determines whether to clone the Alexa-hosted skill to the local computer after it's created. Valid values are true or false.
--no-browser
Optional. Allows you to complete the CAPTCHA test for your first Alexa-hosted skill without opening a web browser on the local computer. Instead, the command output displays a URL that you can copy and then open using a web browser on another computer to sign in and complete the CAPTCHA test.
-p <profile>
--profile <profile>
Optional. The ASK CLI profile under which to create the Alexa-hosted skill.
--debug
Optional. Displays debug messages in the command output.
-h
--help
Optional. Displays the help message for the command.

diff command

List the differences between the local and remote versions of the specified target. If no target is specified, ASK CLI will show the diff for all resources. ASK CLI will first compare the local and remote eTag, and then tell you if the local version is based on the latest version, and then display the diff results. It is recommended that you run the diff command before using deploy, in order to list differences between the local and remote components of a project.

diff command format:

$ ask diff [-t|--target <target>] [-p| --profile <profile>] [--debug]

Options:

--target, -t
Optional. target specifies the project component for which the differences will be listed. Accepted values for target are: all, lambda, skill, model, and isp. The default target is all, if not specified.
--profile, -p
Optional. The profile under which the versions of the skill are compared. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

When the differences are listed, you as the developer can manually edit the local version to match what you want. When you have edited the local version as desired, you can then use deploy to update the remote version.

validate command

Runs tests that can be used to validate a skill before submission for certification or at any time during development as regression testing. Refer to Skill Validation API–Supported Validations for supported tests.

This is an asynchronous operation which polls the validation result until it is available. If you prefer to run the validation and obtain the validation results in two separate steps, see validate-skill and get-validation.

validate command format:

$ ask validate [-s|--skill-id <skillId>] [-l|--locales <locales>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Optional. The skill ID for the skill you want to validate. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123 If the skill-id is not specified, then this command must be run under the skill project root directory where the skill to be tested has already been created or cloned. If the skill-id is specified, then the command can be run from anywhere.
--locales, -l
Optional. List of locales. Supported values include ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, and pt-BR . If the ASK_DEFAULT_DEVICE_LOCALE environment variable named is set, this option does not need to be specified. If this option is not specified and the ASK_DEFAULT_DEVICE_LOCALE environment variable is not set, the command returns an error message to specify the environmental variable or the device locale.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. The profile under which the account linking configuration is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

simulate command

Simulates an invocation of your skill with text input. Under the hood, the command calls ask api simulate-skill and continues polling for the simulation status until it is finalized. The parameters are the same as for ask api simulate-skill.

simulate command format:

$ ask simulate [-f| --file <filepath>] [-t| --text <text>] [-l| --locale <locale>] [-s|--skill-id <skillId>] [--force-new-session] [-g| --stage] [-p| --profile <profile>] [--debug]

--file, -f
Do not use if <-t, --text> is specified. Otherwise, required. File path to the simulation utterance text content. Can be an absolute or relative path.
--text, -t
Do not use if <-f, --file> is specified. Otherwise, required. Utterance text input with which to simulate the skill.
--locale, -l
Optional if ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required. Locale for the skill to be simulated. Valid values are en-US, en-GB, en-CA, en-AU, en-IN, de-DE, or ja-JP. If not specified, you will be prompted to enter the locale.
--skill-id, -s
Optional. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123. If not provided, the CLI will find the skill ID from .ask/config file for the current profile.
--force-new-session
Optional. Starts a new dialog session before running the simulation.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.

dialog command

Opens a dialog mode in which developers can simulate a multi-turn conversation with Alexa. Each dialog uses simulate-skill, which is an asynchronous operation that continues to poll the simulation result until it's available and then shows the Alexa text responses. The interaction mode will not start if the parameters are invalid and will not end unless the user enters the special command '!quit' or Ctrl+C.

dialog command format:

ask dialog [-s|--skill-id <skill-id>] [-l|--locale <locale>] [-g|--stage <stage>] [-r|--replay <file-path>] [-o|--output <file-path>]

There are two special commands that the user can enter in the dialog: !quit, which terminates the interaction mode, and !record, which prompts the user to input a file name so the dialog input can be recorded, along with the current interaction mode skillId, locale, input type, and all input texts. The !record command will only record the user inputs in the latest session.

If you run this command with the --replay option, specify the recording file that contains the skill information and user input. The replay option replays the user inputs, and Alexa will respond as if in a conversation. See Replay file format. Do not specify the skillId in the command line.

If you run this command without the --replay option, then you enter the dialog directly, as if speaking to Alexa for the specified skill. You must either specify the skillId or run the command from the skill project root directory, and you must specify the locale.

If the skill session has not ended, you will continue to see the "User >" prompt on the command line, and you can continue to input text as if conversing with Alexa.

If the skill session is ended, you will see the line '—Skill Session Ended.—' in the command-line window, but the interaction mode remains open. You will still see the "User >" prompt, and you can continue to input text.

--skill-id, -s
Optional. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123. If skill-id is not specified, and if the --replay option is not specified, this command must be run from the skill project root directory where the skill to be tested has already been created or cloned. You cannot specify the skill-id if you use the --replay option.
--locale, -l
Optional if ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required if the --replay option is not used. Locale for the skill to be simulated. Valid values are en-US, en-GB, en-CA, en-AU, en-IN, de-DE, or ja-JP. If not specified and if the --replay option is not specified, you will be prompted to enter the locale. You cannot specify locale if you use the --replay option.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--replay, -r
Optional. Specify a replay file to simulate a conversation with your skill. This file will contain text utterances from the start of the session or your last recording point. You can use the recorded files to automate frequently used tests. This replay file may contain the skill-id and locale. If the file does not contain the skill-id, this command must be run from the skill project root directory where the skill to be tested has already been created or cloned.
--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.
--output, -o
Optional. Specify an output file to log all utterances, skill responses, and the associated JSON elements to a file. You can use the information in these output files to help debug your backend service logic.

Replay file format

The replay file takes the following format.

{
    "skillId":"amazon.skill.123..",
    "locale": "en-US",
    "type": "text",
    "userInput": ["book flight", "Vancouver", ...]
}
attribute description
skillId Specifies the skill to be simulated.
locale Specifies the locale that you want to test for the specified skill, such as "en-US".
type "text"
userInput An array of utterances that the user would say to the skill.

You can create a replay file manually with the appropriate information, following the format shown, and save the file for future use.

You can also create a replay file as follows:

  • Type the command ask dialog.
  • Enter !record at the prompt.
  • Enter the requested information as you are prompted for it. This will include the filename to save the file.

In either case, specify the desired replay file when you use the --replay option.

Ensure your replay file does not includes the special commands "!quit" or "!record", as those will result in an [Error]: Replay file should not include any special command. error message.

Catalog URL Reference

In your custom voice interaction model, you can create a slot type that references an external data source by catalog ID and version number. Use these commands to create and manage reference-based catalogs.

These commands are different from the Alexa catalog management API. You can use the Catalog Management API to upload your content catalog to Alexa. For more details, see Catalog Management REST API. To create a catalog, see Steps to create a catalog and upload content.

Supported Language:

JSON is the supported language for referenced-based catalog management.

create model catalog

You can use this command to create a catalog and catalog ID.

create-model-catalog command format:

$ ask api create-model-catalog <-n|--catalog-name <catalog-name>> [-d|--catalog-description <catalog-description>] [-p|--profile <profile>] [--debug]

Options

--catalog-name, -n,
Required. The name of the catalog.
--catalog-description, -d,
Optional. This provides the description of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

create model catalog version

You can use this command to create a catalog version.

create-model-catalog-version command format:

$ ask api create-model-catalog-version <-c|--catalog-id <catalog-id>> <-f|--file <file-path>> [-d|--version-description <version-description>] [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--file, -f,
Required. The file for the source.
--version-description, -d,
Optional. The description of the new version.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

get model catalog update status

You can use this command to track the status of the catalog creation.

get-model-catalog-update-status command format:

$ ask api get-model-catalog-update-status <-c|--catalog-id <catalog-id>> <-u|--update-request-id <update-request-id>> [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--update-request-id, -u,
Required. The catalog version update request ID.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

get model catalog

You can use this command to see the catalog name, description, date created, number of versions in a catalog.

get-model-catalog command format:

$ ask api get-model-catalog <-c|--catalog-id <catalog-id>> [-p|--profile <profile>] [--debug]

--catalog-id, -c,
Required. The ID of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

get model catalog version

Use this command to get the catalogID, version, and description.

get-model-catalog-version command format:

$ ask api get-model-catalog-version <-c|--catalog-id <catalog-id>> <--catalog-version <catalog-version>> [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--catalog-version,
Required. The version of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

update model catalog

The catalog metadata is updated with new values.

update-model-catalog command format:

$ ask api update-model-catalog <-c|--catalog-id <catalog-id>> [-d|--catalog-description <catalog-description>] [-n |--catalog-name [catalog-name]] [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--catalog-name, -n
Required. The name of the catalog.
--catalog-description, -d,
Optional. The description of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

update model catalog version

The catalog description metadata is updated with new values.

update-model-catalog-version command format:

$ask api update-model-catalog-version <-c|--catalog-id <catalog-id>> <--catalog-version <catalog-version>> [-d|--version-description <--version-description>] [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--catalog-version,
Required. The version of the catalog.
--catalog-description, -d,
Optional. The description of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

get model catalog values

Use this command to get the catalog values.

get-model-catalog-values command format:

$ ask api get-model-catalog-values <-c|--catalog-id <catalog-id>> <--catalog-version <catalog-version>> [--max-results <max-results>] [--next-token <next-token>] [--sort-direction <sort-direction>] [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--catalog-version,
Required. The version of the catalog.
--max-results
Required. The max results returned by the request.
--next-token
Required. Allows you to query the next page of results.
--sort-direction
Required. The order to sort results.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

list model catalogs

You can use this command to get a list of all available catalogs.

list-model-catalogs command format:

$ ask api list-model-catalogs [-m|--max-results <max-results>] [--max-results <max-results>] [--next-token <next-token>] [--sort-direction <sort-direction>] [-p|--profile <profile>] [--debug]

Options

--catalog-id, -c,
Required. The ID of the catalog.
--max-results
Required. The max results returned by the request.
--next-token
Required. Allows you to query the next page of results.
--sort-direction
Required. The order to sort results.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

list model catalog versions

Use this command to list all the versions of a catalog.

list-model-catalog-versions command format:

$ ask api list-model-catalog-versions <-c|--catalog-id <catalog-id>> [--max-results <max-results>] [--next-token <next-token>] [--sort-direction <sort-direction>] [-p|--profile <profile>] [--debug]

Options

--max-results
Required. The max results returned by the request.
--next-token
Required. Allows you to query the next page of results.
--sort-direction
Required. The order to sort results.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

delete model catalog

Use this command to delete all versions of a catalog and the catalog entity.

delete-model-catalog command format:

$ ask api delete-model-catalog <-c|--catalog-id <catalog-id>> [-p|--profile <profile>] [--debug]

--catalog-id, -c,
Required. The ID of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

delete model catalog version

Use this command to delete a specific version of a catalog.

delete-model-catalog-version command format:

$ ask api delete-model-catalog-version <-c|--catalog-id <catalog-id>> <--catalog-version <catalog-version>> [-p|--profile <profile>] [--debug]

--catalog-id, -c,
Required. The ID of the catalog.
--catalog-version,
Required. The version of the catalog.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

api command

The api command provides a number of subcommands that map 1:1 to the underlying API operations in Alexa Skill Management API (SMAPI). The commands allow detailed control of API inputs and expose raw outputs. There are subcommands for creating and updating the skill, interaction model, and account linking information as well as starting the skill certification process.

api command format:

$ ask api <subcommand>

Subcommands

Task Subcommand
Basic skill management  
Create a new skill create-skill
Get a skill manifest get-skill
Get the client ID and client secret that the Skill Messaging API needs for certain skill types get-skill-credentials
Delete a skill delete-skill
Update the skill configuration details update-skill
Get status of a skill after create/update call get-skill-status
Work with skill model  
Get an interaction model for a skill get-model
Update a model, or create a new interaction model for a skill. A build of the model is triggered. update-model
Get the ETag associated with an interaction model head-model
Get a list of interaction model versions for a skill list-model-versions
Manage account linking  
Add or update account linking configuration information for a skill create-account-linking
Get account linking configuration information for a skill get-account-linking
Delete account linking configuration information for a skill delete-account-linking
Manage skill beta testing (beta test)  
Create beta test create-beta-test
Update beta test update-beta-test
Get beta test get-beta-test
Start beta test start-beta-test
End beta test end-beta-test
Manage skill beta testing (testers)  
List beta testers list-beta-testers
Add beta testers add-beta-testers
Remove beta testers remove-beta-testers
Manage validation, certification, and publishing  
Run validation tests on a skill validate-skill
Get the results of the validation get-validation
Submit a skill for certification and possible publication submit
Publish a certified skill at a specific time publish-skill
Withdraw a skill from the certification process withdraw
Get a list of certification reviews for a skill list-certifications
Get the details about a specific certification review get-certification
Get the latest skill publishing details of the certified version of the skill get-skill-publications
Manage vendors  
Get the vendor IDs associated with your developer account list-vendors
List skills for a vendor list-skills
Manage skill enablement and disablement  
Enable a skill enable-skill
Disable a skill disable-skill
Get skill enablement get-skill-enablement
Manage skill invocation and simulation  
Invoke a skill invoke-skill
Simulate a skill simulate-skill
Get simulation result get-simulation
Get intent requests history intent-requests-history
Manage catalog information  
List catalogs by vendorId list-catalogs
Get catalog by catalogId get-catalog
Create a new catalog based on the catalog-type and catalog-title. create-catalog
List catalog uploads list-catalog-uploads
Get catalog upload get-catalog-upload
Associate catalog with a skill associate-catalog-with-skill
Upload a catalog upload-catalog
Manage smart home evaluation  
List all the test plan information for a given skill ID. list-smarthome-capability-test-plans
Create an capability evaluation against a Smart Home skill. start-smarthome-capability-evaluation
List Smart Home capability evaluation run for a skill. list-smarthome-capability-evaluations
Get top level information and status of a Smart Home capability evaluation. get-smarthome-capability-evaluation
Get test case results for an evaluation run. get-smarthome-capability-evaluation-results

create-skill subcommand

Creates a skill associated with your developer account from its skill.json file. Returns the skill ID and the skill status.

create-skill command format:

$ ask api create-skill [-f|--file <fileName>] [-p|--profile <profile>] [--debug]

Options:

--file, -f
Required. File path to the skill information file in .json format. Can be an absolute or relative path.
--profile, -p
Optional. The profile under which the skill is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard output.

get-skill subcommand

Outputs the schema for the skill with the specified skill ID to the terminal. You can optionally redirect this output to a file using the > operator as seen below.

$ ask api get-skill -s {skill_id} --stage development > skill.json

get-skill command format:

$ ask api get-skill [-s|--skill-id <skillId>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. Skill ID for the skill to get. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development
--profile, -p
Optional. The profile under which the skill schema is output. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard output.

get-skill-credentials subcommand

Outputs the clientId and clientSecret for the skill with the specified skill ID to the command window. You can optionally redirect this output to a file by using the > operator as shown in the following example.

$ ask api get-skill-credentials -s {skill-id} > credentials.json

get-skill-credentials command format:

$ ask api get-skill-credentials <-s|--skill-id <skill-id>> [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. Skill ID for the skill. The skill ID should be in the following format: `amzn1.ask.skill.12345678-1234-1234-123456789123`.
--profile, -p
Optional. The profile under which the ASK CLI retrieves the skill's credentials. If you don't include the profile, then the ASK CLI uses the default profile.
--debug
Optional. Appends a debug message to the standard output.

delete-skill subcommand

Deletes a skill. Once deleted, the skill cannot be retrieved.

delete-skill command format:

$ ask api delete-skill [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. Skill ID for the skill to delete. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--profile, -p
Optional. The profile under which the skill is deleted. If not included, the default profile is used. This profile must have the right to delete the skill.
--debug
Optional. Appends a debug message to the standard output.

update-skill subcommand

Updates the specified skill with the skill manifest provided with the --file option.

update-skill command format:

$ ask api update-skill [-s|--skill-id <skillId>] [-f|--file <fileName>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the skill to update. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--file, -f
Required. File path to the skill information file in .json format. Can be an absolute or relative path.
--stage, -g
Optional. Indicates stage of the skill. Only development is supported for this command.
--profile, -p
Optional. The profile under which the skill schema is created or updated. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

get-model subcommand

Retrieves the interaction model for the skill with the specified skill ID and locale. You can optionally redirect this output to a file using the > operator as shown in the following example.

ask api get-model -s {skill_id} --stage development -l {locale} > model.json

get-model command format:

ask api get-model <-s|--skill-id <skillId>> <-l|--locale <locale>> [-g|--stage <stage>] [--model-version <model-version>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. Skill Id for the target model. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--locale, -l
Optional if ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required. Locale for the skill to be simulated. Valid values are ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, or pt-BR . If not specified, you will be prompted to enter the locale.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--model-version
Optional. The version of the interaction model.
--profile, -p
Optional. The profile under which the model schema is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

update-model subcommand

Updates the interaction model for the specified skill and locale.

update-model command format:

ask api update-model <-s|--skill-id <skillId>> <-f|--file <fileName>> <-l|--locale <locale>> [-g|--stage <stage>] [-d|--description <description>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--file, -f
Required. File path to the models/{locale}.json file. Can be an absolute or relative path.
--locale, -l
Optional if ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required. Locale for the skill to be simulated. Valid values are ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, or pt-BR . If not specified, you will be prompted to enter the locale.
--stage, -g
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.
--description, -d
Optional. A description of this version of the interaction model.
--profile, -p
Optional. The profile under which the skill is updated. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

head-model subcommand

Enables you to get the ETag for the model of the skill with the specified skillId and locale. An Etag is a unique identifier for a version of a resource and enables you to validate the model hasn't changed before performing operations on it.

head-model command format:

$ ask api head-model [-s|--skill-id <skillId>] [-l|--locale <locale>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. Skill ID for the target model. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--locale, -l
Optional if ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required. Locale for the skill to be simulated. Valid values are ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, or pt-BR . If not specified, you will be prompted to enter the locale.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. The profile under which the ETag is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

list-model-versions subcommand

Get a list of the available versions of the interaction model for the specified skill. Interaction model versions are available only after they build successfully.

list-model-versions command format:

ask api list-model-versions <-s|--skill-id <skill-id>> <-l|--locale <locale>> [-g|--stage <stage>] [--max-results <max-results>] [--sort-direction <sort-direction>] [--sort-field <sort-field>] [--next-token <next-token>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The unique identifier of the skill whose interaction model versions you are listing.
--locale, -l
Required. The locale of the interaction model versions to list. Valid values are ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, or pt-BR .
--stage, -g
Optional. The stage of the skill whose interaction model versions you are listing. The only valid value is development (case sensitive).
--max-results
Optional. The maximum number of versions to list. When you don't include this option, the default maximum is 10. Do not specify a value higher than 50. The output of the command might contain fewer items than the value of this option, but will never contain more.
--sort-direction
Optional. Sets the sorting direction of the versions in the list. Valid values are asc (ascending) and desc (descending).
--sort-field
Optional. Sets the field for sorting the list. The only valid value is version.
--next-token
Optional. Use this option to get more versions, after you receive a response with truncated results. Set it to the value of nextToken from the truncated response you just received.
--profile, -p
Optional. The profile that owns the skill whose interaction model versions you are listing. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. Appends debug messages to the standard error output.

get-skill-status subcommand

Retrieves status of the skill and its interaction models.

get-skill-status command format:

$ ask api get-skill-status [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

--skill-id, -s
Required. The skill ID you are checking status for. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--profile, -p
Optional. The profile under which the skill status is retrieved. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

create-account-linking subcommand

Adds or updates account linking configuration details for the specified skill ID.

When you call create-account-linking you will be prompted to enter the following values. For more details on these values, see Configure Authorization Code Grant and accountLinkingRequestObject.

  • Authorization URL
  • Client ID
  • Scopes (comma-separated list)
  • Domains (comma-separated list)
  • Authorization Grant Type - Use arrow keys to choose either IMPLICIT or AUTH_CODE
  • If you choose AUTH_CODE, fill in the following additional information:
    • Access Token URL
    • Client Secret
    • Client Authentication Scheme: HTTP_BASIC or REQUEST_BODY_CREDENTIALS
    • Default Token Expiration Time In Seconds (optional)
    • Reciprocal Access Token URL (optional)
    • Redirect URLs for app-to-app account linking (comma-separated list) (optional)
  • Allow users to enable skill without account linking - choose YES or NO

The account linking information will not be stored on your computer due to its sensitive nature.

create-account-linking command format:

$ ask api create-account-linking [-s|--skill-id <skillId>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the skill to add account linking information for. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--stage, -g
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.
--profile, -p
Optional. The profile under which the account linking is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

get-account-linking subcommand

Gets the account linking configuration details and outputs them to the console. You should not store this information on your computer for security reasons.

get-account-linking command format:

$ ask api get-account-linking [-s|--skill-id <skillId>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the skill to get the account linking information for. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. The profile under which the account linking configuration is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

delete-account-linking subcommand

Deletes the account linking configuration for the specified skill and stage.

delete-account-linking command format:

$ ask api delete-account-linking [-s|--skill-id <skillId>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the skill to get the account linking information for. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--stage, -g
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.
--profile, -p
Optional. The profile under which the account linking configuration is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

create-beta-test subcommand

Creates a beta test for your skill based on the specified skill ID.

create-beta-test command format:

$ ask api create-beta-test <-s|--skill-id <skillId>> [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for which to create the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the skill beta test is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

update-beta-test subcommand

Updates an existing beta test.

update-beta-test command format:

$ ask api update-beta-test <-s|--skill-id <skillId>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for which to create the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the skill beta test is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

get-beta-test subcommand

Returns an existing beta test.

get-beta-test command format:

$ ask api get-beta-test <-s|--skill-id <skillId>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for which to create the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the skill beta test is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

start-beta-test subcommand

Starts a beta test.

start-beta-test command format:

$ ask api start-beta-test <-s|--skill-id <skillId>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for which to start the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the skill beta test is started. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

end-beta-test subcommand

Ends a beta test.

end-beta-test command format:

$ ask api end-beta-test <-s|--skill-id <skillId>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for which to end the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the skill beta test is ended. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

list-beta-testers subcommand

Lists all associated testers to a beta test.

list-beta-testers command format:

$ ask api list-beta-testers <-s|--skill-id <skillId>> [--max-results <value>] [--next-token <value>] [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile that owns the skill beta test. If not included, the default profile is used.
--max-results

Optional. Maximum number of result items that are given in the response. By default, the value is set to 50. If entered, set value to be a positive integer between 1-500 (inclusive), as 500 is the upper limit.

--next-token

Optional. The value is used to sequentially page through the result items. Use –next-token along with the –max-results parameter to specify how many results should be loaded in the page. To load the first page, the –next-token value can be set to null. This token value expires in 24 hours, and is bound to the set of filters and the skillId that were used to obtain it. This token value will be ignored if used with other parameters, and in that case, the first page of results for the new search parameters will be returned.

--profile, -p
Optional. The profile under which the skill beta test is ended. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

add-beta-testers subcommand

Adds testers to an existing beta test.

add-beta-testers command format:

$ ask api add-beta-testers <-s|--skill-id <skillId>> <-f|--file <fileName>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--file, -f
Required. File path to the testers email address file in .csv format. Can be an absolute or relative path. The testers email addresses should be listed in the first column with any header in the .csv file.
--profile, -p
Optional. The profile under which the testers are added. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

remove-beta-testers subcommand

Removes testers from an existing beta test.

remove-beta-testers command format:

$ ask api remove-beta-testers <-s|--skill-id <skillId>> <-f|--file <fileName>> [-p|--profile <profile>] [--debug]

Options

--skill-id, -s
Required. The skill ID for the beta test. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--file, -f
Required. File path to the testers email address file in .csv format. Can be an absolute or relative path. The testers email addresses should be listed in the first column with any header in the .csv file.
--profile, -p
Optional. The profile under which the testers are removed. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

validate-skill subcommand

Runs tests that can be used to validate a skill before submission for certification or at any time during development as regression testing. Refer to Skill Validation API–Supported Validations for supported tests.

You can also use the validate-skill subcommand to check if your skill updates are eligible to instantly update your live skill.

The validate-skill command returns a validation-id value which can be used with the get-validation to query the validation results. The high-level validate command combines the validation and retrieval operations in one.

validate-skill command format:

$ ask api validate-skill [-s|--skill-id <skillId>] [-l|--locales <locales>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the skill you want to validate. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--locales, -l
Optional. List of locales. Supported values include ar-SA, de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, and pt-BR . This option is not required if the ASK_DEFAULT_DEVICE_LOCALE environment variable is set. If this option is not specified and ASK_DEFAULT_DEVICE_LOCALE is not set, the command returns an error message to specify the environmental variable or the device locale.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. The profile under which the account linking configuration is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

get-validation subcommand

Returns the validation result generated when the validate-skill subcommand is run.

The high-level validate command combines the validation and retrieval operations in one.

get-validation command format:

$ ask api get-validation <-i|--validation-id <validationId>> <-s|--skillId <skillId>> [-p|--profile <profile>] [--debug]

Options:

--validation-id, -i
Required. Validation ID for the skill validation request. This is obtained from running the validate-skill subcommand.
--skill-id, -s
Required. The skill ID for the skill you want to validate. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123
--profile, -p
Optional. The profile under which the account linking configuration is obtained. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

submit subcommand

Enables you to submit a skill for certification and possible publication. You can choose to submit the skill for certification and publication into one command, or you can choose to submit the skill for certification only. If you submit a certified skill for publication in a separate operation with publish-skill, you can control the release date and time.

submit command format:

$ ask api submit <-s|--skill-id <skill-id>> [--publication-method <publication-method>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the target skill. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--publication-method
Optional. One of: AUTO_PUBLISHING, MANUAL_PUBLISHING. If not included, the default AUTO_PUBLISHING is used. With AUTO_PUBLISHING, submission for certification and publication are combined, and you cannot control the release date to the Alexa Skill Store. You can also use AUTO_PUBLISHING to update your live skill instantly. With MANUAL_PUBLISHING, you can use the publish-skill command to set a release date.
--profile, -p
Optional. The profile under which the skill is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

Examples

Certification and publication operations are combined. You cannot set the date at which the skill is published to the Alexa Skill Store.

$ ask api submit --skill-id <Skill ID> --publication-method AUTO_PUBLISHING

Certification-only operation. Publication can be done separately with ask api publish-skill, after certification is complete.

ask api submit --skill-id <Skill ID> --publication-method MANUAL_PUBLISHING

publish-skill subcommand

Enables you to set a publication date to the Alexa Skill Store for your skill. You can choose to separate the certification and publication processes when you submit a skill.

publish-skill command format:

$ ask api publish-skill <-s|--skill-id <skill-id>> <-a|--accept-language <accept-language>> [--publishes-at-date <publishes-at-date>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the target skill. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--accept-language
Required. Receive a localized response in the specified language. Valid values are en-US and ja-JP.
--publish-at-date
Optional. Use the datetime value, in UTC format, at which you want the skill published to the Alexa Skill Store. Example: `2019-12-22T20:54:02Z `. If you do not enter a datetime value, the publication process begins immediately.
--profile, -p
Optional. The profile under which the skill is created. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

Examples

Set a future release date for a certified skill, with an en-US response.

$ask api publish-skill -s <Skill ID> --publishes-at-date 2019-12-22T20:54:02Z --accept-language en-US

Starts the publishing process immediately for a certified skill, with an en-US response.

$ ask api publish-skill -s <Skill ID> --accept-language en-US

withdraw subcommand

Enables you to withdraw a skill from the certification process. You will be asked to provide a reason for the withdrawal. The choices are:

  • This is a test skill and not meant for certification
  • I want to add more features to the skill
  • I discovered an issue with the skill
  • I haven't received certification feedback yet
  • I do not intend to publish the skill right away
  • Other reason

If you choose other, you can enter more information about the withdrawal.

withdraw command format

$ ask api withdraw [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. The skill ID for the target skill. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--profile, -p
Optional. The profile under which the skill is withdrawn. If not included, the default profile is used.
--debug
Optional. Appends a debug message to the standard error.

list-certifications subcommand

Get a list of all completed and ongoing certification reviews for a skill.

list-certifications command format:

ask api list-certifications <-s|--skill-id <skill-id>> [--max-results <max-results>] [--next-token <next-token>] [-p|--profile <profile>] [--debug]

Options:

-s, --skill-id
Required. Unique identifier of the skill whose certifications you are listing.
--max-results
Optional. The maximum number of certifications to return in the response. When you don't include this option, the default maximum is 50. Do not specify a value higher than 50. The response might contain fewer items than the value of this option, but will never contain more.
--next-token
Optional. Use this option to get more certifications, after you receive a response with truncated results. Set it to the value of nextToken from the truncated response that you just received.
-p, --profile
Optional. The profile that owns the skill whose certifications you are listing. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. Appends debug messages to the standard error output.

Example:

The following example contains line breaks within values to make it easier to read. Actual output does not contain line breaks within values.

ask api list-certifications --skill-id amzn1.ask.skill.example9-3991-41e5-bb00-example88163 \
                            --max-results 4

{
  "_links": {
    "next": {
      "href": "/v1/skills/amzn1.ask.skill.example9-3991-41e5-bb00-example88163/certifications\
               ?maxResults=4\
               &nextToken=ebFDQ5bxOYjkuXS0EXAMPLE_TOKEN"
    },
    "self": {
      "href": "/v1/skills/amzn1.ask.skill.example9-3991-41e5-bb00-example88163/certifications\
               ?maxResults=4"
    }
  },
  "isTruncated": true,
  "items": [
    {
      "id": "nJhXMnau",
      "reviewTrackingInfo": {
        "estimatedCompletionTimestamp": "",
        "lastUpdated": "2019-02-01T01:01:34.627Z"
      },
      "skillSubmissionTimestamp": "2019-01-18T01:03:29.526Z",
      "status": "IN_PROGRESS"
    },
    {
      "id": "0yGjdNhD",
      "reviewTrackingInfo": {
        "actualCompletionTimestamp": "2019-01-21T17:17:09.462Z",
        "estimatedCompletionTimestamp": "2019-01-21T18:03:09.145Z",
        "lastUpdated": "2019-01-21T17:17:09.462Z"
      },
      "skillSubmissionTimestamp": "2019-01-16T18:03:09.145Z",
      "status": "SUCCEEDED"
    },
    {
      "id": "QJGBDdHj",
      "reviewTrackingInfo": {
        "actualCompletionTimestamp": "2019-01-16T17:50:50.960Z",
        "estimatedCompletionTimestamp": "2019-01-21T17:27:25.889Z",
        "lastUpdated": "2019-01-16T17:50:50.960Z"
      },
      "skillSubmissionTimestamp": "2019-01-16T17:27:25.889Z",
      "status": "CANCELLED"
    },
    {
      "id": "YeQ37Nws",
      "reviewTrackingInfo": {
        "actualCompletionTimestamp": "2019-01-16T17:22:42.188Z",
        "estimatedCompletionTimestamp": "2019-01-23T03:31:40.229Z",
        "lastUpdated": "2019-01-16T17:22:42.188Z"
      },
      "skillSubmissionTimestamp": "2019-01-09T03:31:40.229Z",
      "status": "CANCELLED"
    }
  ],
  "nextToken": "ebFDQ5bxOYjkuXS0EXAMPLE_TOKEN",
  "totalCount": 13
}

get-certification subcommand

Get the details about a specific certification review for a skill. To use this command, you need the certification ID from the output of the list-certifications command.

When you use this command to get details about an ongoing certification review, it always returns output. However, getting details for an old certification might not. When the details about an old certification are not available, you receive an error (Error code: 404).

get-certification command format:

ask api get-certification <-s|--skill-id <skill-id>> <-c|--certification-id <certification-id>> [--accept-language <language-code>] [-p|--profile <profile>] [--debug]

Options:

-s, --skill-id
Required. Unique identifier of the skill whose certification you are getting.
-c, --certification-id
Required. Unique identifier of the certification review to get. To get the most recent certification review, use a value of ~mostRecent. To get a certification review which is not the most recent, first get a list of certification reviews for the skill, then use the ID of the certification review that you want to get.
--accept-language
Optional. You can use this option to receive a localized response. Valid values are en-US and ja-JP.
-p, --profile
Optional. The profile that owns the skill whose certification you are getting. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. Appends debug messages to the standard error output.

Example:

The following example contains line breaks within values to make it easier to read. Actual output does not contain line breaks within values.

ask api get-certification -s amzn1.ask.skill.example9-3991-41e5-bb00-example88163 -c 0yGjdNhD

{
  "id": "0yGjdNhD",
  "result": {
    "distributionInfo": {
      "publicationFailures": [
        {
          "countries": [
            "India"
          ],
          "reason": "Some countries and regions in which we publish skills may have more \
           restrictive standards for what qualifies as offensive and can be non-compliant content. \
           We may restrict any skill from being published in any country/region where distribution \
           of that skill's content would violate that country's or region's laws, cultural norms, \
           or sensitivities."
        }
      ],
      "publishedCountries": [
        "United States"
      ]
    }
  },
  "reviewTrackingInfo": {
    "actualCompletionTimestamp": "2019-01-21T17:17:09.462Z",
    "estimatedCompletionTimestamp": "2019-01-21T18:03:09.145Z",
    "estimationUpdates": [],
    "lastUpdated": "2019-01-21T17:17:09.462Z"
  },
  "skillSubmissionTimestamp": "2019-01-16T18:03:09.145Z",
  "status": "SUCCEEDED"
}

get-skill-publications subcommand

Get the latest skill publishing details of the certified version of the skill. The response returns the status and the scheduled publication date. Possible status values are: IN_PROGRESS, SUCCEEDED, FAILED, CANCELLED, SCHEDULED.

get-skill-publications command format:

$ ask api get-skill-publications <-s|--skill-id <skill-id>> <-a|--accept-language <accept-language>> [-p|--profile <profile>] [--debug]

Options:

-s, --skill-id
Required. Unique identifier of the skill whose publication details you are getting.
--accept-language
Required. Receive a localized response in the specified language. Valid values are en-US and ja-JP.
-p, --profile
Optional. The profile that owns the skill whose publication details you are getting. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. Appends debug messages to the standard error output.

Example

Command:

$ ask api get-skill-publications -s amzn1.ask.skill.b2345e73-c482-4e5d-a259-f8bf2bb02137 -a en-US

Response:

{
  "publishesAtDate": "2019-12-31T21:30:02Z",
  "status": "SCHEDULED"
}

list-vendors subcommand

Gets the vendor IDs associated with your developer account, and specifies the developer's associated role to the vendor ID.

list-vendors command format:

$ ask api list-vendors [-p|--profile <profile>] [--debug]

Sample output:

[
  {
    "id": "MYVENDORID1234567",
    "name": "Amazon",
    "roles": [
      "ROLE_ADMINISTRATOR"
    ]
  }
]

Options:

--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.

list-skills subcommand

List the skills for the current profile. The list is returned in JSON format.

list-skills command format:

$ ask api list-skills [-p|--profile <profile>] [--debug]

Sample output:

{
    "skills": [
        {
            "lastUpdated": "2017-07-11T19:29:57.120Z",
            "nameByLocale": {
                "en-US": "example"
            },
            "stage": "development",
            "apis": [
                "custom",
                "householdList"
            ],
            "publicationStatus": "DEVELOPMENT",
            "skillId": "amzn1.ask.skill.6acdbdf8-8420-440e-823e-aaaaaaaabbbb"
        },
        {
            "lastUpdated": "2017-07-05T21:11:16.947Z",
            "asin": "ACIS-QA-xxxxxxx",
            "nameByLocale": {
                "en-US": "example1"
            },
            "stage": "live",
            "apis": [
                "video"
            ],
            "publicationStatus": "PUBLISHED",
            "skillId": "amzn1.ask.skill.81ded88f-0d0a-4612-aaaaaaaabbbb"
        }
    ]
}

The complete list of skills for the specified vendor are returned. If any of these skills are invalid or corrupted, then that skill will have the skillId, stage, lastUpdated, and publicationStatus values returned, but not the nameByLocale value.

Options:

--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.

enable-skill subcommand

Creates or updates an enablement for the specified skillId and stage.

$ ask api enable-skill <-s|--skill-id <skillId> [-g|--stage <stage>]

Options:

--skill-id, -s
Required. Skill Id for the target skill.
--stage
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.

disable-skill subcommand

Disables an enablement for the specified skillId and stage.

$ ask api disable-skill <-s|--skill-id <skillId> [-g|--stage <stage>]

Options:

--skill-id, -s
Required. Skill Id for the target skill.
--stage
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.

get-skill-enablement subcommand

Checks whether an enablement exist for a given skillId and stage.

$ ask api get-skill-enablement <-s|--skill-id <skillId> [-g|--stage <stage>]

Options:

--skill-id, -s
Required. Skill Id for the target skill.
--stage
Optional. Indicates stage of the skill. Defaults to development, which is the only supported value for this command.

invoke-skill subcommand

Invokes the specified skill. Before this command can be used, the skill must first be enabled through the Alexa app.

invoke-skill command format:

$ ask api invoke-skill [-f|--file <file>] [-s|--skill-id <skillId>] [-j|--json <json>] [-e|--endpoint-region <endpoint-region>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--skill-id, -s
Required. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--file, -f
Do not use if <-j, --json> is specified. Otherwise, required. File path to the skill invocation request. The request format is defined in here. Can be an absolute or relative path.
--json, -j
Do not use if <-f, --file> is specified. Otherwise, required. JSON string.
--endpoint-region, -e

Required. Indicates the endpoint region used by the skill. Can be "NA", "EU", "FE", or "default". The "default" region is determined from the global default endpoint specified by apis.custom.endpoint in the skill manifest.

--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.

simulate-skill subcommand

Simulates the specified skill. Before this command can be used, the skill must first be enabled through the Alexa app.

simulate-skill command format:

$ ask api simulate-skill [-f|--file <file>] [-t|--text <text>] [-l|--locale <locale>] [-s|--skill-id <skillId>] [-g|--stage <stage>] [--force-new-session] [-p|--profile <profile>] [--debug]

Options:

--file, -f
Do not use if <-t, --text> is specified. Otherwise, required. File path to the simulation utterance text content. Can be an absolute or relative path.
--text, -t
Do not use if <-f, --file> is specified. Otherwise, required. Utterance text input with which to simulate the skill.
--locale, -l
Optional if the ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise, required. Locale for the skill to be simulated. Valid values are en-US, en-GB or de-DE. If not specified, you will be prompted to enter the locale.
--skill-id, -s
Required. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--force-new-session
Optional. Starts a new dialog session before running the simulation.
--profile, -p
Optional. To use a profile other than the default, include the profile name.
--debug
Optional. Appends a debug message to the standard error.

get-simulation subcommand

Get the simulation result for a specific simulation ID. Each time the simulate-skill command is run, a simulation ID results.

get-simulation command format:

$ ask api get-simulation [-i|--simulation-id <simulation-id>] [-s|--skill-id <skillId>] [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

Options:

--simulation-id, -i
Required. This should be in the format of UUID b8e4ea04-7df3-11e7-bb31-be2e44b06b34.
--skill-id, -s
Required. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--profile, -p
Optional. To use a profile other than the default, include the profile name.
--stage, -g
Optional. Indicates stage of the skill. Use development or live as values. Defaults to development.
--debug
Optional. Appends a debug message to the standard error.

intent-requests-history subcommand

Provides skill developers with the aggregated and anonymized transcriptions of user speech data and intent request details for their skills, on a per-skill basis. A skill must have at least 10 unique users per locale in a day, in order for data to be available for that locale for that day. If some locales meet the threshold and other locales do not, data is returned only for those locales that meet the threshold.

$ ask api intent-requests-history <-s|--skill-id <skillId>> [--filters <value>] [--max-results <value>] [--sort-direction <value>] [--sort-field <value>] [--next-token <value>]

To get intent request history for a skill with no filters applied, and no defaults changed, reference the skillId with no other parameters, as shown in the following example.

$ ask api intent-requests-history --skill-id amzn1.ask.skill.12345678-1234-1234-123456789123

Options

--skill-id, -s
Required. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--filters
Optional. Filters take the form shown in the following examples.
To get the intent request history for a skill with maximum 100 results in a page:
$ ask api intent-requests-history --skill-id amzn1.ask.skill.12345678-1234-1234-123456789123 --max-results 100

To get the intent request history that is filtered to include only en-US and en-GB locales:

$ ask api intent-requests-history --skill-id amzn1.ask.skill.12345678-1234-1234-123456789123 --filters "Name=locale, Values=en-US,en-GB"

To get intent request history for a skill using multiple filters:

$ ask api intent-requests-history --skill-id amzn1.ask.skill.12345678-1234-1234-123456789123 --filters "Name=locale, Values=en-US,en-GB; Name=intent.name, Values=PlayMusic,StopMusic"

The shorthand syntax is:

Name=string,Values=string,string ...

You can filter by the following parameters.

dialogAct.name - dialogAct.name filter matches the result items where the "dialogAct.name" value matches one of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. These values arise in the context of a multi-turn conversation. For more details about the Dialog directive and multi-turn conversations, see <a href="https://developer.amazon.com/docs/custom-skills/dialog-interface-reference.html"/a> locale - locale filter matches the result items where the locale value matches one of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. (en-US | en-GB | en-IN | en-CA | en-AU | de-DE | fr-FR | ja-JP)

intent.confidence.bin - intent.confidence.bin filter matches the result items where the intent.confidence.bin value matches one of the values in this filter. Note that at runtime, skills do not receive intents with LOW confidence. This filter can have multiple values. This filter is not case-sensitive. (HIGH | MEDIUM | LOW)

stage - stage filter matches the result items where the stage value matches one of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. (live | development)

publicationStatus - publicationStatus filter matches the result items where the publicationStatus value matches one of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. (CERTIFICATION | DEVELOPMENT)

utteranceText - utteranceText filter matches the result items based on a full-text search of utteranceText values. This filter can have multiple values. This filter is not case-sensitive. (Any String)

intent.name - intent.name filter matches the result items where the intent.name values matches one of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. (Any String)

intent.slot.name - intent.slot.name filter matches the results where the intent.slots.slot.name matches one or more of the values in this filter. This filter can have multiple values. This filter is not case-sensitive. (Any String)

interactionType - interactionType filter matches the results where the interactionType value matches one of the value(s) in this filter. This filter can have multiple values. This filter is not case-sensitive. (ONE_SHOT | MODAL)
--max-results
Optional. Maximum number of result items that are given in the response. By default, this number is set to 10. maxResult has an upper limit of 250. Positive integer between 1-250 (inclusive).
--sort-direction
Optional. The order in which sorting is applied. By default, the sorting order is descending. This field is not case-sensitive. (asc | desc)
--sort-field
Optional. Result items are sorted according to the value of the field specified in this attribute. Sorting order is defined in a separate attribute called --sort-direction. This field is not case-sensitive. (dialogAct.name | locale | intent.confidence.bin | stage | intent.name | utteranceText | interactionType | publicationStatus)
--next-token
Optional. nextToken is used to sequentially page through the result items. Use nextToken along with the maxResults parameter to specify how many results should be loaded in the page. To load the first page this property can be set to null. It expires in 60 minutes. This token is bound to the set of filters and the skillId that were used to obtain it, and will be ignored if used with other parameters: the first page of results for the new search parameters will be returned.

list-catalogs subcommand

$ ask api list-catalogs [--max-results <max-results>] [--next-token <next-token>] [-p|--profile <profile>] [--debug]

List all the catalogs by the selected profile's vendor-id.

Options

--max-results
Optional. Maximum number of result items that are given in the response.
--next-token
Optional. `nextToken` is used to sequentially page through the result items. To load the first page this property can be set to null.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

get-catalog subcommand

$ ask api get-catalog <-c|--catalog-id <catalog-id>> [-p|--profile <profile>] [--debug]

Get the catalog information by the catalog-id.

Options

-c, --catalog-id
Required. The catalog ID for the requested catalog.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

create-catalog subcommand

$ ask api create-catalog <--catalog-type <catalog-type>> <--catalog-title <catalog-title>> <--catalog-usage <catalog-usage>> [-p|--profile <profile>] [--debug]

Create a new catalog based on the catalog-type, catalog-title, and catalog-usage.

Options

--catalog-type
Required. The catalog type for the new catalog. Select one of: "AMAZON.MusicAlbum", "AMAZON.MusicGroup", "AMAZON.Genre", "AMAZON.MusicPlaylist", "AMAZON.MusicRecording", "AMAZON.BroadcastChannel". The catalog-type value must match the catalog-usage value. Thus, if you select "AMAZON.MusicAlbum" as the catalog-type, you must select "AlexaMusic.Catalog.MusicAlbum" for the catalog-usage value.
--catalog-title
Required. The catalog title for the new catalog.
--catalog-usage
Required. The catalog usage for the new catalog. Select one of: "AlexaMusic.Catalog.MusicAlbum", "AlexaMusic.Catalog.MusicGroup", " AlexaMusic.Catalog.Genre", " AlexaMusic.Catalog.MusicPlaylist", " AlexaMusic.Catalog.MusicRecording", " AlexaMusic.Catalog.BroadcastChannel". The selected value must correspond to the catalog-type value.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

list-catalog-uploads subcommand

$ ask api list-catalog-uploads <-c|--catalog-id <catalog-id>> [--max-results <max-results>] [--next-token <next-token>] [-p|--profile <profile>] [--debug]

List all the uploads information for the specified catalog.

Options

-c, --catalog-id
Required. The catalog ID for the catalog to list uploads for.
--max-results
Optional. Maximum number of result items that are given in the response.
--next-token
Optional. `nextToken` is used to sequentially page through the result items. To load the first page this property can be set to null.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

get-catalog-upload subcommand

$ ask api get-catalog-upload <-c|--catalog-id <catalog-id>> <-u|--upload-id <upload-id>> [-p|--profile <profile>] [--debug]

Get the upload details.

Options

-c, --catalog-id
Required. The catalog ID for the requested catalog.
-u, --upload-id
Required. Upload ID for the upload.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

associate-catalog-with-skill subcommand

$ ask api associate-catalog-with-skill <--skill-id <skill-id>> <-c|--catalog-id <catalog-id>> [-p|--profile <profile>] [--debug]

Associate a catalog with a skill.

Options

-s, --skill-id
Required. Skill ID for the skill to list all its associated catalogs.
-c, --catalog-id
Required. The catalog ID for the requested catalog.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

upload-catalog subcommand

$ ask api upload-catalog <-c|--catalog-id <catalog-id>> <-f|--file <file>> [-p|--profile <profile>] [--debug]

Update catalog with a file. The upload uses a multi-part upload strategy to upload the new content to an Amazon S3 (Simple Cloud Storage Solution) bucket.

When you enter this command, the process is as follows:

  1. ASK CLI first suggest the number of parts calculated based on the default part size (8MB).
  2. This command then sends a request to create an upload for the catalog. You are then prompted to confirm or to use another number. ASK CLI will display the range of acceptable parts numbers, where the upper limit is to guarantee each part must be larger than 5MB.
  3. ASK CLI receives a list of pre-signed URLs from Amazon S3 when the upload is created.
  4. ASK CLI reads the file into a stream and partitions the file with the part number that you have just confirmed.
  5. Once all the parts are uploaded successfully, ASK CLI sends a list of eTags for each part to complete the upload.

Options

-c, --catalog-id
Required. The catalog ID for the requested catalog.
-f, --file
Required. File that contains catalog content.
--profile, -p
Optional. The profile to be updated or created. If the specified profile already exists, the CLI will overwrite the profile with the user's inputs. If not provided, the CLI will start an interactive prompt that lets the user either create a new profile or update an existing one.
--debug
Optional. Appends a debug message to the standard error.

create-nlu-annotation-set subcommand

Creates a new annotation set for the specified skill. This command returns the annotation ID that you use to upload or update an annotation set.

ask api create-nlu-annotation-set <-s|--skill-id <skill-id>> <-l|--locale <locale>> <-n|--annotation-set-name <annotation-set-name>> [-p|--profile <profile>] [--debug]

Options

-s, --skill-id
Required. The identifier of the skill for the annotation set.
-l, --locale
Required. The locale of the skill's interaction model for the annotation set. For example: en-US, en-GB, de-DE, and so on.
-n, --annotation-set-name
Required. A name for the annotation set.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

list-nlu-annotation-sets subcommand

Gets a list of annotation sets for the specified skill.

ask api list-nlu-annotation-sets <-s|--skill-id <skill-id>> [-l|--locale <locale>] [--next-token <next-token>] [--max-results <max-results>] [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The ID of the skill for which to list annotation sets.
-l, --locale
Optional. A locale for filtering the results returned in the response. For example: en-US, en-GB, de-DE, and so on.
--next-token
Optional. Use this parameter to get more annotation sets, after you receive a response with incomplete results. Set it to the value of nextToken from the incomplete response you just received.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 10. When you include this parameter, the response might contain fewer items than the value you specify, but will never contain more. You cannot specify a value higher than 100.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

update-nlu-annotation-set-annotations subcommand

Uploads a new annotation set, or, when an annotation set exists for the specified identifier, updates it with the annotation set in the annotation set file.

To use this command, you must have an annotation set file. You can create your annotation set file in JSON or CSV format. For more details, see NLU Annotation Set REST API Reference.

ask api update-nlu-annotation-set-annotations <-s|--skill-id <skill-id>> <-a|--annotation-id <annotation-id>> <-f|--annotations-file <annotations-file>> <--annotations-format <annotations-format>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The identifier of the skill for this annotation set.
-a, --annotation-id
Required. The identifier of the annotation set to upload or update.
-f, --annotations-file
Required. The local file on your computer that contains the annotation set to upload or update.
--annotations-format
Required. Specify either application/json or application/csv, whichever corresponds to your annotation set file.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-nlu-annotation-set-annotations subcommand

Gets the specified annotation set for the specified skill.

ask api get-nlu-annotation-set-annotations <-s|--skill-id <skill-id>> <-a|--annotation-id <annotation-id>> <--annotations-format <annotations-format>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The identifier of the skill for the annotation set.
-a, --annotation-id
Required. The identifier of the annotation set to get.
--annotations-format
Required. Specify application/json to get the annotation set in JSON format, or application/csv to get it in CSV format.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

update-nlu-annotation-set-properties subcommand

Updates the properties of the specified annotation set. Currently, the only property you can update is the name.

ask api update-nlu-annotation-set-properties <-s|--skill-id <skill-id>> <-a|--annotation-id <annotation-id>> <-n|--annotation-set-name <annotation-set-name>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The identifier of the skill for the annotation set.
-a, --annotation-id
Required. The identifier of the annotation set whose properties to update.
-n, --annotation-set-name
Required. A name for the annotation set.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-nlu-annotation-set-properties subcommand

Gets the properties of the specified annotation set, including the name, locale, number of annotation entries, and the timestamp when the annotation set was last updated.

ask api get-nlu-annotation-set-properties <-s|--skill-id <skill-id>> <-a|--annotation-id <annotation-id>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The identifier of the skill for the annotation set.
-a, --annotation-id
Required. The identifier of the annotation set whose properties to get.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

delete-nlu-annotation-set subcommand

Deletes an annotation set.

ask api delete-nlu-annotation-set <-s|--skill-id <skill-id>> <-a|--annotation-id <annotation-id>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The identifier of the skill for the annotation set.
-a, --annotation-id
Required. The identifier of the annotation set to delete.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

evaluate-nlu subcommand

Start an evaluation of the natural language understanding (NLU) model derived from the skill's interaction model, using the specified annotation set.

ask api evaluate-nlu <-s|--skill-id <skill-id>> <-l|--locale <locale>> <-a|--annotationId <annotation-id>> [-g|--stage <stage>] [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The ID of the skill whose model to evaluate against.
-l, --locale
Required. The locale of the interaction model to evaluate against. For example: en-US, en-GB, de-DE, and so on.
-a, --annotation-id
Required. The identifier of the annotation set to use in the evaluation. You get this identifier when you create a new annotation set or list the annotation sets for a skill.
-g, --stage
Required. The stage of the skill whose model to evaluate against. Valid values are development and live.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

list-nlu-evaluations subcommand

Get a list of evaluations. You can optionally page and filter the results.

ask api list-nlu-evaluations <-s|--skill-id <skill-id>> [-g|--stage <stage>] [-l|--locale <locale>] [--next-token <next-token>] [--max-results <max-results>] [-a|--annotation-id <annotation-id>] [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The ID of the skill for which to list evaluations.
-g, --stage
Optional. A stage for filtering the results returned in the response. Valid values are development and live.
-l, --locale
Optional. A locale for filtering the results returned in the response. For example: en-US, en-GB, de-DE, and so on.
--next-token
Optional. Use this option to get more evaluations, after you receive a response with incomplete results. Set it to the value of nextToken from the incomplete response you just received.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this option, the default maximum is 10. When you include this option, the response might contain fewer items than the value you specify, but will never contain more. You cannot specify a value higher than 100.
-a, --annotation-id
Optional. An identifier for filtering the results returned in the response to only those evaluations started from the specified annotation set.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-nlu-evaluation subcommand

Get information about a the specified evaluation, including its status.

ask api get-nlu-evaluation <-s|--skill-id <skill-id>> <-e|--evaluation-id <evaluation-id>> [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The ID of the skill whose evaluation to get.
-e, --evaluation-id
Required. The ID of the evaluation to get.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-nlu-evaluation-results subcommand

Get the results of an evaluation. You can optionally page and filter the results.

ask api get-nlu-evaluation-results <-s|--skill-id <skill-id>> <-e|--evaluation-id <evaluation-id>> [--sort-field <sort-field>] [--test-case-status <test-case-status>] [--actual-intent-name <actual-intent-name>] [--expected-intent-name <expected-intent-name>] [--next-token <next-token>] [--max-results <max-results>] [-p|--profile <profile>] [--debug]

-s, --skill-id
Required. The ID of the skill whose evaluation to get.
-e, --evaluation-id
Required. The ID of the evaluation to get.
--sort-field
Optional. A field for sorting the results returned in the response. Valid values are STATUS, ACTUAL_INTENT, and EXPECTED_INTENT.
--test-case-status
Optional. A filter to return only test cases with the specified status. Valid values are PASSED and FAILED.
--actual-intent-name
Optional. A filter to return only test cases that resolve to the specified intent.
--expected-intent-name
Optional. A filter to return only test cases that are expected to be the specified intent.
--next-token
Optional. Use this parameter to get more results, after you receive a response with incomplete results. Set it to the value of nextToken from the incomplete response you just received.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 1000. When you include this parameter, the response might contain fewer items than the value you specify, but will never contain more. You cannot specify a value higher than 1000.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-conflict-detection-job-status subcommand

Get the status of a job that detects utterance conflicts.

ask api get-conflict-detection-job-status <-s|--skill-id <skill-id>> <-l|--locale <locale>> <--model-version <model-version>>

-s, --skill-id
Required. The identifier of the skill for which to get utterance conflicts.
-l, --locale
Optional if the ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise required. An example value for locale is en-US.
--model-version
Optional. The version of the interaction model.

get-conflicts

Get the utterance conflicts for a skill. You can optionally specify how many results you want to see at once.

ask api get-conflicts <-s|--skill-id <skill-id>> <-l|--locale <locale>> <--model-version <model-version>> <--next-token <next-token>> <--max-results <max-results>>

-s, --skill-id
Required. The identifier of the skill for which to get utterance conflicts.
-l, --locale
Optional if the ASK_DEFAULT_DEVICE_LOCALE environment variable is set, otherwise required. An example value for locale is en-US.
--model-version
Optional. The version of the interaction model.
--next-token
Optional. Use this parameter to get more results, after you receive a response with incomplete results. Set it to the value of nextToken from the incomplete response you just received.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 100. When you include this parameter, the response might contain fewer items than the value you specify, but will never contain more. Specify a value of at least 1 and no more than 1000.

util command

The util command provides utility tools to manage Alexa skill development.

Subcommands

Task Subcommand
Generate LWA (Login With Amazon) access_token and refresh_token, which may be needed for use with Alexa developer tools generate-lwa-tokens

generate-lwa-tokens

Generates an LWA access token and refresh token, which may be required by the skill to access Alexa development tools.

To use this feature, you must allow a URL following these steps:

  1. Browse to https://developer.amazon.com/home.html.
  2. Select Settings on the top menu bar.
  3. Select Security Profiles in the submenu bar.
  4. Pick the profile you want to use and select the Web settings tab. If you do not have a profile, you can create one by clicking Create a New Security Profile and following the instructions.
  5. Click Edit and paste these URLs to Allowed Return URLs: http://127.0.0.1:9090/cb (if using the default option to open a browser) or https://s3.amazonaws.com/ask-cli/response_parser.html (if using the --no-browser option)
  6. Save the change.

generate-lwa-tokens command format

$ ask util generate-lwa-tokens [--scope <scope>] [--no-browser]

Options

--scope
Optional. Request particular scope(s) from the user who will log in to the Alexa developer portal. If the scopes option is not provided, then by default it uses the same scope as ASK CLI does.
--no-browser
Optional. Display authorization URL instead of opening a browser. The developer can then copy the URL displayed in the console and open the link with a web browser on another device to be directed to the login page of Amazon.

In the CLI window, you will then be prompted for the Client ID and Client Secret. Obtain these values from your security profile. To access your security profile, browse to https://developer.amazon.com/home.html, and select Security Profiles. Open your security profile, and copy the Client ID and Client Secret.

When you enter the Client ID and Client Secret, you are prompted to log in to the SMAPI CLI page on Amazon with your developer account. Log in, and the access_token and refresh_token values will appear in the CLI window.

lambda command

The lambda command enables you to retrieve and upload code for an AWS Lambda function.

lambda command format:

$ ask lambda <subcommand> [-f|--function <functionName>] [other options]

Subcommands

Task Subcommand
Download an existing Lambda function download
Upload an existing Lambda function upload
View Cloudwatch logs for a Lambda function log

download subcommand

Downloads code for the specified Lambda function to an optional specified destination.

download command format:

$ ask lambda download [-f|--function <functionName>] [-d|--dest <destPath>]

Options

--function, -f
Optional. The Lambda function's name. If this option is not set, the download operation will display a list of Lambda functions for the configured account, and you can choose one from a numbered list.
--dest, -d
Optional. Specifies the download destination for the Lambda function. If not set the Lambda is downloaded to the current working directory.

upload subcommand

Uploads files from the current directory or specified directory to a specified Lambda function.

upload command format:

$ ask lambda upload [-f|--function <functionName>] [-s|--src <sourcePath>]

Options

--function, -f
Required. Specifies the target Lambda function name.
--src, -s
Optional. Specifies the source directory to upload from. If not specified, the contents of the current working directory are uploaded.

log subcommand

Enables you to view the CloudWatch logs for the specified Lambda function.

log command format:

$ ask lambda log [-f|--function <functionName>] [--start-time <startTime>] [--end-time <endTime>] [--limit <limitNumber>] [--raw]

Options

--function, -f
Required. The Lambda function name.
--start-time
Optional. The start time for the log time range you wish to view. This should be written in the format 1dayago for 1 day ago, or 30hoursago for 30 hours ago. The default is 1dayago.
--end-time
Optional. The end time for the log time range you wish to view. This should be written in the format 1dayago for 1 day ago, or 30hoursago for 30 hours ago.
--limit
Optional. Integer indicating the number of log entries to display.
--raw
Optional. Displays the logs without color or formatting.

Smart Home Evaluation subcommands

list-smarthome-capability-test-plans subcommand

Use this command to list capability test plans for a Smart Home skill. A test plan is a set of test cases to be run for the given capability interface.

list-smarthome-capability-test-plans command format:

$ ask api list-smarthome-capability-test-plans <-s|--skill-id <skill-id>> [--max-results <max-results>] [--next-token <next-token>]

Options

-s, --skill-id
Required. The skill ID for the skill you want to evaluate. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 20. When you include this parameter, the response might contain fewer items than the value you specify. You should not specify a value higher than 1000.
--next-token
Optional. A token provided to continue returning results from a previous request. Use this option to get more evaluations.

create-smarthome-capability-evaluation subcommand

Use this command to create and start a capability evaluation against a Smart Home skill. Capability Evaluation is a test run for the selected test plan and given capability interface. Capability evaluations use a test plan to validate the given capability interface.

create-smarthome-capability-evaluation command format:

$ ask api create-smarthome-capability-evaluation <-s|--skill-id <skill-id>> [-g|--stage <stage>] <--endpoint-id <endpoint-id>> <--test-plan-id <test-plan-id>>

Options

-s, --skill-id
Required. The skill ID for the skill you want to evaluate. This should be in the format amzn1.ask.skill.12345678-1234-1234-123456789123.
--stage, -g
Optional. Indicates the stage of the skill. Values can be: development or live. The default value is development.
--endpoint-id
Required. A unique ID of the endpoint.
--test-plan-id
Required. A unique ID to identify each test plan.

list-smarthome-capability-evaluations subcommand

Use this command to list capability evaluations for a Smart Home skill.

list-smarthome-capability-evaluations command format:

$ ask api list-smarthome-capability-evaluations <-s|--skill-id <skill-id>> [-g|--stage <stage>] [--start-timestamp-from <start-timestamp-from>] [--start-timestamp-to <start-timestamp-to>] [--max-results <max-results>] [--next-token <next-token>]

Options

-s, --skill-id
Required. The skill ID for the skill you want to evaluate. The format is: amzn1.ask.skill.12345678-1234-1234-123456789123.
--stage, -g
Optional. Indicates the stage of the skill. Values can be: development or live. The default value is development.
--start-timestamp-from
Optional. The left limit of the start time to query evaluation history. The format is yyyy-MM-d'T'HH:mm:ss.SSS'z . The default value is the last 30 days from the current time.
--start-timestamp-to
Optional. The right limit of the start time to query evaluation history. The format is yyyy-MM-d'T'HH:mm:ss.SSS'z . The default value is current time.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 20. When you include this parameter, the response might contain fewer items than the value you specify. You should not specify a value higher than 1000.
--next-token
Optional. A token provided to continue returning results from a previous request.. Use this option to get more evaluations.

get-smarthome-capability-evaluation subcommand

Use this command to get top level information and the status of a Smart Home capability evaluation.

get-smarthome-capability-evaluation command format:

$ ask api get-smarthome-capability-evaluation <-s|--skill-id <skill-id>> <-e|--evaluation-id <evaluation-id>>

Options

-s, --skill-id
Required. The skill ID for the skill you want to evaluate. The format is: amzn1.ask.skill.12345678-1234-1234-123456789123.
--evaluation-id, -e
Required. A unique ID to identify each capability evaluation.

get-smarthome-capability-evaluation-results subcommand

Use this command to get the test case results for an evaluation run.

get-smarthome-capability-evaluation-results command format:

$ ask api get-smarthome-capability-evaluation-results <-s|--skill-id <skill-id>> <-e|--evaluation-id <evaluation-id>> [--max-results <max-results>] [--offset <offset>]

Options

-s, --skill-id
Required. The skill ID for the skill you want to evaluate. The format is: amzn1.ask.skill.12345678-1234-1234-123456789123.
--evaluation-id, -e
Required. A unique ID to identify each capability evaluation.
--max-results
Optional. The maximum number of items to return in the response. When you don't include this parameter, the default maximum is 20. When you include this parameter, the response might contain fewer items than the value you specify. You should not specify a value higher than 1000.
--offset
Optional. This command returns the results page.

Slot type subcommands

Use the following commands to create your own slot type for use in multiple skills on your developer account. In the interaction model for your skill, you can extend the slot type in the same way as a built-in slot type. For more details, see Create a Slot Type to Use in Multiple Skills.

create-model-slot-type subcommand

Create a slot type. A slot type is a container that holds the versions for a slot type.

ask api create-model-slot-type <-n|--slot-type-name <slot-type-name>> [-d|--slot-type-description <slot-type-description>] [-p|--profile <profile>] [--debug]`

-n, --slot-type-name
Required. The name of the slot type.
-d, --slot-type-description
Optional. The description of the slot type.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-model-slot-type subcommand

Return a slot type for the slot type identifier that you provide.

ask api get-model-slot-type <-t|--slot-type-id <slot-type-id>> [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

update-model-slot-type subcommand

Update the slot type description. If you don't provide a description, the command deletes the existing description.

ask api update-model-slot-type <-t|--slot-type-id <slot-type-id>> [-d|--slot-type-description <slot-type-description>] [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
-d, --slot-type-description
Optional. The description of the slot type.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

list-model-slot-types subcommand

List all of the slot types created by your developer account.

ask api list-model-slot-types [--max-results <max-results>] [--next-token <next-token>] [--sort-direction <sort-direction>] [-p|--profile <profile>] [--debug]

--max-results
Optional. The max results returned by the request.
--next-token
Optional. Allows you to query the next page of results.
--sort-direction
Optional. The order to sort results.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

delete-model-slot-type subcommand

Delete a slot type.

ask api delete-model-slot-type <-t|--slot-type-id <slot-type-id>> [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

create-model-slot-type-version subcommand

Create a new version for the slot type. The slot type version includes the definition of the slot type, which includes the slot type values or a reference to an external data source that has the values. Each slot type version belongs to a slot type.

ask api create-model-slot-type-version <-t|--slot-type-id <slot-type-id>> <-f|--file <file-path>> [-d|--version-description <version-description>] [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
-f, --file-path
Required. The file containing the slot type definition.
-d, --version-description
Optional. The description of the slot type version.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-model-slot-type-update-status subcommand

Return the build status of the slot type identifier that you provide. The build status can be succeeded, in progress, or failed.

ask api get-model-slot-type-update-status <-t|--slot-type-id <slot-type-id>> <-u|--update-request-id <update-request-id>> [-p|--profile <profile>] [--debug]`

-t, --slot-type-id
Required. The slot type identifier.
-u, --update-request-id
Required. The request identifer at the location returned by the create-model-slot-type-version subcommand.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

get-model-slot-type-version subcommand

Return the slot type data for the slot type identifier and version that you specify.

ask api get-model-slot-type-version <-t|--slot-type-id <slot-type-id>> <--slot-type-version <slot-type-version>> [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
--slot-type-version
Required. The slot type version.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

update-model-slot-type-version subcommand

Update the description of a slot type version. If you don't provide a description, the command deletes the existing description.

ask api update-model-slot-type-version <-t|--slot-type-id <slot-type-id>> <--slot-type-version <slot-type-version>> [-d|--version-description <version-description>] [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
--slot-type-version
Required. The slot type version.
-d, --version-description
Optional. The description of the slot type version.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

list-model-slot-type-versions subcommand

List the slot type definitions for a slot type identifier that you specify.

ask api list-model-slot-type-versions <-t|--slot-type-id <slot-type-id>> [--max-results <max-results>] [--next-token <next-token>] [--sort-direction <sort-direction>] [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
--max-results
Optional. The max results returned by the request.
--next-token
Optional. Allows you to query the next page of results.
--sort-direction
Optional. The order to sort results.
--profile, -p,
Optional. The ASK CLI profile.
--debug
Optional. Appends a debug message to the standard error.

delete-model-slot-type-version subcommand

Delete a specific slot type version. If a skill is using the slot type version, the command fails.

ask api delete-model-slot-type-version <-t|--slot-type-id <slot-type-id>> <--slot-type-version <slot-type-version>> [-p|--profile <profile>] [--debug]

-t, --slot-type-id
Required. The slot type identifier.
--slot-type-version
Required. The slot type version.
-p, --profile
Optional. The ASK CLI profile to use. When you don't include this option, ASK CLI uses the default profile.
--debug
Optional. When you include this option, ASK CLI shows debug messages in the output of the command.

Debug Mode for ASK CLI Commands

Almost all of the commands, as shown in their descriptions, can be run in debug mode, by appending --debug to the command.

The same results will appear as when –debug is not specified, except that an additional debug message is displayed (sent to stderr) after the command finishes running. This debug message consists of these fields:

{timestamp, api-name, requesit-id, method, url, response-code, request-header, request-body, response-header, response-body}

To save these results, run the command and pipe the output to a local text file, as follows:

ask some-command --debug 2> debug.txt

In-Skill Product Command Reference


Was this page helpful?

Last updated: Feb 28, 2024