Searching for Fire TV devices via DIAL

In my iOS app, I want to discover Fire TV devices on the local network.

I send an SSDP M-SEARCH request like this:

M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: “ssdp:discover”
MX: 10
ST: urn:dial-multiscreen-org:service:dial:1

After that, I receive responses containing device description URLs. I fetch the device description using the provided LOCATION header.

My question is: how can I reliably determine whether a discovered device is a Fire TV (e.g. Insignia Fire TV) and not another DIAL-compatible device such as an LG TV?

Hello @Vika_MacDev

Great question. After discovering DIAL devices via SSDP and fetching the device description XML from the LOCATION URL, you can identify Fire TV devices using the following fields in the device description response:

  1. Check the <manufacturer> field:
    Fire TV devices return Amazon (or Amazon.com) as the manufacturer in the device description XML:
    Amazon

  2. Check the <modelName> or <friendlyName> fields:
    These will contain Fire TV-specific identifiers, for example:

  • Amazon Fire TV
  • Fire TV Stick 4K
  • Insignia 4K Fire TV (for Fire TV Edition TVs)
  1. Check the SERVER header in the M-SEARCH response:
    Fire TV devices typically return a Linux-based server string:
    SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
    Whereas other devices (e.g., LG TVs) will return their own OS identifiers (e.g., WebOS).

Recommended approach for reliable identification:
After fetching device description XML from LOCATION URL:

  1. Parse the element
  2. Check if it contains “Amazon” (case-insensitive)

if manufacturer.lowercased().contains(“amazon”) {
// This is a Fire TV device (stick, cube, or Fire TV Edition)
}

For additional confidence, you can also combine with a check on
containing “Fire TV” or “AFTMM” / “AFTT” / “AFTS” (Fire TV device model prefixes).

Note: There is no single guaranteed unique identifier that distinguishes all Fire TV devices from all other DIAL devices — the field being “Amazon” is the most reliable indicator. Fire TV Edition TVs (manufactured by Insignia, Toshiba, etc.) may show the OEM as the manufacturer but will typically still include “Fire TV” in the model or friendly name.

Reference documentation:

Warm regards,
Ivy

@Ivy_Mahajan Thank you very much for your reply.