Skip to content

Device Management · Beta

Ayla Networks
API integration

Ship Device Management features without building the integration. Full Ayla Networks API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Ayla Networks

Use Cases

Why integrate with Ayla Networks

Common scenarios for SaaS companies building Ayla Networks integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Ayla Networks

Concrete product features your team can ship faster by leveraging Truto’s Ayla Networks integration instead of building from scratch.

01

Live device health dashboard

Render real-time device status, LAN data, and connection history for any DSN using the devices and connection history endpoints.

02

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.

03

Time-series telemetry ingestion

Pull datapoints per device or DSN into your analytics pipeline and write new datapoints to trigger device actions.

04

Scene and group automation builder

Create Ayla collections, post datapoints to them, and enable countdowns or automation toggles to orchestrate synchronized multi-device actions.

05

Cloud-side rules and webhook routing

Programmatically create rules, triggers, and destinations so datapoint conditions fire notifications or webhooks into your product.

06

Factory provisioning workflow

Reserve DSNs, provision hardware signatures and MAC addresses, and bulk-update factory devices to onboard hardware before it ships.

SuperAI

Ayla Networks AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Ayla Networks

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 700+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Ayla Networks in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Ayla Networks account

Use Truto’s frontend SDK to connect your customer’s Ayla Networks account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Ayla Networks

Truto’s Proxy API is a 1-to-1 mapping of the Ayla Networks API. You call us, we call Ayla Networks, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Ayla Networks’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Ayla Networks on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Ayla Networks

Get Ayla Networks integrated into your app

Our team understands what it takes to make a Ayla Networks integration successful. A short, crisp 30 minute call with folks who understand the problem.