Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
Get started
Connect with Matter
Alexa Connect Kit
Add-ons
Certify
Resources
アクセスいただきありがとうございます。こちらのページは現在英語のみのご用意となっております。順次日本語化を進めてまいりますので、ご理解のほどよろしくお願いいたします。

Steps to Build Smart Home Add-ons


When you create a smart home add-on, you enable Alexa to invoke your add-on to fulfill a user request to control a smart home device. Smart home add-ons use the pre-built voice interaction model and Alexa defines the set of utterances for you. You can create an Alexa smart home add-on for most device types.

For an overview of smart home add-ons, see Connect Your Device Cloud with Smart Home Add-ons. For a step-by-step tutorial to create a smart home add-on that controls a virtual light bulb, see Tutorial: Build a Smart Home Add-on.

Complete the following steps to build a smart home add-on.

Prerequisites

Before you develop a smart home add-on, make sure that you have the following items:

  • An Amazon developer account. You can use an existing Amazon account to sign in, or you can create a new Amazon developer account. The account is free.
  • An Amazon Web Services (AWS) account. The AWS account gives you access to resources as part of the free tier of services. You host your add-on code on AWS Lambda.
  • A smart device, such as a light, thermostat, camera, lock, that connects to the device cloud. Your add-on communicates with your device, or device cloud, by using communication channels supported by your device.
  • An Alexa-enabled device, such as an Amazon Echo. Make sure that you sign in to the Echo with the same credentials as your Alexa developer account.
  • The Amazon Alexa app on your mobile device. For instructions about how to download the Alexa app, see Download the Alexa app on the Amazon website. Make sure that you sign in to the Alexa app on your mobile device with the same credentials as your Alexa developer account.
  • Knowledge of JSON and one of the supported programming languages for AWS Lambda add-on code: Node.js, Java, Python, C#, Go, Ruby, or PowerShell.
  • An OAuth 2.0 provider for account linking. You can use the Amazon authorization server, called Login with Amazon (LWA), or you can choose your own OAuth 2.0 provider.
  • A device cloud that interacts with your devices and can associate customers with their devices. You can use AWS IoT or your own cloud provider.
  • Appropriate Smart Home APIs for the directives to control your smart home device. For details about the supported locales and languages, see List of Alexa Interfaces and Supported Languages.
  • Familiarity with the certification requirements for policy and security.

Steps to build a smart home add-on

To build a smart home add-on, complete the following steps:

  1. Choose Alexa capabilities
  2. Create a smart home add-on.
  3. Implement add-on code.
  4. Configure account linking.
  5. Test your add-on.
  6. Provide publishing information.
  7. Beta test your add-on (optional).
  8. Submit your add-on for certification.

Step 1: Choose Alexa capabilities

Before you start, review the Alexa interface reference to find the appropriate capability interfaces to control your smart home device. For details about supported interfaces and languages, see List of Alexa Interfaces and Supported Languages.

You can choose from the large set of standard capability interfaces, such as Alexa.BrightnessController and Alexa.PowerController, or general-purpose interfaces to model components of your device, like Alexa.ModeController and Alexa.RangeController. When these capabilities don't suffice, you can implement fully customizable, device-specific capability interfaces to take advantage of the unique features of your device. You add the custom capability to your code in the same way as pre-built interfaces. For details, see Add Custom Capabilities.

Step 2: Create a smart home add-on

You create a smart home add-on in the Alexa developer console. When prompted to choose a model to add to your add-on, select the Smart Home model.

You can choose English(US) as your default language and region, or you can create your add-on in another language and region. Make sure to select the region where you plan to make your add-on available. You can create your add-on in other languages. For details, see Develop Smart Home Add-ons for Multiple Languages. Language support varies by interface. For more details, see List of Alexa Interfaces and Supported Languages.

After you create your add-on, copy the skill ID to a convenient place, such as Notepad on Windows or TextEdit on Mac. You use the skill ID to connect your add-on to your add-on code hosted on Lambda.

Step 3: Implement add-on code

You implement your smart home add-on code as an Amazon Web Services (AWS) Lambda function. For more details, see Implement Smart Home Add-on Code. If applicable, you can add additional features to your add-on.

Example add-on code

The following smart home add-on code example controls a light bulb.

Step 4: Configure account linking

All smart home add-ons must enable account linking to connect the identity of the Alexa user with the user's identity in your system. For a light bulb, your system might have a user account that stores the light bulb model and capabilities, such as whether you can dim the bulb. When the user enables your add-on in the Alexa app, Alexa starts the account linking process and receives an access token from your system. Later, when the user asks Alexa to dim the light bulb, Alexa sends the access token to your add-on. The token enables your add-on to access the user's account in your system to know whether their light bulb is dimmable.

Alexa uses OAuth 2.0 authorization code grant type for smart home add-ons and video skills. To configure account linking, you need the following information from your OAuth provider. For details about these fields, see Configure an Authorization Code Grant.

  • URI of the login page on your authorization server — When a customer enables your add-on in the Alexa app, Alexa redirects the customer to this URI to enter login credentials. On successful login, the server returns an authorization code to Alexa.
  • URI of your access token server — Endpoint of your authorization server that can exchange an authorization code for access tokens.
  • Client ID — Unique string that identifies the add-on that makes requests to your resource server on behalf of the Alexa user.
  • Your client secret — Alexa uses the client ID and client secret to authenticate with the Access token URI. These credentials identify the request from Alexa.
  • Authentication scheme — Identifies the type of authentication that Alexa uses to request access and refresh tokens from your access token server.
  • Scope — (Optional) List of credentials to request from the add-on user, such as user id and password. You can provide up to 15 scopes.
  • Domains — (Optional) List of domains that the authorization server requests content from. You can provide up to 30 domains.
  • Default access token expiration — (Optional) If your server doesn't provide the expiration time for access tokens in the messaging, you must provide the number of seconds for which the access token is valid.

You configure the authorization server and security profile for the add-on in the Alexa developer console. On the Smart Home page, from the left menu, select ACCOUNT LINKING. Enter the required information, and then choose Save. You can see the redirection endpoints that Alexa uses in the Alexa Redirect URLs field. Register these redirection URLs with your authorization server.

You can use the Amazon OAuth authorization server, called Login with Amazon (LWA) or your own OAuth 2.0 provider. For details about how to set up account linking with the LWA authorization server, see Smart Home Tutorial Step 4: Set up Account Linking.

Step 5: Test your add-on

As you develop your add-on code, you can create test cases in the Lambda console to test the request from Alexa. For details, see Smart Home Tutorial: Step 2e: Test Your Lambda Function.

When your implementation is complete, you can enable your add-on and begin testing.

To enable your add-on and begin testing

  1. In the Alexa app, enable your add-on. Alexa performs account linking, sends an Alexa.Authorization.AcceptGrant to your add-on to connect your add-on to the user's Amazon account, and then sends an Alexa.Discover request to your add-on to discover devices.
  2. If your add-on successfully discovers devices, complete the steps to enable your add-on for testing in the Alexa developer console.
  3. In the developer console, on the Test tab, test your add-on by using the Alexa Simulator.
    Give Alexa commands using the friendly names found in your discovery response and in the Alexa app. Use utterances specific to the device capabilities that your add-on supports. Make sure to test your add-on with valid and invalid utterances. To verify change reporting and endpoint health, power your device off and back on.
  4. To debug issues, in the CloudWatch console, find the logs in the log group for your add-on.

You can iterate on your add-on code and continue testing. If you change the account linking configuration, disable and re-enable the add-on in the Alexa app to test the new changes. If you change your discover response code, make sure that you disable and re-enable your add-on in the Alexa app. For options to test and debug your add-on, see Test and Debug Your Smart Home Add-on.

When you're satisfied with your add-on, you can provide the add-on distribution information.

Step 6: Provide publishing information

To distribute your add-on to the Amazon Alexa Skills Store, you must fill out the required metadata for your add-on on the Distribution tab in the developer console. Make sure that you provide links to a privacy policy and terms of use page and that all links open and display properly on iOS, Android, and desktop devices.

After you complete and save the add-on information, you can distribute your add-on for beta testing or submit it for certification.

Step 7: Beta test your add-on (optional)

You have the option to set up a beta test for your add-on. With a beta test, you make your add-on available to a limited group of testers that you personally select, rather than to the public. For details, see Beta Testing.

Step 8: Submit your add-on for certification

Before you submit your add-on for certification, review the Smart Home Certification Guide.

When you're ready to publish your add-on, submit for certification. For details about certifying an add-on, see Submit for Certification in the Alexa Developer Console.

To submit your add-on for certification

  1. Run the validation tests on the Certification page in the developer console. These tests help you identify issues that you must fix before you submit the add-on.
  2. Make sure that your add-on meets the Alexa+ policy guidelines. These guidelines help make sure that your add-on is appropriate for all customers. Adherence to these guidelines guards the privacy and welfare of Alexa users.
  3. Make sure that your add-on meets the Alexa+ security requirements. Customer trust is important. To protect customer data, your add-on must meet these security requirements.
  4. When you're ready to publish your add-on, and you verified that your add-on meets the policy and security requirements, submit your add-on for certification.

Add additional features to your add-on

If your device supports inventory sensors, you can add the Amazon Dash replenishment service to your smart home device to enable Alexa to monitor and reorder supplies or replacement parts for your device. For details, see About Dash Replenishment.

Revise and update your add-on after publication

After Amazon publishes your add-on to end users, the add-on status changes to live and a new development version is created in the developer console automatically. This version has the same information as the original live version. Any changes that you make to the add-on configuration or the Lambda function must be certified. When you submit your updated add-on to the developer console, in the Testing Instructions field, add a change log that provides a detailed description of all changes. For details, see Revise and update your add-on in the developer console.

To make changes to your Lambda function

  1. Create a new Lambda function with a new ARN.
  2. Copy your live Lambda function add-on code to the new Lambda function.
  3. In the new Lambda function, make updates to your add-on code.
  4. In the development stage for your add-on, update the Lambda ARN configuration to point to the new Lambda function ARN, and then submit your add-on for certification.

After Amazon certifies your updated add-on, Alexa sends requests to the new Lambda ARN. You can deprecate the previous Lambda function or use the function for future development or updates.


Was this page helpful?

Last updated: May 01, 2026