Your Alexa Dashboards Settings

Requirements to Build a Skill

Once you know what type of skill you want to build, you can determine what you need to get started.

Create a Developer Portal Account

To build any type of skill, you need an account on the developer portal.

You use the developer portal to create a configuration for the skill. This configuration collects information about the skill, such as its name, the API you want to use, the endpoint or content feed, and other information. The Alexa service uses the configuration to determine which user requests should be sent to the service for your skill.

What Do You Need for a Custom Skill?

To build a custom skill, you need:

  • An Internet-accessible endpoint for hosting your cloud-based service.

    The simplest option for this is to use AWS Lambda (an Amazon Web Services offering). In this case, you need an account with Amazon Web Services in addition to your developer portal account.

    Alternatively, you can build and host an HTTPS web service. In this case, you will need a cloud hosting provider and an SSL certificate.

  • A development environment appropriate for the programming language you plan to use. You can author a Lambda function in Node.js, Java, Python, or C#. You can author a web service in any language appropriate for web services.

  • A publicly accessible web site to host any images, audio files, or video files that you use in your skill. If you have no such files other than for a skill icon, you do not need to host any resources. One possible solution is to use an Amazon Simple Storage Service (S3) instance, (an Amazon Web Services offering).

  • Optionally, a device with Alexa for testing. Skills work with all devices with Alexa, such as the Amazon Echo, Amazon Echo Dot, Amazon Tap, Fire TV, and devices that use the Alexa Voice Service.

    If you don’t have a device, you can use a basic Service Simulator for testing, although the Service Simulator cannot be used for certain features such as the Device Address API, or for screen interaction features with Alexa. The simulator is available in the developer portal where you configure the skill. You can use the simulator to type in the requests, view the responses, and listen to the responses in Alexa’s voice. You can also see what the display templates for Echo Show look like, although the display is not interactive. In addition, if your skill includes display and touch interactions, you require an Echo Show to test it.

    Note that you do need a device for full voice testing.

See Understanding Custom Skills.

What Do You Need for a Smart Home Skill?

To build a smart home skill, you need:

  • The cloud-enabled device that you want to control (such as a light, switch, or thermostat). The device must be controllable via a cloud-based service that you have access to.
  • An account with Amazon Web Services, needed for a Lambda function to host the skill code. Skills built with the Smart Home API must be hosted on AWS Lambda.
  • A development environment appropriate for the programming language you plan to use. You can author a Lambda function in Node.js, Java, Python, or C#.
  • An Alexa-enabled device for testing. Skills work with all Alexa-enabled devices, such as the Amazon Echo, Amazon Echo Dot, Echo Show, Fire TV, and devices that use the Alexa Voice Service.

See Understanding the Smart Home Skill API.

What Do You Need for a Video Skill?

To build a video skill, you need:

  • A cloud-enabled video service provider. You must have access to the cloud-based service or it must have a public API.
  • An account with Amazon Web Services, needed for a Lambda function to host the skill code. Skills built with the Video Skill API must be hosted on AWS Lambda.
  • A development environment appropriate for the programming language you plan to use. You can author a Lambda function in Node.js, Java, Python, or C#.
  • An Alexa-enabled device for testing.

See Understanding the Video Skill API.

What Do You Need for a Flash Briefing Skill?

To build a flash briefing skill, you need:

  • An Internet-accessible content feed (using RSS or JSON) that refreshes with new content on an ongoing basis.

See Understanding the Flash Briefing Skill API.

Next Steps

Get started:

Previous: