---
title: "List Device Providers"
method: POST
path: "/devices/list_device_providers"
tags: ["/devices"]
---

# List Device Providers

`POST /devices/list_device_providers`

Returns a list of all device providers.

The information that this endpoint returns for each provider includes a set of [capability flags](/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.

When you create a [Connect Webview](/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).

## Request body

- object
  - `provider_category` 'stable' | 'consumer_smartlocks' | 'beta' | 'thermostats' | 'noise_sensors' | 'access_control_systems' | 'cameras' | 'connectors' — Category for which you want to list providers.

## Response `200`

OK

- object
  - `device_providers` DeviceProvider[], required
    - `can_configure_auto_lock` boolean — Indicates whether the lock supports configuring automatic locking.
    - `can_hvac_cool` boolean — Indicates whether the thermostat supports cooling.
    - `can_hvac_heat` boolean — Indicates whether the thermostat supports heating.
    - `can_hvac_heat_cool` boolean — Indicates whether the thermostat supports simultaneous heating and cooling.
    - `can_program_offline_access_codes` boolean — Indicates whether the device supports programming offline access codes.
    - `can_program_online_access_codes` boolean — Indicates whether the device supports programming online access codes.
    - `can_program_thermostat_programs_as_different_each_day` boolean — Indicates whether the thermostat supports different climate programs for each day of the week.
    - `can_program_thermostat_programs_as_same_each_day` boolean — Indicates whether the thermostat supports a single climate program applied to every day.
    - `can_program_thermostat_programs_as_weekday_weekend` boolean — Indicates whether the thermostat supports weekday/weekend climate programs.
    - `can_remotely_lock` boolean — Indicates whether the device supports remote locking.
    - `can_remotely_unlock` boolean — Indicates whether the device supports remote unlocking.
    - `can_run_thermostat_programs` boolean — Indicates whether the thermostat supports running climate programs.
    - `can_simulate_connection` boolean — Indicates whether the device supports simulating connection in a sandbox.
    - `can_simulate_disconnection` boolean — Indicates whether the device supports simulating disconnection in a sandbox.
    - `can_simulate_hub_connection` boolean — Indicates whether the hub supports simulating connection in a sandbox.
    - `can_simulate_hub_disconnection` boolean — Indicates whether the hub supports simulating disconnection in a sandbox.
    - `can_simulate_paid_subscription` boolean — Indicates whether the device supports simulating a paid subscription in a sandbox.
    - `can_simulate_removal` boolean — Indicates whether the device supports simulating removal in a sandbox.
    - `can_turn_off_hvac` boolean — Indicates whether the thermostat can be turned off.
    - `can_unlock_with_code` boolean — Indicates whether the lock supports unlocking with an access code.
    - `device_provider_name` 'hotek' | 'dormakaba_community' | 'legic_connect' | 'akuvox' | 'august' | 'avigilon_alta' | 'brivo' | 'butterflymx' | 'schlage' | 'smartthings' | 'yale' | 'genie' | 'doorking' | 'salto' | 'salto_ks' | 'salto_ks_accept' | 'lockly' | 'ttlock' | 'linear' | 'noiseaware' | 'nuki' | 'igloo' | 'kwikset' | 'minut' | 'my_2n' | 'controlbyweb' | 'nest' | 'igloohome' | 'ecobee' | 'four_suites' | 'dormakaba_oracode' | 'pti' | 'wyze' | 'seam_passport' | 'visionline' | 'assa_abloy_credential_service' | 'tedee' | 'honeywell_resideo' | 'first_alert' | 'latch' | 'akiles' | 'assa_abloy_vostio' | 'assa_abloy_vostio_credential_service' | 'tado' | 'salto_space' | 'sensi' | 'keynest' | 'korelock' | 'keyincode' | 'dormakaba_ambiance' | 'ultraloq' | 'dusaw' | 'sifely' | 'thirty_three_lock' | 'ring' | 'ical' | 'lodgify' | 'hostaway' | 'guesty' | 'acuity_scheduling' | 'omnitec' | 'kisi', required — Name of the device provider.
    - `display_name` string, required — Display name for the device provider.
    - `image_url` string, required — Image URL for the device provider.
    - `provider_categories` string[], required — List of provider categories to which the device provider belongs, such as `stable`, `consumer_smartlocks`, `thermostats`, and so on.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.net/seam/apis/seam-connect.md) · [All operations](https://skmtc.net/seam/apis/seam-connect/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/seam/seam-connect/versions/00c35395ce12/schema)
