---
title: Ayla Networks API Integration on Truto
slug: aylanetworks
category: Device Management
canonical: "https://truto.one/integrations/detail/aylanetworks/"
---

# Ayla Networks API Integration on Truto



**Category:** Device Management  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 68 tools for Ayla Networks that AI agents can call directly.

- **ayla_networks_auth_sign_in** — Sign in to the Ayla IoT platform with user credentials and application details to obtain authentication tokens. Returns: user.
- **ayla_networks_auth_sso_sign_in** — Sign in to the Ayla IoT platform using a single sign-on (SSO) token from an identity provider. Returns: access_token, refresh_token. Required: token.
- **ayla_networks_auth_validate_token** — Validate an Ayla token and return the user profile to the identity provider. Returns: response. Required: token.
- **ayla_networks_auth_bulk_update** — Update or delete an Ayla SSO user by specifying the operation and the user's unique identifier. Returns an empty 202 response on success. Required: operation, uuid.
- **ayla_networks_devices_get_registrable** — Get registrable devices in Ayla Networks available for registration via Same-LAN, Button-Push, Dsn, or Node. Returns: dsn, ip. Required: regtype. For Button-Push the button must have been pressed within the last 2 minutes; if dsn is specified other parameters are ignored.
- **list_all_ayla_networks_devices** — List devices associated with the authenticated Ayla Networks account. Returns: id, dsn, model, oem_model, mac, connected_at, activated_at, status, user_uuid.
- **ayla_networks_devices_update_location** — Update the location of an Ayla Networks device. Returns: location. Required: dev_id.
- **ayla_networks_devices_get_connection_history** — Get paginated connection history for an Ayla Networks device sorted by event_time or status. Returns: event_time, status. Required: dev_id, page_no, per_page, field_name, order_by.
- **ayla_networks_devices_get_lan_data** — Get LAN data for a specific Ayla device by device id. Returns: id, attributes. Required: devid.
- **ayla_networks_devices_create_virtual** — Create a virtual device in Ayla. Returns: id, attributes. Required: product_name, oem_model. The oem parameter is mandatory for Ayla::Admin users.
- **ayla_networks_devices_search** — Search devices for a specific OEM and dealer in the Ayla Networks platform. Returns a list of device records including dsn, oem_model, device_type, status, model, registered, and connected_at. Required: oem, dealer.
- **create_a_ayla_networks_device** — Register a device in the Ayla Networks platform by submitting a device object in the request body. Returns the created device including its dsn, id, and connected_at. Required: device.
- **get_single_ayla_networks_device_by_id** — Get a single Ayla device by DSN (device serial number). Returns the device object including dsn, connection_priority, model, mac, oem_model, status, user_uuid, connected_at, and activated_at. Required: id.
- **ayla_networks_devices_bulk_update** — Update the address of an Ayla Networks device. Returns: addr. Required: dev_id.
- **create_a_ayla_networks_template** — Create a new device template in Ayla Networks. Returns the template object including id, name, visibility, template_type, registration_type, and description. Required: visibility, registration_type, template_type, name, description. gateway_type is mandatory when template_type is Gateway; lanip_keep_alive and lanip_lifetime are mandatory when connection_priority is not empty.
- **ayla_networks_templates_bulk_update** — Update an existing device template in Ayla Networks by id. Returns the template object including id, name, visibility, template_type, registration_type, and description. Required: id, visibility, registration_type, template_type, name, description. gateway_type is mandatory when template_type is Gateway; lanip_keep_alive and lanip_lifetime are mandatory when connection_priority is not empty.
- **create_a_ayla_networks_template_property** — Create a template property for a specific Ayla template. Returns: template_property. Required: template_id, template_property.
- **ayla_networks_schedules_bulk_update** — Update a device schedule in Ayla, including its schedule and schedule_actions configuration. Returns the updated schedule and schedule_actions objects including active status, UTC setting, and recurrence rules. Required: dev_id, id.
- **ayla_networks_schedule_actions_bulk_update** — Update a schedule action in Ayla Networks by id. Returns the updated schedule_action object including its type. Required: id.
- **create_a_ayla_networks_notification_app** — Create a notification app in Ayla Networks for a specific notification. Returns the created notification app including id, notification_id, app_type, nickname, and notification_app_parameters. Required: not_id. Supported app_type values are email, sms, push_ios, push_android, push_android_fcm, and push_baidu — each requires a different set of notification_app_parameters.
- **ayla_networks_notification_apps_bulk_update** — Update a notification app in Ayla Networks by id. Returns the updated notification app including id, notification_id, app_type, nickname, and notification_app_parameters. Required: not_id, id. Supported app_type values are email, sms, push_ios, push_android, push_android_fcm, and push_baidu — each requires a different set of notification_app_parameters.
- **create_a_ayla_networks_trigger** — Create a trigger for a device property in Ayla Networks. Returns the trigger object with active state and the trigger_apps object with requires_acceptance and asset flags. Required: dsn, prop_name.
- **ayla_networks_triggers_bulk_update** — Update an existing trigger in Ayla Networks by id. Returns the trigger object with active state and the trigger_apps object with requires_acceptance and asset flags. Required: id.
- **ayla_networks_datapoints_create_in_group** — Create datapoints for all devices in an Ayla group by posting an array of datapoint payloads. Returns: id, property_name, value, created_at. Required: group_id.
- **ayla_networks_datapoints_create_by_dsn** — Create a single datapoint for a device property identified by DSN and property name in Ayla. Returns: id, property_name, value, created_at. Required: dsn, prop_name.
- **list_all_ayla_networks_datapoints** — List datapoints for a specific device property identified by DSN in Ayla. Returns: id, property_name, value, created_at. Required: dsn, prop_name.
- **list_all_ayla_networks_oems** — List OEMs (Original Equipment Manufacturers) registered in Ayla Networks. Returns a collection of OEM records, each identified by its id. No additional request parameters are required.
- **list_all_ayla_networks_end_users** — List end users for an OEM in Ayla Networks, with optional filtering by email, first name, or last name. Returns: uuid, email, phone, firstname, lastname, nickname, username. Required: oem_id.
- **ayla_networks_factory_devices_reserve_dsns** — Reserve a specified count of DSNs (Device Serial Numbers) for a module model and OEM in Ayla Networks. Returns: dsn. Required: model, count, reserve_oem.
- **ayla_networks_factory_devices_provision** — Provision a factory device in Ayla Networks by updating its OEM and hardware information. Returns the provisioned device record including dsn, model, Mac, manuf_model, hwsig, oem_model, module_sw_version, dom_at, and oem_host_version. Required: dsn, model, Mac, manuf_model, hwsig, oem_model, module_sw_version, dom_at, oem_host_version.
- **ayla_networks_factory_devices_bulk_update** — Update manufacturer information for a device identified by DSN in Ayla Networks. Returns: dsn, model, mac, hwsig, hom_at. Required: dsn, model, mac, hwsig, hom_at.
- **create_a_ayla_networks_icc_file** — Upload a file to associate with an existing file record in the Ayla IoT Command Center. Returns: file_id. Required: file_id, file.
- **ayla_networks_icc_jobs_remove_ota_command** — Remove an OTA command from specified devices in an Ayla Networks ICC job. Returns an empty 202 Accepted response on success. Required: job_id.
- **ayla_networks_icc_jobs_retry_selected_devices** — Retry OTA updates for selected devices in an Ayla Networks ICC job. Returns a 200 OK response acknowledging the retry request. Required: job_id.
- **create_a_ayla_networks_action** — Create a new action in the Ayla Rule Service. Returns the created action including its id, created_at, and updated_at. Required: action.
- **ayla_networks_actions_bulk_delete** — Delete multiple actions in bulk from the Ayla Rule Service. Returns an empty 204 response on success. Required: ids (max 10 entries).
- **create_a_ayla_networks_rule** — Create a rule in Ayla Networks with a logical expression that evaluates device datapoints, connections, or locations and triggers associated actions when true. Returns the created rule object including name, description, expression, action_ids, is_subscription, and is_template. Required: rule.
- **create_a_ayla_networks_destination** — Create a new message destination in Ayla Networks for delivering notifications via email, SMS, or push. Returns the created destination object including type, body, provider, repeat_freq, and deliver_to. Required: type.
- **delete_a_ayla_networks_destination_by_id** — Delete an Ayla Networks message destination by id. Returns an empty 204 response on success. Required: id.
- **ayla_networks_destinations_bulk_delete** — Delete multiple Ayla Networks message destinations in bulk by providing an array of destination UUIDs. Returns an empty 204 response on success. Required: destination_uuids.
- **list_all_ayla_networks_collections** — List Ayla Networks collections (groups and scenes) with optional filtering by type, custom attributes, and sorting. Returns each collection with collection_uuid, name, type, devices, child_collections, custom_attributes, schedule, and created_at. Filter by type (GROUP or SCENE) and by custom_attribute using an encoded key~value pair.
- **create_a_ayla_networks_collection** — Create a new Ayla Networks collection (group or scene) with devices, child collections, custom attributes, and an optional schedule for scenes. Returns: collection_uuid, name, type, devices, child_collections, custom_attributes, schedule, created_at. Required: collection containing name and type.
- **ayla_networks_collections_post_datapoints** — Post property datapoints to an Ayla Networks collection (group) by collection ID. Returns: collections_uuid, properties. Required: collection_id, properties.
- **ayla_networks_collections_enable_disable_automation** — Enable or disable scene automation for an Ayla Networks collection by collection ID. Returns: collections_uuid, is_active. Required: collection_id, is_active.
- **ayla_networks_collections_activate_countdown** — Activate an Ayla scene using a countdown timer that triggers the scene automatically after a specified number of minutes. Returns: properties. Required: collection_id.
- **ayla_networks_collections_list_last_datapoints** — Get the last posted datapoints for an Ayla collection (group or scene). Returns: properties. Required: collection_uuid.
- **ayla_networks_collections_bulk_update** — Update custom attributes for an Ayla Networks collection (group or scene) by collection UUID. Returns: collection_uuid, custom_attributes. Required: collection_uuid, custom_attributes.
- **create_a_ayla_networks_filter** — Create a new event filter in Ayla Networks to subscribe to device events by event type, model, or DSN. Returns the created filter object including uuid, name, client_type, filter_conditions, and created_at. Required: client_type.
- **list_all_ayla_networks_filters** — List Ayla Networks event filters. Returns: uuid, name, description, is_active, client_type, oem_id, user_uuid, filter_conditions, created_at.
- **get_single_ayla_networks_filter_by_id** — Get a single Ayla Networks event filter by id. Returns: uuid, name, description, is_active, client_type, oem_id, user_uuid, filter_conditions, created_at. Required: id.
- **ayla_networks_filters_bulk_update** — Update an existing Ayla Networks event filter by id. Returns the updated filter object including uuid, name, is_active, filter_conditions, and created_at. Required: id, filter_conditions.uuid.
- **ayla_networks_filters_bulk_delete** — Delete an Ayla Networks event filter by id. Returns an empty 204 response on success. Required: id.
- **list_all_ayla_networks_topics** — Get the MQTT topics associated with the authenticated session in the Ayla IoT Cloud MQTT Event Processor service. Returns the topic information needed to subscribe for device event notifications.
- **list_all_ayla_networks_mqtt_credentials** — List Ayla MQTT credentials for connecting devices to the Ayla IoT Cloud MQTT broker. Returns the credentials object including id and attributes with broker connection details.
- **create_a_ayla_networks_dealer** — Create a new dealer for an OEM in Ayla Networks. Returns the created dealer object including uuid, name, phone, email, and state. Required: oem_id, dealer.
- **list_all_ayla_networks_dealers** — List dealers for an OEM in Ayla Networks. Returns dealer records with uuid, name, phone, email, and state. Required: oem_id.
- **get_single_ayla_networks_dealer_by_id** — Get a single dealer by id from an OEM in Ayla Networks. Returns the dealer object including uuid, name, phone, email, and state. Required: oem_id, id.
- **ayla_networks_dealers_list_roles** — List dealer roles available for an OEM in Ayla Networks. Returns: id, name. Required: oem_id. The upstream docs do not enumerate additional response fields for this endpoint.
- **ayla_networks_dealers_bulk_update** — Update an existing dealer by id for an OEM in Ayla Networks. Returns the updated dealer object including uuid, name, phone, email, and state. Required: oem_id, id, dealer.
- **ayla_networks_dealers_bulk_delete** — Delete a dealer by id from an OEM in Ayla Networks. Returns an empty 204 response on success. Required: oem_id, id.
- **create_a_ayla_networks_dealer_user** — Create a new dealer user in Ayla Networks under a specific OEM and dealer. Returns the created dealer user including uuid, firstname, lastname, email, and role. Required: oem_id, dealer_uuid, user.
- **list_all_ayla_networks_dealer_users** — List dealer users for a specific OEM and dealer in Ayla Networks. Returns: uuid, firstname, lastname, email, role. Required: oem_id, dealer_uuid.
- **list_all_ayla_networks_dealer_end_users** — List end users associated with a dealer in Ayla Networks, with optional filtering by facility and first name. Returns: uuid, first_name, last_name, username, facility_uuid. Required: oem_id, dealer_uuid.
- **ayla_networks_dealer_end_users_associate** — Associate an end user to a dealer in Ayla Networks, assigning a dealer role. Returns: uuid, first_name, last_name, username, facility_uuid. Required: user_uuid, dealer_uuid, role_name.
- **list_all_ayla_networks_dealer_devices** — List devices tagged to a dealer in Ayla Networks, optionally filtered by facility. Returns: dsn, oem_model, mac, status, connected_at, activated_at, user_uuid. Required: oem_str, dealer_uuid.
- **ayla_networks_dealer_groups_assign_dealer** — Assign a dealer to a group in Ayla Networks by providing the dealer's UUID and OEM ID, optionally including all associated end users. Returns a 200 result confirming the dealer-to-group assignment. Required: group_id, dealer_uuid, oem_str.
- **list_all_ayla_networks_contracts** — List contract data from Ayla Networks, optionally filtered by the logged-in OEM identifier. Returns contract data records for the specified OEM context. The oem_id query parameter identifies the OEM to retrieve contract data for.
- **list_all_ayla_networks_properties** — List all device properties for a specific DSN in Ayla Networks. Returns: trigger, trigger_apps. Required: dsn.

## How it works

1. **Link your customer's Ayla Networks account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Ayla Networks.** The Proxy API is a 1-to-1 mapping of the Ayla Networks API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed IoT device management in field service software** — HVAC, appliance, and equipment service platforms can let contractors remotely view device status, connection history, and telemetry from Ayla-connected hardware before dispatching a technician, cutting down unnecessary truck rolls.
- **Power hardware-aware customer support tools** — Helpdesk and CRM products can surface live device state, connection history, and OTA update controls inside support tickets so agents can diagnose and remediate connected devices without leaving the conversation.
- **Automate factory provisioning from ERP and MES systems** — Manufacturing SaaS platforms can reserve DSNs, push hardware signatures, and assign devices to dealers or distributors the moment units come off the line, fully automating cloud onboarding before shipment.
- **Enable fleet-wide automation for energy and property management** — Energy management and smart building platforms can group thousands of devices into collections and push datapoints to orchestrate scenes like peak-demand shedding, move-out resets, or night mode across an entire portfolio.
- **Sync dealer and end-user topology into CRMs** — CRMs and dealer portals can mirror Ayla's OEM → Dealer → End User → Device hierarchy so every physical device is tied to the correct account, contract, and service contractor automatically.

## What you can build

- **Live device health dashboard** — Render real-time device status, LAN data, and connection history for any DSN using the devices and connection history endpoints.
- **In-app OTA update controls** — Let users manage ICC firmware jobs, remove queued OTA commands, and retry updates on stranded devices from your own UI.
- **Time-series telemetry ingestion** — Pull datapoints per device or DSN into your analytics pipeline and write new datapoints to trigger device actions.
- **Scene and group automation builder** — Create Ayla collections, post datapoints to them, and enable countdowns or automation toggles to orchestrate synchronized multi-device actions.
- **Cloud-side rules and webhook routing** — Programmatically create rules, triggers, and destinations so datapoint conditions fire notifications or webhooks into your product.
- **Factory provisioning workflow** — Reserve DSNs, provision hardware signatures and MAC addresses, and bulk-update factory devices to onboard hardware before it ships.

## FAQs

### How do end users authenticate their Ayla Networks account?

Ayla supports standard sign-in as well as SSO sign-in flows, and Truto handles token validation and refresh so your users connect once and stay connected.

### Can we both read and write device data?

Yes. You can list and fetch devices, datapoints, connection history, and LAN data, and you can also create datapoints, virtual devices, and bulk-update device properties, locations, and metadata.

### Does this integration support Ayla's dealer hierarchy?

Yes. You can list and manage OEMs, dealers, dealer users, dealer end users, and dealer devices, including associating end users to dealers and assigning dealer groups.

### Can we trigger OTA firmware updates through the integration?

You can manage ICC jobs — including creating ICC files, removing OTA commands, and retrying updates on selected devices — so OTA orchestration can be embedded directly in your product.

### How do we handle real-time events from Ayla?

Ayla's event flow is modeled through rules, triggers, and destinations. You can programmatically create these so datapoint conditions push notifications or webhooks to your backend, and topics and MQTT credentials are also exposed.

### Does Truto handle bulk operations and pagination?

Yes. Bulk update endpoints for devices, templates, schedules, triggers, filters, dealers, and factory devices are supported, and Truto normalizes pagination on list endpoints like devices, datapoints, dealers, and collections.
