Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get started
Connect with Matter
Alexa Connect Kit
Add-ons
Certify
Resources
Skip to main content
After you obtain and store the access tokens for a customer, you can send proactive events and asynchronous responses to previous directives. You send these events as HTTP messages to the Alexa event gateway endpoint in the appropriate region.

Asynchronous event types

The structure of asynchronous responses and events is the same as for a synchronous message, but you send the event to the Alexa event gateway. You send the following events to the event gateway:

Gateway endpoints

When you send a message to the Alexa event gateway, send it to the event endpoint that aligns with the geographic availability of your smart home add-on or video skill. The following list shows the Alexa regions and associated endpoints.
  • North America: https://api.amazonalexa.com/v3/events
  • Europe and India: https://api.eu.amazonalexa.com/v3/events
  • Far East and Australia: https://api.fe.amazonalexa.com/v3/events
For example, if you offer an add-on that sends change report events in the US and the UK, you must deploy Amazon Web Services (AWS) Lambda functions for both the North American and European regions. For a US customer, Alexa sends directives to your add-on’s North America Lambda function. You store the access tokens for that customer so that your add-on’s North America Lambda function can access it. You send events for that customer to the North American endpoint. For a UK customer, Alexa sends directives to the Lambda function configured for Europe and you store and send events to the European endpoint. For details about AWS Lambda endpoints, see Deploy your Lambda function to multiple regions. In addition, if a customer moves between geographic regions, they have to re-enable and relink their add-on. Then, your add-on can change storage location of the associated customer information.

Asynchronous event definition

You communicate asynchronous responses and events to Alexa by sending an HTTP POST message to the Alexa event gateway.

API endpoint

Set the endpoint to the gateway endpoint in the region where the customer is located.

Authentication

To authenticate the add-on with the Alexa gateway, use the bearer token authentication in the HTTP header. Include the stored access token for the customer. Make sure that you refresh access tokens before they expire.

Request

Include the access token in the request header and in the body of the message.

Request header example

Request header parameters

ParameterDescriptionTypeRequired
gateway-endpointSet to the gateway endpoint in the region where the customer is located.StringYes
access-token-from-AmazonAccess token for the customer.
For details about the process to obtain access tokens for a customer, see Request Access to the Alexa Event Gateway.
StringYes

Request body example

The following example shows an asynchronous response to a SetColorTemperature directive.

Request body parameters

For the definition of the request body, see the documentation for the specific event type. In the endpoint object include the scope property with type = BearerToken and token set to the access_token that you received from LWA.

Response

On success, Alexa sends 202 Accepted to indicate that the event was accepted for further logical validation and processing. If the request isn’t accepted, Alexa sends the appropriate HTTP status code. For example, if you send a request with an expired token, Alexa sends an HTTP 401 Unauthorized response.

Response body parameters

This response has no body.

HTTP status codes

The following table shows the HTTP status code values that your add-on might receive from the Alexa event gateway. If you receive an error, the response body contains the error code and description. Use these fields for logging only.
StatusPayload codeDescription
202 Accepted—Request is authorized and the message is a syntactically valid event. The gateway accepted the event for further logical validation and processing.
400 Bad RequestINVALID_REQUEST_EXCEPTIONMessage is not valid due to missing fields, incorrect values, or malformed JSON. Check your messages against the documentation to verify that your message contains all the required fields.
401 UnauthorizedINVALID_ACCESS_TOKEN_EXCEPTIONMessage didn’t include the authorization token or the token is expired, malformed, or not valid. Refresh your token and retry the request. If a user disables your add-on, that also invalidates the access token.
403 ForbiddenSKILL_DISABLED_EXCEPTIONThe customer disabled your add-on. Stop sending events for the customer and delete any stored tokens in your system.
403 ForbiddenSKILL_NEVER_ENABLED_EXCEPTIONYou’re not allowed access to the event gateway. Make sure that you’re sending the events to the correct regional endpoint. For example, send events in North America to the North American endpoint. Otherwise, the customer never enabled your add-on.
403 ForbiddenINSUFFICIENT_PERMISSION_EXCEPTIONToken doesn’t have the required permissions. Make sure that the add-on has permission to send Alexa events. For details, see Request Access to the Alexa Event Gateway.
404 Not FoundACCOUNT_NOT_FOUND_EXCEPTIONAccount record associated with this directed identifier doesn’t exist or has expired. This error can occur if the event was sent too late or with directed identifier that’s not valid. Verify that the directed identifier and authorization code are correct.
404 Not FoundSKILL_NOT_FOUND_EXCEPTIONSkill ID associated with this token wasn’t found. This error occurs when user’s access token was generated when the add-on was in different stage, such as certification. Try disabling and re-enabling the add-on for this user.
413 Payload Too LargeREQUEST_ENTITY_TOO_LARGE_EXCEPTIONSize of the event payload is too large. The maximum number of endpoints allowed in a request is 300. Send your message with smaller payloads.
429 Too Many RequestsTHROTTLING_EXCEPTIONNumber of requests is too high. Resend the message up to three times, with at least a one-second interval between each send attempt.
500 Internal Server ErrorINTERNAL_SERVICE_EXCEPTIONError occurred with Alexa, and the message wasn’t processed. Resend the message up to three times, with at least a one-second interval between each send attempt. If problems persist, contact Amazon Support.
503 Service UnavailableSERVICE_UNAVAILABLE_EXCEPTIONAlexa couldn’t accept the message. Resend the message up to three times, with at least a one-second interval between each attempt. If the problem persists, contact Amazon Support.
Example error response body
The following example shows an error response.
Last modified on May 1, 2026