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
This reference defines the objects that you send to Alexa in the Alexa.Discovery interface.

Endpoint object

The Endpoint object represents a connected device or component associated with a customer device cloud account. An endpoint describes one of the following:
  • A physical device
  • A virtual device, such as in a scene
  • A software component, such as a mobile app

Endpoint object example

Endpoint object details

PropertyDescriptionTypeRequired
endpointIdIdentifier for the endpoint. The identifier must be globally unique across all devices and users for the add-on. The identifier must be consistent for all discovery requests for the same device.

Valid value: Up to 256 characters. Can include letters, numbers, spaces, and the following special characters:
_ - = # ; : ? @ &
StringYes
manufacturerNameName of the manufacturer of the device.
Valid value: Up to 128 characters.
StringYes
descriptionDescription of the device. Include the manufacturer name or how the device connects.
For example, “Smart Lock by Sample Manufacturer” or “Wi-Fi Thermostat connected by SmartHub.”
Valid value: Up to 128 characters.
StringYes
friendlyNameName used by the user to identify the device. You set an initial value, and later the user can change the friendly name by using the Alexa app. All interfaces require this property, with some exceptions. To see if this property is optional, check the documentation for your Alexa capability interface.
Valid value: Up to 256 alphanumeric characters and spaces. Don’t include special characters or punctuation.
StringYes
displayCategoriesCategory under which your device displays in the Alexa app.
For supported categories, see Display categories.
Array of stringsYes
additionalAttributesAdditional information about the endpoint. Amazon recommends that you include this property because it can improve the user experience in the Alexa app. You must include this property if you want to apply for Works with Alexa Certification.AdditionalAttributes objectRecommended
capabilitiesCapability interfaces that your add-on supports for the endpoint, such as Alexa.BrightnessController or Alexa.PowerController. The capabilities property is subject to size limits.Array of Capability objectsYes
connectionsInformation about the methods that the device uses to connect to the internet and smart home hubs.Array of Connection objectsNo
relationshipsEndpoints to which an endpoint connects. For example, a computer endpoint might connect to a home network endpoint.Relationships objectNo
cookieInformation about the device that your add-on uses. The contents of this property can’t exceed 5000 bytes. Alexa doesn’t read or use this data.List of name/value pairsNo

AdditionalAttributes object

When different add-ons describe the same device in different ways, the same device appears multiple times in the Alexa app, which confuses users. Alexa uses the AdditionalAttributes object to identify duplicate devices and improve the user experience in the Alexa app.

AdditionalAttributes object example

AdditionalAttributes object details

PropertyDescriptionTypeRequired
manufacturerName of the manufacturer of the device.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended
modelName of the model of the device as advertised to customers. The model should uniquely identify the specific variant of a product. For example, for the device MyLights 2100, the manufacturer is MyLights and the model is 2100.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended
serialNumberSerial number of the device.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended
firmwareVersionFirmware version of the device.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended
softwareVersionSoftware version of the device.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended
customIdentifierYour custom identifier for the device. This identifier should be globally unique across different user accounts.
For Matter devices, you must include this property to report the Matter UniqueID attribute.
Valid value: Up to 256 characters. Can include letters, numbers, and punctuation.
StringRecommended

Capability object

A Capability object represents an interface that your add-on supports. For example, your add-on might support turning on a light by supporting the Alexa.PowerController interface. To find available interfaces for smart home devices, see List of Alexa Interfaces.

Capability object example

Capability object details

PropertyDescriptionTypeRequired
typeType of capability. Currently, the only available type is AlexaInterface.StringYes
interfaceName of the capability interface.StringYes
instanceYou can implement multiple instances of some interfaces. In that case, you give each instance of the interface a unique name. For details, see Generic Controller Interfaces.StringNo
versionVersion of the interface. Different interfaces have different versions from each other.
Always check the documentation for an interface to verify the current version.
StringYes
propertiesProperties of the interface that your add-on supports.Properties objectNo
capabilityResourcesProvide friendly names that users can use to interact with some interfaces. For details, see Friendly Name Resources and Assets and the documentation for each interface.ObjectNo
configuration or configurationsOptional configuration. Some interfaces require a configuration object that contains information about how you use the interface. For details, see the documentation for each interface.ObjectNo
semanticsFor some interfaces, you can add additional features by using semantics.Semantics objectNo
verificationsRequiredFor some interfaces and locales, you can optionally require the user to verify an action before Alexa performs it.Array of VerificationsRequired objectsNo

Properties object

The Properties object defines a reportable property of the endpoint. Each Alexa interface defines the reportable property name and value. For details, see the documentation for each interface that you support in your Alexa add-on.

Properties object example

Properties object details

PropertyDescriptionTypeRequired
supportedProperties of the interface that your add-on supports.ArrayNo
proactivelyReportedSet to true if your add-on sends change reports when the properties change. The default is false.BooleanNo
retrievableSet to true if you respond to state report requests and report the values of the properties. The default is false.BooleanNo

Semantics object

To add user utterances beyond the standard utterances defined by the pre-built voice interaction model, you can use semantics. When you use semantics for utterances, you manually map the phrases , , , and to the directives of your controller. For details, see Semantics for user utterances. You can also use semantics to enable Alexa hunches for your device to conserve energy on behalf of users. For details, see Semantics for Alexa hunches. To improve the user experience in the Alexa app, you can use semantics to enable announcements to the user when your device requires attention. To enable announcements, you map device status codes to Alexa predefined states. For details, see Semantics for notifications.

Semantics object example

The following example shows a Semantics object for a device that implements the RangeController interface.

Semantics object details

PropertyDescriptionTypeRequired
actionMappingsArray of mappings between action phrases and interface directives.Array of ActionMappings objectsOne of ActionMappings or StateMappings
stateMappingsArray of mappings between Alexa states and your controller states. Include state mappings so that users can query the device state by using the phrases Open and Closed.Array of StateMappings objectsOne of ActionMappings or StateMappings

ActionMappings object

The ActionMappings object defines mappings between action phrases and interface directives.

ActionMappings object example

ActionMappings object details

PropertyDescriptionTypeRequired
@typeType of action mapping.
Valid value: ActionsToDirective.
StringYes
actionsArray of actions mapped to a single directive.
Valid values: Alexa.Actions.Open, Alexa.Actions.Close, Alexa.Actions.Raise, Alexa.Actions.Lower, Alexa.Actions.SetEcoOn, Alexa.Actions.SetEcoOff.
ArrayYes
directiveIdentifies the directive to call for the actions.ObjectYes
directive.nameName of the directive. The directive must be a directive of the interface in the capability object in which you include the semantics object.StringYes
directive.payloadPayload appropriate for the directive. Some directives don’t require a payload, and the type of the payload depends on the directive. For details, see the documentation for each interface.ObjectNo

StateMappings object

The StateMappings object defines mappings between Alexa states and controller states.

StateMappings object example

StateMappings object details

PropertyDescriptionTypeRequired
@typeType of state mapping.
Valid values: one of StatesToValue or StatesToRange.
StringYes
statesArray of Alexa states mapped to your controller values.
Valid values: Alexa.States.Open, Alexa.States.Closed, Alexa.States.EcoOn, Alexa.States.EcoOff, Alexa.States.Low, Alexa.States.Empty, Alexa.States.Full, Alexa.States.Done, Alexa.States.Stuck.
ArrayYes
valueValue of your controller that corresponds to the specified Alexa states.ValueYes when @type is StatesToValue
rangeRange of values of your controller that corresponds to the specified Alexa states.ObjectYes when @type is StatesToRange

VerificationsRequired object

When a user asks your add-on to perform an action, such as turning on a light, you can require the user to confirm the action first, and then, after you perform the action, give feedback about the results. To require action verification, for each endpoint, specify which directives you require verification for in your discovery response. The following interfaces support action verification: Alexa.PowerController and Alexa.ThermostatController.

VerificationsRequired object example

The following example shows a VerificationsRequired object for an Alexa add-on that implements the ThermostatController interface and requires action verification before Alexa sets the target temperature for the thermostat. For a complete discovery response example, see example for a thermostat that requires action verification.

VerificationsRequired object details

PropertyDescriptionTypeRequired
directiveName of the directive that requires verification. The directive must be a directive of the interface in the Capability object that includes the VerificationsRequired object.StringYes
methodsIdentifies the methods to use to obtain action verification.Array of objectsYes
methods[].@typeMethod to obtain action verification.
Valid value: Confirmation.
StringYes

Connections property

The Connections property represents the methods that a device uses to connect to the internet and smart home hubs. The connections property contains an array of connection objects.

Connections property example

Connections object details

The following table shows the Connections object details, along with the connection type that each property applies to.
PropertyDescriptionConnection typeTypeRequired
typeType of connection.
Valid values: BLUETOOTH_MESH, MATTER, TCP_IP,ZIGBEE, ZWAVE, UNKNOWN.
AllStringYes
macAddressUnique identifier for the network interface controller (NIC). Optionally include this property when the connection type is MATTER, TCP_IP or ZIGBEE.
If the MAC address changes, you must report it with the AddOrUpdateReport event.
Valid value: 1 – 32 characters.
MATTER, TCP_IP, ZIGBEEStringRecommended
homeIdHome ID for a Z-Wave network to which the endpoint connects.
Format: 0x00000000 with UTF-8 characters.
ZWAVEStringNo
nodeIdNode ID for the endpoint in a Z-Wave network to which the endpoint connects.
Format: 0x00 with UTF-8 characters.
ZWAVEStringNo
matterDiscriminator12-bit value assigned to the endpoint during manufacturing. Used to discern between multiple commissionable Matter device advertisements.
Set to the Matter Discriminator attribute.
Valid values: 0 – 4095.
MATTERIntegerYes
matterVendorId16-bit value assigned to the endpoint manufacturer by the Connectivity Standards Alliance.
Set to the Matter VendorID attribute.
Valid values: 0 – 65535.
MATTERIntegerYes
matterProductId16-bit value assigned by the vendor to uniquely identify the product.
Set to the Matter ProductID attribute.
Valid values: 0 – 65535.
MATTERIntegerYes
macNetworkInterfaceType of NIC to which the macAddress is associated.
Valid values: BLE, WIFI, ETHERNET, THREAD.
MATTER, TCP_IP, ZIGBEEStringRecommended
deviceUuidUUID for the device endpoint that connects to a Bluetooth mesh network.
Valid value: 32 alphanumeric characters. Include hexadecimal digits only.
BLUETOOTH_MESHStringYes
valueWhen you can’t identify the type of the connection more specifically, include information about the connection. The information that you provide in this property should be stable and specific.
Valid value: Up to 256 characters. Can include letters, numbers, punctuation.
UNKNOWNStringYes

Relationships object

A relationships object lists the endpoints to which an endpoint connects. For example, a headlight might connect to a car, or one or more speakers might connect to a soundbar to create a home theater. Alexa uses device relationships to organize related devices or scenes in the Alexa app. For more details, see Identify relationships between endpoints.

Relationships object example for Alexa Built-in video devices

Relationships object details

The following table shows the details of the Relationships object. You must include at least one property.
PropertyDescriptionTypeRequired
isControlledByUse to indicate that another endpoint controls this endpoint. For example, an Alexa-enabled soundbar might control a TV, or a scene might control multiple lights. Include one or more reported endpointId.Array of stringsNo
isClusterOfUse to indicate that a smart home endpoint controls one or more Alexa Built-in (ABI) endpoints. Include all endpoints that make up the cluster. For example, one or more speakers connected to a soundbar to create a home theater. The cluster endpoint shows up in the Alexa app, hiding all children endpoints.
Use when you want to reference one or more ABI devices as a child of a smart home endpoint.
Array of stringsNo
video_isSameAsUse to associate a smart home endpoint with video capability with an Alexa Built-in device.
Use this relationship for Alexa Built-in endpoints only.
ObjectNo
video_isSameAs.sourceType of endpoint source, such as an Alexa Built-in device.
Valid value: AVS.
StringNo
video_isSameAs.endpointIdSet to the deviceSerialNumber of the Alexa Built-in source, or to the endpointId that you sent in the discovery response.StringYes
video_isSameAs.endpointTypeIdAlexa Built-in Product ID.
Use this property for Alexa Built-in sources only.
StringNo

Registration property

Use Registration property to represent an Alexa Built-in device.

Registration property example

Registration object details

The following table shows the Registration object details.
PropertyDescriptionTypeRequired
productIdDeveloper-provided product ID. It must match the productId or PRODUCT_ID properties used to acquire access tokens during the Alexa Built-in device authorization flow.StringYes
deviceSerialNumberDevice-generated serial number that’s unique among all devices sharing the same productId. It must match the deviceSerialNumber or PRODUCT_DSN property used to acquire access tokens during the Alexa Built-in device authorization flow.StringYes
Last modified on August 11, 2026