Skill Manifest Schemas, v0
The skill manifest is the JSON representation of your skill, and provides Alexa with all of the metadata required. The interaction model and account linking schemas, if used, are separate.
All images referenced in a skill manifest must be in PNG format.
See also: Alexa Skills Kit Command Line Interface (ASK CLI) Overview and Skill Operations
- Sample Skill Manifests
- publishingInformation object
- privacyAndCompliance object
- permissions object
- events object
- apis object
- Enumerations and Values
Sample Skill Manifests
Choose the skill manifest for your skill type. For each skill type, ensure that a skill developer considers the privacy and compliance requirements.
Custom Skill Manifest
{
"skillManifest": {
"publishingInformation": {
"locales": {
"en-US": {
"summary": "This is a sample Alexa custom skill.",
"examplePhrases": [
"Alexa, open sample custom skill.",
"Alexa, play sample custom skill."
],
"keywords": [
"Descriptive_Phrase_1",
"Descriptive_Phrase_2",
"Descriptive_Phrase_3"
],
"smallIconUri": "https://smallUri.com",
"largeIconUri": "https://largeUri.com",
"name": "Sample custom skill name.",
"description": "This skill does interesting things."
}
},
"isAvailableWorldwide": false,
"testingInstructions": "1) Say 'Alexa, hello world'",
"category": "HEALTH_AND_FITNESS",
"distributionCountries": [
"US",
"GB",
"DE"
]
},
"apis": {
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:sampleSkill"
},
"regions": {
"NA": {
"endpoint": {
"sslCertificateType": "Trusted",
"uri": "https://customapi.sampleskill.com"
}
}
}
}
},
"manifestVersion": "1.0",
"permissions": [
{
"name": "alexa::devices:all:address:full:read"
},
{
"name": "alexa:devices:all:address:country_and_postal_code:read"
}
],
"privacyAndCompliance": {
"allowsPurchases": false,
"usesPersonalInfo": false,
"isChildDirected": false,
"isExportCompliant": true,
"containsAds": false,
"locales": {
"en-US": {
"privacyPolicyUrl": "http://www.myprivacypolicy.sampleskill.com",
"termsOfUseUrl": "http://www.termsofuse.sampleskill.com"
}
}
},
"events": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:sampleSkill"
},
"subscriptions": [
{
"eventName": "SKILL_ENABLED"
},
{
"eventName": "SKILL_DISABLED"
},
{
"eventName": "SKILL_PERMISSION_ACCEPTED"
},
{
"eventName": "SKILL_PERMISSION_CHANGED"
},
{
"eventName": "SKILL_ACCOUNT_LINKED"
}
],
"regions": {
"NA": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:sampleSkill"
}
}
}
}
}
}
Smart Home Skill Manifest
{
"skillManifest": {
"manifestVersion": "1.0",
"publishingInformation": {
"locales": {
"en-US": {
"name": "Sample skill name.",
"summary": "This is a sample Alexa skill.",
"description": "This skill has basic and advanced smart devices control features.",
"smallIconUri": "https://smallUri.com",
"largeIconUri": "https://largeUri.com",
"examplePhrases": [
"Alexa, open sample skill.",
"Alexa, blink kitchen lights."
],
"keywords": [
"Smart Home",
"Lights",
"Smart Devices"
]
}
},
"distributionCountries": [
"US",
"GB",
"DE"
],
"isAvailableWorldwide": false,
"testingInstructions": "1) Say 'Alexa, turn on sample lights'",
"category": "SMART_HOME"
},
"privacyAndCompliance": {
"allowsPurchases": false,
"usesPersonalInfo": false,
"isChildDirected": false,
"isExportCompliant": true,
"containsAds": false,
"locales": {
"en-US": {
"privacyPolicyUrl": "http://www.myprivacypolicy.sampleskill.com",
"termsOfUseUrl": "http://www.termsofuse.sampleskill.com"
}
}
},
"apis": {
"smartHome": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:sampleSkill"
},
"regions": {
"NA": {
"endpoint": {
"uri": "arn:aws:lambda:us-west-2:010623927470:function:sampleSkillWest"
}
}
}
}
}
}
}
Flash Briefing Skill Manifest
{
"skillManifest": {
"manifestVersion": "1.0",
"publishingInformation": {
"locales": {
"en-US": {
"name": "Sample skill name.",
"summary": "This is a sample Alexa skill.",
"description": "This skill has basic and advanced features.",
"smallIconUri": "https://smallUri.com",
"largeIconUri": "https://largeUri.com",
"examplePhrases": [],
"keywords": [
"Flash Briefing",
"News",
"Happenings"
]
}
},
"distributionCountries": [
"US",
"GB",
"DE"
],
"isAvailableWorldwide": false,
"testingInstructions": "1) Say 'Alexa, hello world'",
"category": "HEALTH_AND_FITNESS"
},
"privacyAndCompliance": {
"allowsPurchases": false,
"usesPersonalInfo": false,
"isChildDirected": false,
"isExportCompliant": true,
"containsAds": false,
"locales": {
"en-US": {
"privacyPolicyUrl": "http://www.myprivacypolicy.sampleskill.com",
"termsOfUseUrl": "http://www.termsofuse.sampleskill.com"
}
}
},
"apis": {
"flashBriefing": {
"locales": {
"en-US": {
"customErrorMessage": "Error message",
"feeds": [
{
"name": "feed name",
"isDefault": true,
"vuiPreamble": "In this skill",
"updateFrequency": "HOURLY",
"genre": "POLITICS",
"imageUri": "https://fburi.com",
"contentType": "TEXT",
"url": "https://feeds.sampleskill.com/feedX"
}
]
}
}
}
}
}
}
Video Skill Manifest
{
"skillManifest": {
"publishingInformation": {
"locales": {
"en-US": {
"summary": "This is a sample Alexa skill.",
"examplePhrases": [
"Alexa, tune to channel 206",
"Alexa, search for comedy movies",
"Alexa, pause."
],
"keywords": [
"Video",
"TV"
],
"name": "VideoSampleSkill",
"smallIconUri": "https://smallUri.com",
"largeIconUri": "https://smallUri.com",
"description": "This skill has video control features."
}
},
"isAvailableWorldwide": false,
"testingInstructions": "",
"category": "SMART_HOME",
"distributionCountries": [
"US",
"GB",
"DE"
]
},
"apis": {
"video": {
"locales": {
"en-US": {
"videoProviderTargetingNames": [
"TV provider"
],
"catalogInformation": [
{
"sourceId": "1234",
"type": "FIRE_TV"
}
]
}
},
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:452493640596:function:sampleSkill"
},
"regions": {
"NA": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:452493640596:function:sampleSkill"
},
"upchannel": [
{
"uri": "arn:aws:sns:us-east-1:291420629295:sampleSkill",
"type": "SNS"
}
]
}
}
}
},
"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,
"containsAds": false
}
}
}
publishingInformation object
Field | Description | Type |
---|---|---|
locales | Object that contains <locale> objects for each supported locale. | Object |
distributionCountries | Array specifying distribution country/region strings in ISO 3166-1 alpha-2 format, for example US, GB or DE. This array should only contain values if availableWorldwide is false. |
string array |
isAvailableWorldwide | true to indicate the skill is available worldwide; otherwise, false. If false, countries must be listed for distributionCountries . |
boolean |
distributionMode | Set to PUBLIC , which indicates that the skill can be distributed without restriction. |
enum |
testingInstructions | Indicates any special instructions for testing the skill, such as a test account. | string |
category | Indicates the filter category for the skill in the Alexa App such as NEWS or SMART_HOME. See Category enumeration. | string |
publishingInformation.locales object
For each supported locale, include an object with the appropriate locale string. Supported values include: en-US
, en-GB
, en-IN
, en-CA
, en-AU
, de-DE
, and ja-JP
.
Field | Description | Type |
---|---|---|
<locale> | Locale string | object |
publishingInformation.locales.<locale> object
Field | Description | Type |
---|---|---|
summary | Summary description of the skill, which is shown when viewing the list of skills. | string |
description | A full description explaining the skill's core functionality and any prerequisites to using it (such as additional hardware, software, or accounts). For a Flash Briefing skill, you must list the feeds for the skill. | string |
smallIconUri | URL to a small icon for the skill, which is shown in the list of skills. (108x108px) | string |
largeIconUri | URL to a large icon that represents this skill. (512x512px) | string |
examplePhrases | Three example phrases that illustrate how users can invoke your skill. For accuracy, these phrases must come directly from your sample utterances. | array of strings |
keywords | Sample keyword phrases that describe the skill. | array of strings |
privacyAndCompliance object
Field | Description | Type |
---|---|---|
allowsPurchases | true to indicate purchases can be made from this skill; otherwise, false . |
boolean |
usesPersonalInfo | true to indicate this skill uses customer information, otherwise false . |
boolean |
isChildDirected | true to indicate the skill is directed at children under 13, otherwise false . To create a child-directed skill, isChildDirected must be set to true , and the publishingInformation.category must be set to one of the following: CHILDRENS_EDUCATION_AND_REFERENCE , CHILDRENS_GAMES , CHILDRENS_MUSIC_AND_AUDIO , CHILDRENS_NOVELTY_AND_HUMOR . |
boolean |
isExportCompliant | true to indicate the skill can be exported to any country/region; otherwise, false . |
boolean |
containsAds | true to indicate the skill contains advertising; otherwise, false . |
boolean |
locales | Contains <locale>` objects, which each contain the privacy and terms of use URLs for each supported locale | object |
When you create or modify a skill using a skill manifest, you must ensure that the customer meets the privacy and compliance requirements and the export compliance requirement. The requirements for the customer are the same as the customer must comply with if creating a skill on the Alexa developer portal, as shown on the Distribution tab in the Privacy and Compliance page when creating a skill on the portal.
The customer must answer the corresponding questions in order to set the values for the privacyAndCompliance
object. If the customer answers Yes
, set the value to true
, and if the customer answers No
, set the value to false
. You must not provide default answers or values on behalf of the customer.
Skill manifest field | Corresponding question from Alexa developer portal |
---|---|
allowsPurchases | Does this skill allow users to make purchases or spend real money? |
shoppingKit | Does this skill use Alexa Shopping Actions? |
usesPersonalInfo | Does this Alexa skill collect users' personal information? Personal information includes any information that can be used to identify the customer, such as full name, email address, and phone number. |
isChildDirected |
Is this skill directed to or does it target children under the age of 13? Please indicate if this skill is directed to children under the age of 13 (for the United States, as determined under the
Children's Online Privacy Protection Act (COPPA)). Not Sure? |
containsAds | Does this skill contain advertising? Checkbox: I certify that I have read and am in compliance with the Alexa Skills Advertising Policy found here. |
isExportCompliant | Checkbox: I certify that this Alexa skill may be imported to and exported from the United States and all other countries and regions in which we operate our program or in which you've authorized sales to end users (without the need for us to obtain any license or clearance or take any other action) and is in full compliance with all applicable laws and regulations governing imports and exports, including those applicable to software that makes use of encryption technology. |
locale.privacyPolicyUrl | Privacy Policy URL (Optional)
Link to the privacy policy that applies to this skill. Note: Each locale requires a separate privacy policy URL, if one is provided. |
locale.termsOfUse
| Terms of Use URL (Optional)
Link to the terms of use document for this skill. Note: Each locale requires a separate terms of use URL, if one is provided. |
privacyAndCompliance.locales object
For each supported locale, include an object with the appropriate locale string. Supported values include: en-US
, en-GB
, en-IN
, en-CA
, en-AU
, de-DE
, and ja-JP
.
Field | Description | Type |
---|---|---|
<locale> | Locale string | object |
privacyAndCompliance.locales.<locale> object
<locale>
has a value of a supported locale.
Field | Description | Type |
---|---|---|
privacyPolicyUrl | URL to the privacy policy for the skill for the locale | string |
termsOfUseUrl | URL to the terms of use for the skill. for the locale | string |
permissions object
An array of named permissions which the skill can use. A flash briefing skill cannot include a permissions
object.
Field | Description | Type |
---|---|---|
name | Contains an array of permissions, which may contain some or all of these: alexa::devices:all:address:full:read (read the customer's full address entered from the Alexa app settings)alexa:devices:all:address:country_and_postal_code:read (read the customer's country/region and postal code entered from the Alexa app settings) | array |
events object
Field | Description | Type |
---|---|---|
subscriptions | Contains an array of eventName objects, each of which contains the name of a skill event |
array |
endpoint | Contains the uri field. This sets the global default endpoint for events. |
Object |
regions | Contains an array of the supported <region> objects | array |
See Skill Events.
events.endpoint object
Sets the global default endpoint for events.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's custom Lambda function or HTTPS URL | string |
events.regions object
An array of <region> fields.
Field | Description | Type |
---|---|---|
<region> | Two-letter code for the geographic region such as NA , EU , or FE |
enum |
events.regions.<region> object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri and sslCertificate fields. |
object |
events.regions.<region>.endpoint object
Sets the region-specific override endpoint, as compared to events.endpoint
, which sets the global default endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's custom Lambda function or HTTPS URL | string |
apis object
Array of
Field | Description | Type |
---|---|---|
<api-type> | Includes custom , smartHome , flashBriefing |
enum |
apis.custom object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri and sslCertificateType fields. Sets the global default endpoint, which can be overridden on a region-by-region basis. |
Object |
regions | Contains an array of the supported <region> objects | array |
interfaces | Contains an array of the supported interfaces | array |
apis.custom.endpoint object
Sets the global default endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's custom Lambda function or HTTPS URL | string |
apis.custom.regions object
An array of <region> fields.
Field | Description | Type |
---|---|---|
<region> | Two-letter code for the geographic region such as NA or EU |
enum |
apis.custom.regions.<region> object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri and sslCertificate fields. |
object |
apis.custom.regions.<region>.endpoint object
Sets the region-specific override endpoint, as compared to apis.custom.endpoint
, which sets the global default endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's custom Lambda function or HTTPS URL | string |
sslCertificateType | The SSL certificate type for the skill's HTTPS endpoint. Can be Trusted , Wildcard , or SelfSigned . Only valid for HTTPS endpoints, not for AWS Lambda ARN. |
enum |
apis.custom.interfaces object
An array of interfaces supported by the skill.
Field | Description | Type |
---|---|---|
type | Includes AUDIO_PLAYER , VIDEO_APP , RENDER_TEMPLATE . |
enum |
api.smartHome object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri field |
object |
regions | Contains an array of the supported <region> objects | array |
apis.smartHome.endpoint object
Sets the global default endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's smartHome Lambda function or HTTPS URL. | string |
apis.smartHome.regions object
An array of <region> fields.
Field | Description | Type |
---|---|---|
<region> | Two-letter code for the geographic region such as NA or EU |
enum |
apis.smartHome.regions.<region> object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri field. |
object |
apis.custom.regions.<region>.endpoint object
Sets the region-specific override endpoint, as compared to apis.smartHome.endpoint, which sets the global default endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's smartHome Lambda function or HTTPS URL | string |
sslCertificateType | The SSL certificate type for the skill's HTTPS endpoint. Can be Trusted or Wildcard . Only valid for HTTPS endpoints, not for AWS Lambda ARN. |
enum |
apis.flashBriefing object
Field | Description | Type |
---|---|---|
locales | Object that contains <locale> objects for each supported locale. | object |
apis.flashBriefing.locales object
For each supported locale, include an object with the appropriate locale string. Supported values include: en-US
, en-GB
, en-IN
, en-CA
, en-AU
, de-DE
, and ja-JP
.
Field | Description | Type |
---|---|---|
<locale> | Locale string | object |
apis.flashBriefing.locales.<locale> object
Field | Description | Type |
---|---|---|
customErrorMessage | Customized error message if the flash briefing is unavailable | string |
feeds | Object containing an array of feeds | object |
apis.flashBriefing.locales.<locale>.feeds object
Array of named feeds. Items in this object are the same as the fields you complete in the developer portal when adding a feed to a flash briefing skill.
Field | Description | Type |
---|---|---|
name | Name of the feed | string |
isDefault | If true, the feed is included in the flash briefing by default. If false, it is not. | boolean |
vuiPreamble | Preamble to flash briefing | string |
updateFrequency | See UpdateFrequency enumeration | enum |
genre | See ContentGenre enumeration | enum |
imageUri | URI of the image used for the skill in the skill store. | string |
contentType | See ContentType enumeration | enum |
url | URL of the content of the feed. | string |
apis.video object
"locales": {
"en-US": {
"videoProviderTargetingNames": [
"hsv TV"
]
}
},
"regions": {
"NA": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:045513644327:function:sampleskill"
},
"upchannel": [
{
"type": "SNS",
"uri": "arn:aws:sns:us-east-1:291420629295:sampleskill"
}
]
}
apis.video.locales object
For each supported locale, include an object with the appropriate locale string. Supported values include: en-US
, en-GB
, en-IN
, en-CA
, en-AU
, de-DE
, and ja-JP
.
Field | Description | Type |
---|---|---|
<locale> | Locale string | object |
apis.video.locales.<locale> object
Field | Description | Type |
---|---|---|
videoProviderTargetingNames | List of names | array |
apis.video.regions object
An array of <region> fields.
Field | Description | Type |
---|---|---|
<region> | Two-letter code for the geographic region such as NA or EU |
enum |
apis.video.regions.<region> object
Field | Description | Type |
---|---|---|
endpoint | Contains the uri field. |
object |
upchannel | The channel through which the partner skill can communicate to Alexa | object |
apis.video.regions.<region>.endpoint object
Sets the region-specific endpoint.
Field | Description | Type |
---|---|---|
uri | Amazon Resource Name (ARN) for the skill's video AWS Lambda function or HTTPS URL | string |
apis.video.regions.<region>.upchannel object
Sets the endpoint through which the partner skill can communicate to Alexa.
Field | Description | Type |
---|---|---|
type | Use "SNS" for this field | string |
uri | SNS Amazon Resource Name (ARN) for video skill through which video partner can send events to Alexa | string |
Enumerations and Values
UpdateFrequency enumeration
This enumeration provides values for the frequency of feed content updates.
Enum value | Description |
---|---|
DAILY | Feed content is updated daily. |
HOURLY | Feed content is updated hourly. |
WEEKLY | Feed content is updated weekly. |
ContentFeedType enumeration
This enumeration provides values for the different types of feeds for a Flash Briefing skill.
Enum value | Description |
---|---|
TEXT | Indicates the content of the feed is text to be read by Alexa. |
AUDIO | Indicates the content of the feed audio content to be played by Alexa. |
ContentGenre enumeration
This enumeration describes the type of content provided by the Flash Briefing feed.
Enum Values |
---|
HEADLINE_NEWS |
BUSINESS |
POLITICS |
ENTERTAINMENT |
TECHNOLOGY |
HUMOR |
LIFESTYLE |
SPORTS |
SCIENCE |
HEALTH_AND_FITNESS |
ARTS_AND_CULTURE |
PRODUCTIVITY_AND_UTILITIES |
OTHER |
Category enumeration
This enumeration provides category values. The category determines how your skill is filtered for display in the Alexa app.
Enum Values |
---|
ALARMS_AND_CLOCKS |
ASTROLOGY |
BUSINESS_AND_FINANCE |
CALCULATORS |
CALENDARS_AND_REMINDERS |
CHILDRENS_EDUCATION_AND_REFERENCE |
CHILDRENS_GAMES |
CHILDRENS_MUSIC_AND_AUDIO |
CHILDRENS_NOVELTY_AND_HUMOR |
COMMUNICATION |
CONNECTED_CAR |
COOKING_AND_RECIPE |
CURRENCY_GUIDES_AND_CONVERTERS |
DATING |
DELIVERY_AND_TAKEOUT |
DEVICE_TRACKING |
EDUCATION_AND_REFERENCE |
EVENT_FINDERS |
EXERCISE_AND_WORKOUT |
FASHION_AND_STYLE |
FLIGHT_FINDERS |
FRIENDS_AND_FAMILY |
GAME_INFO_AND_ACCESSORY |
GAMES |
HEALTH_AND_FITNESS |
HOTEL_FINDERS |
KNOWLEDGE_AND_TRIVIA |
MOVIE_AND_TV_KNOWLEDGE_AND_TRIVIA |
MOVIE_INFO_AND_REVIEWS |
MOVIE_SHOWTIMES |
MUSIC_AND_AUDIO_ACCESSORIES |
MUSIC_AND_AUDIO_KNOWLEDGE_AND_TRIVIA |
MUSIC_INFO_REVIEWS_AND_RECOGNITION_SERVICE |
NAVIGATION_AND_TRIP_PLANNER |
NEWS |
NOVELTY |
ORGANIZERS_AND_ASSISTANTS |
PETS_AND_ANIMAL |
PODCAST |
PUBLIC_TRANSPORTATION |
RELIGION_AND_SPIRITUALITY |
RESTAURANT_BOOKING_INFO_AND_REVIEW |
SCHOOLS |
SCORE_KEEPING |
SELF_IMPROVEMENT |
SHOPPING |
SMART_HOME |
SOCIAL_NETWORKING |
SPORTS_GAMES |
SPORTS_NEWS |
STREAMING_SERVICE |
TAXI_AND_RIDESHARING |
TO_DO_LISTS_AND_NOTES |
TRANSLATORS |
TV_GUIDES |
UNIT_CONVERTERS |
WEATHER |
WINE_AND_BEVERAGE |
ZIP_CODE_LOOKUP |
Last updated: Jul 15, 2024