The Alexa Voice Service (AVS) API 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.
- 8/17/2017 - AVS Device SDK for C++ is now available. Learn more ».
- 8/10/2017 - Recommended codecs, containers, streaming formats, and playlists that your product should support are now available in Recommended Media Support for AVS.
- 8/7/2017 - SpeechRecognizer documentation now specifies how long a microphone must remain open during a user interaction.
- 8/3/2017 - The
SetAlertdirective has been extended to support named timers and reminders. Read more »
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 two 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.
The following pages provide information to help you manage a connection and structure requests.
AVS exposes an HTTP/2 service and expects multipart messages encoded for HTTP/2. The following endpoints are supported:
Each interface is a collection of directives and events, which correspond to specific client-side functionality. Use the table below to explore:
|SpeechRecognizer||The core interface for the Alexa Voice Service. Each user utterance leverages the Recognize event.|
|SpeechSynthesizer||The interface for Alexa speech.|
|Alerts||The interface for setting, stopping, and deleting timers and alarms. For a conceptual overview, see Alerts Overview.|
|AudioPlayer||The interface for managing and controlling audio playback. For a conceptual overview, see AudioPlayer Overview.|
|Notifications||The interface for displaying notifications indicators. For a conceptual overview, see Notifications Overview.|
|PlaybackController||The interface for navigating a playback queue via button affordances.|
|Speaker||The interface for volume control of a device or application, including mute and unmute.|
|Settings||The interface for managing Alexa settings on your product, such as locale.|
|System||The interface for providing client information to Alexa.|
|TemplateRuntime||The interface for rendering visual metadata. For a conceptual overview, see Display Cards Overview.|
Amazon regularly updates the AVS API with new features, performance enhancements, and bug fixes to offer the best experience to Alexa users. These changes may result in the transmission of new directives or new properties in the JSON, while maintaining backward compatibility for existing directives and properties. For additional information, see Interaction Model.
The following list includes the current version, previous version, and migration guide.
If you have any questions, comments, or encounter issues with the AVS API, please leverage the AVS Knowledge Base and Forum where we will actively monitor and respond to developer feedback and concerns.