API Mechanics Overview (Alexa Voice Service v20160207)
The Alexa Voice Service (AVS) allows developers to voice-enable connected products with a microphone and speaker. Once integrated, your product will have access to the built in capabilities of Alexa (like music playback, timers and alarms, package tracking, movie listings, calendar management, and more) and third-party skills developed using the Alexa Skills Kit.
AVS is comprised of interfaces that correspond to client-functionality, like speech recognition, audio playback, and volume control. Each interface contains logically grouped messages called directives and events. Directives are messages sent from the cloud instructing your client to take action. Events are messages sent from your client to the cloud notifying Alexa something has occurred.
The API uses Login with Amazon (LWA) for product authorization and exposes an HTTP/2 endpoint.
What's New?
For new and updated AVS features, see blogs and documentation in the documentation changelog.
Authorization
To access the AVS API, your product needs to obtain a Login with Amazon (LWA) access token, which grants a product access to call the API on a customer's behalf. There are multiple ways to authorize a product:
Remote Authorization is used to authorize devices with a companion website or mobile app. Typically, remote authorization is used with headless devices, like a smart speaker.
Local Authorization is used to authorize Alexa from the AVS-enabled product. Typically, local authorization is used with Android and iOS applications.
Code Based Linking is an authorization method optimal for products with limited or no access to character input, such as a television or smart watch.
Capabilities
AVS expects each product to report the interfaces and interface versions that it supports on first boot (out-of-box experience), and whenever an over-the-air (OTA) update is applied. Click here to learn more about the Capabilities API and how interfaces are versioned.
HTTP/2
AVS exposes an HTTP/2 service and expects multipart messages encoded for HTTP/2. The following pages provide information to help you manage a connection and structure requests.
Base URLs
As of May 22nd, 2019, the default base URLs for AVS have changed. We recommend that all new and existing clients adopt these new URLs; however, the legacy base URLs will continue to be supported.
Base URLs
| Region | Supported Countries/Regions | URL |
|---|---|---|
| Asia | Australia, Japan, New Zealand | https://alexa.fe.gateway.devices.a2z.com |
| Europe | Austria, France, Germany, India, Italy, Spain, United Kingdom | https://alexa.eu.gateway.devices.a2z.com |
| North America | Canada, Mexico, United States | https://alexa.na.gateway.devices.a2z.com |
Legacy Base URLs
| Region | Supported Countries/Regions | URL |
|---|---|---|
| Asia | Australia, Japan, New Zealand | https://avs-alexa-fe.amazon.com |
| Europe | Austria, France, Germany, India, Italy, Spain, United Kingdom | https://avs-alexa-eu.amazon.com |
| North America | Canada, Mexico, United States | https://avs-alexa-na.amazon.com |
Interfaces
Each interface is a collection of directives and events, which correspond to specific client-side functionality. Use the table below to explore:
| Interface | Description |
|---|---|
| Alerts | The interface for setting, stopping, and deleting timers and alarms. For a conceptual overview, see Alerts Overview. |
| AudioActivityTracker | The interface that is used to inform Alexa which interface last occupied an audio channel. |
| AudioPlayer | The interface for managing and controlling audio playback that originates from an Alexa-managed queue. For a conceptual overview, see AudioPlayer Overview. |
| Bluetooth | The interface for managing connections with peer Bluetooth devices, such as smart phones and speakers. |
| EqualizerController | This interface allows a product to adjust equalizer settings using Alexa, such as decibel (dB) levels and modes. |
| InputController | This interface enables selecting and switching inputs on an Alexa-enabled product. |
| Notifications | The interface that delivers visual and audio indicators when notifications are available. For a conceptual overview, see Notifications Overview. |
| PlaybackController | The interface for navigating a playback queue via button presses or GUI affordances. |
| Settings | The interface that is used to manage the Alexa settings on your product, such as locale. |
| Speaker | The interface for controlling the volume of Alexa originated content on your product, including mute and unmute. |
| SpeechRecognizer | The core interface for the Alexa Voice Service. Each user utterance leverages the Recognize event. |
| SpeechSynthesizer | The interface that returns Alexa TTS. |
| System | The interface that is used to send Alexa information about your product. |
| TemplateRuntime | The interface for rendering visual metadata. For a conceptual overview, see Display Cards Overview. |
| VisualActivityTracker | The interface that is used to inform Alexa when content is actively displayed to an end user. |
Device templates
To learn how to connect nearly any type of device to AVS, review the Device Templates for Alexa. These templates provide guidance on which Alexa capabilities to implement for your device type.
Get Started with Device Templates
Versioning
Amazon regularly updates the Alexa Voice Service with new features, performance enhancements, and bug fixes to offer the best experience to Alexa users. These changes may result in the incremental versioning of each affected interface individually using a MAJOR.MINOR scheme. To learn more about interface versioning, see Capabilities API.
The AVS API version, currently v20160207, guarantees that directives and events sent from Alexa conform to the same message specification.
Need Help?
For questions, comments, or issues with the AVS APIs, see the [AVS Knowledge Base and Forum][avs-forum].

