Skill Operations, v0


This reference describes all API operations related to the skill resource. Each request must have an Authorization header whose value should be the access token retrieved from Login with Amazon.

The ASK CLI also uses the Skill Management API, but through a command line interface.

See: Alexa Skills Kit Command Line Interface (ASK CLI) Overview

Get Skill Information

Gets the skill manifest for a specified skill.

Request

GET /v0/skills/{skillId}
FieldDescriptionParameter TypeRequired
skillIdUnique identifier of skill.PathYes

Response

HTTP/1.1 200 OK

Body

A skillManifest object as described in Skill Manifest Schema.

Create a skill

Submits a skill creation request for a specified vendorId. This is an asynchronous operation that may result in failure when the server processes the request. Use the Location header to track the status of this request.

Request

POST /v0/skills

Body

The body includes the vendorId, and a manifest object as described in Skill Manifest Schema, as shown in the following example.

{
    "vendorId": "MT25O3ZVSAXZOAX",
    "skillManifest": {
        "publishingInformation": {
            "locales": {
                "en-US": {
                    "summary": "This is a sample Alexa skill.",
                    "examplePhrases": [
                        "Alexa, open sample skill.",
                        "Alexa, turn on kitchen lights.",
                        "Alexa, blink kitchen lights."
                    ],
                    "keywords": [
                        "Smart Home",
                        "Lights",
                        "Smart Devices"
                    ],
                    "name": "Sample custom skill name.",
                    "description": "This skill has basic and advanced smart devices control features."
                }
            },
            "isAvailableWorldwide": false,
            "testingInstructions": "1) Say 'Alexa, discover my devices' 2) Say 'Alexa, turn on sample lights'",
            "category": "SMART_HOME",
            "distributionCountries": [
                "US",
                "GB"
            ]
        },
        "apis": {
            "custom": {
                "endpoint": {
                    "uri": "arn:aws:lambda:us-east-1:032174894474:function:ask-custom-custome_cert"
                }
            }
        },
        "manifestVersion": "1.0",
        "privacyAndCompliance": {
            "allowsPurchases": false,
            "locales": {
                "en-US": {
                    "termsOfUseUrl": "http://www.termsofuse.sampleskill.com",
                    "privacyPolicyUrl": "http://www.myprivacypolicy.sampleskill.com"
                }
            },
            "isExportCompliant": true,
            "isChildDirected": false,
            "usesPersonalInfo": false
        }
    }
}

Response

Content-Type: application/json
HTTP/1.1 202 Accepted

Headers

Location: <Returns a relative URL to track the status>

Body

{
  "skillId": "{skillId}"
}
FieldDescriptionParameter Type
skillIdUnique identifier of newly created skill.Response Header
Response Body Element
HTTP/1.1 400

Server cannot process the request due to a client error.

HTTP/1.1 401 Unauthorized
HTTP/1.1 500 Internal Server Error

Update an existing skill

Updates the skill manifest associated with the specified skill ID.

Request

PUT /v0/skills/{skillId}

Body

skillManifest object as described in Skill Manifest Schema.

Parameter Description

FieldDescriptionParameter TypeRequired
skillIdUnique identifier of skill.PathYes

Response

HTTP/1.1 202 Accepted

Headers

Location: <Returns a relative URL to track the status>
HTTP/1.1 400 Server cannot process the request due to a client error.
HTTP/1.1 401 Unauthorized
HTTP/1.1 404 Not Found
HTTP/1.1 500 Internal Server Error

Get the status of a skill

Request

GET /v0/skills/{skillId}/status

Parameter Description

FieldDescriptionParameter TypeRequired
skillIdUnique identifier of skill.PathYes

Response

HTTP/1.1 200 OK

Response body for a successful build of the model. Checking the status of a skill.

{
    "manifest": {
        "lastModified": {
            "time": "2017-09-05T05:36:41.530Z",
            "status": "SUCCESSFUL"
        }
    }
}

The status values can also be FAILED and IN_PROGRESS.

HTTP/1.1 400 Server cannot process the request due to a client error.
HTTP/1.1 401 Unauthorized
HTTP/1.1 404 Not Found
HTTP/1.1 500 Internal Server Error

List skills

List the skills for the specified vendorId, which is a mandatory parameter. The optional maxResults and nextToken values provide paging for the results.

Request

GET /v0/skills?vendorId={vendorId}&maxResults={num}&nextToken={token}

Parameter Description

FieldDescriptionParameter Type
vendorIdUnique identifier of the vendor.string
maxResultsMaximum number of results to display per page of listed skills.integer
nextTokenEncrypted value of the token.string

Response

HTTP/1.1 200 OK

Response body lists the skills.

{
    "_links": {
            "next": {
                "href": "/v0/skills?vendorId=MA2384AJJ2NAJ&nextToken=eyJkIjoiVGFmRStsVy9YL1BWczZVaGZTMmt0WTFYajdOK3g1Z0xIS3B1aUxRUHpkQ0xtTmtxVkR6cDIxYk10cUpTTlRUU2phS3ZFK2VGclVlQmQ2NDBlK3ltUDdrRyt1UmVtazBhdmFUTlN5RVd5WXVLTjhhTzhyTERJd1p5VU9ZWXFFb1k5MnF1M3RlaUMrOStyQVY1Z1B0MVhNYkh3L0VycWZvL2k0VzhBNGFSWEwyaVRRVTl3NEJCQ0RlV1lrZ2FXMmlobGpMT2FiYitlNk1IVkVrNHBIak1PZz09IiwiaXYiOiJLN09peDd3TE5MUmxKWVFnYVEwU0R3PT0iLCJ2IjoxfQ=="
            },
            "self": {
                "href": "/v0/skills?vendorId=MA2384AJJ2NAJ"
            }
    },
    "isTruncated": true,
    "nextToken": "eyJkIjoiVGFmRStsVy9YL1BWczZVaGZTMmt0WTFYajdOK3g1Z0xIS3B1aUxRUHpkQ0xtTmtxVkR6cDIxYk10cUpTTlRUU2phS3ZFK2VGclVlQmQ2NDBlK3ltUDdrRyt1UmVtazBhdmFUTlN5RVd5WXVLTjhhTzhyTERJd1p5VU9ZWXFFb1k5MnF1M3RlaUMrOStyQVY1Z1B0MVhNYkh3L0VycWZvL2k0VzhBNGFSWEwyaVRRVTl3NEJCQ0RlV1lrZ2FXMmlobGpMT2FiYitlNk1IVkVrNHBIak1PZz09IiwiaXYiOiJLN09peDd3TE5MUmxKWVFnYVEwU0R3PT0iLCJ2IjoxfQ==",
    "skills": [
        {
            "lastUpdated": "2017-07-11T19:29:57.120Z",
            "nameByLocale": {
                "en-US": "example"
            },
            "stage": "development",
            "_links": {
                "self": {
                    "href": "/v0/skills/amzn1.ask.skill.6acdbdf8-8420-440e-823e-aaaaaaaabbbb"
                }
            },
            "skillId": "amzn1.ask.skill.6acdbdf8-8420-440e-823e-aaaaaaaabbbb"
        },
        {
            "lastUpdated": "2017-07-05T21:11:16.947Z",
            "nameByLocale": {
                "en-US": "example1"
            },
            "stage": "live",
            "_links": {
                "self": {
                    "href": "/v0/skills/amzn1.ask.skill.81ded88f-0d0a-4612-aaaaaaaabbbb"
                }
            },
            "skillId": "amzn1.ask.skill.81ded88f-0d0a-4612-aaaaaaaabbbb"
        }
    ]
}
HTTP/1.1 400 Server cannot process the request due to a client error.
HTTP/1.1 401 Unauthorized
HTTP/1.1 500 Internal Server Error

Delete a skill

Delete a skill.

Request

DELETE /v0/skills/{skillId}/

Parameter Description

FieldDescriptionParameter TypeRequired
skillIdUnique identifier of skill.PathYes

Response

HTTP/1.1 204 NoContent
HTTP/1.1 400 Bad Request

Body:

{
    "message": "Cannot delete the skill because it has a cert/live stage. Please follow our documentation for next steps."
    "type": "BadRequest"
}
HTTP/1.1 500 Internal Service Error
{
    "message": // error message (String)
    "type": "InternalError"
}

Was this page helpful?

Last updated: Mar 30, 2022