Alexa for Apps Skill Manifest Reference

To enable Alexa for Apps in your skill, you must add an appLink object to your skill manifest and declare support for the interface type of APP_LINKS. This section explains the structure of the appLink object. For the full skill manifest format, see Skill Manifest Schema.

Skill connection request skill manifest example

{
   "manifest": {
      "apis": {
         "custom": {
            "endpoint": {
               "uri": "arn:aws:lambda:us-east-1:040623927470:function:cityGuideSkillLambda"
            },
            "interfaces": [
               {
                  "type":"APP_LINKS"
               }
            ],
================== ALEXA FOR APPS ADDITIONS START ==================
            "appLink": {
               "linkedApplications": [
                  {
                     "friendlyName":{
                        "default":"CityGuide",
                        "localizedNames": [
                           {"locale":"de-DE", "name":"Stadtführer"}
                        ]
                     },
                     "catalogInfo": {
                        "type": "IOS_APP_STORE",
                        "identifier": "id123456789"
                     },
                     "customSchemes": ["cityguide://","ctgd://"],
                     "domains": ["cityguide.com","ctgd.com"]
                  },
                  {
                     "friendlyName":{
                        "default":"CityGuide",
                        "localizedNames": [
                           {"locale":"de-DE", "name":"Stadtführer"}
                        ]
                     },
                     "catalogInfo": {
                        "type": "GOOGLE_PLAY_STORE",
                        "identifier": "com.cityguide.android.ctgdmobile"
                     },
                     "customSchemes": ["cityguide://","ctgd://"],
                     "domains": ["cityguide.com","ctgd.com"]
                  }
               ]
            }
         }
      }
   }
}

The appLink object contains an object for each app your skill links to. If you have iOS and Android versions of your app, these versions count as separate apps.

  • If your deep link request includes a URI, prefix, or package name, it must match a corresponding item in the domains or customSchemes field in your skill manifest. Otherwise, the deep link request fails as unauthorized.
Field Description Type Required
linkedApplications List of your apps Array of object Yes
Field Description Type Required
friendlyName Names for the app according to locale Object Yes
catalogInfo Information needed to link to your app in the iOS App Store or Google Play Store Object Yes
customSchemes A comma-separated list of custom schemes used to validate custom scheme links. At runtime, Alexa for Apps validates the custom scheme within the deep link using a regex built with this value. Required for custom scheme link requests. String array No
domains A list of domains used to validate universal links. At runtime, Alexa for Apps validates the domain within the deep link using a regex built with this value. Required for universal links and website deep links. String array No

friendlyName object

The friendlyName object indicates how you want your app name to be represented in any voice responses that Alexa provides automatically when deep linking.

For example, in a fallback scenario when the user hasn't installed your app, you might have Alexa take the user to the App Store instead. In those cases, Alexa says something like, "To enable this experience you'll need to install the app. Here's <friendly name> in the App Store."

Field Description Type Required
default Friendly name for your app in its home locale. If you don't specify localizedNames, Alexa for Apps uses this value for all locales. String Yes
localizedNames Contains an array of friendly names for your app when the user's device locale isn't the home locale. Required if your app has different friendly names across different locales. If the names are the same across all locales, you don't need to include this array. You can only specify localizedNames values for the locales that you included in the manifest.publishingInformation.locales section of your skill manifest. Object array No
Field Description Type Required
locale Locale, for example, de-DE String Yes
names Name for your app in that locale String Yes

catalogInfo object

The catalogInfo object contains the information that Alexa for Apps needs to link to your app in the iOS App Store or Google Play Store.

The identifier is used to validate deep link requests. For example, an Android intent deep link request must be for an intent whose root package name is in the catalogInfo object. Otherwise, the request fails as unauthorized.

Field Description Type Required
type IOS_APP_STORE or GOOGLE_PLAY_STORE String enumeration value Yes
identifier The identifier for your app in the iOS App Store or Google Play Store. For iOS apps, it's a numeric identifier, for example, id123456789. For Android intents, it's typically the package name, for example, com.cityguide.android.ctgdmobile. String Yes