> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/iot-logic-api/readme.md).

# Navixy IoT Logic API

IoT Logic is the data processing layer of the Navixy platform. It receives messages from connected devices, decodes and transforms them in real time, and delivers the results to Navixy or to an external system. Flows are normally built in a visual editor. The IoT Logic API exposes the same functionality programmatically, so flow configuration can live in your own code and deployment pipeline instead.

Use the API to:

* Create, read, update, and delete flows, the pipelines that define how device data is processed.
* Choose which devices feed each flow, and merge data from an external system into a device's stream.
* Calculate new attributes from raw readings with [Navixy IoT Logic Expression Language](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).
* Route messages conditionally and send commands back to devices.
* Deliver processed data to the Navixy platform, to an MQTT broker, or to an HTTP endpoint, standardized as [Navixy Generic Protocol](/docs/iot-logic-api/technologies/navixy-generic-protocol.md) messages.

The API is built for developers and system integrators who manage device data at scale, who need transformations that standard platform features don't cover, or who want the same flows reproduced across several accounts.

## How to use this documentation

This space documents the IoT Logic API in full. Choose the path below depending on who, or what, is reading.

### For developers

Start with [Key concepts](#key-concepts) below to see how flows and nodes fit together, then get access: [Authentication](/docs/iot-logic-api/authentication.md) covers obtaining a session hash or an API key.

Once you're authenticated, build something. [Quick start: create your first flow](/docs/iot-logic-api/navixy-iot-guide/quick-start-create-your-first-flow.md) creates a working flow with one request, with every parameter explained. From there, [Guides](/docs/iot-logic-api/navixy-iot-guide.md) walks through other common integrations, like sending data to an external MQTT broker or adding calculated attributes to the Navixy UI.

While you build, look things up in [Technical reference](/docs/iot-logic-api/technical-details.md) (rate limits, error codes, validation rules), [Flow object structure](/docs/iot-logic-api/flow-schema-structure.md) (the JSON shape of a flow), or the interactive [API reference](/docs/iot-logic-api/resources/api-reference.md) with its "Try it out" tool. Once a flow is running, [WebSocket access to Data Stream Analyzer](/docs/iot-logic-api/websocket-access-for-dsa.md) lets you watch the data it actually produces in real time.

### For AI agents and LLMs

* [**OpenAPI specification**](https://raw.githubusercontent.com/Navixy/navixy-public-docs/refs/heads/main/api-docs/iot-logic-api/resources/api-reference/IoT_Logic.json): the raw JSON specification for every endpoint, parameter, and schema. Treat this as the technical source of truth.
* [**Navixy docs via MCP**](/docs/navixy-mcp/using-navixy-documentation-with-ai.md): connect to query this documentation interactively instead of parsing static pages.
* [**AI flow generation guide**](/docs/iot-logic-api/navixy-iot-guide/ai-flow-generation-guide.md): authoritative rules and canonical examples for generating IoT Logic flow JSON.

### Underlying technologies

Both paths eventually touch the protocols IoT Logic is built on: [Navixy Generic Protocol](/docs/iot-logic-api/technologies/navixy-generic-protocol.md), the message format flows use, and [Navixy IoT Logic Expression Language](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md), the syntax for calculated attributes and conditions.

## Key concepts

Navixy IoT Logic operates based on two fundamental components that work together to process device data:

### Flows

A **Flow** is the foundation for all data logic in the product. It defines how data moves through stages of reception, enrichment, and transmission. Each flow consists of connected nodes that determine what happens to the data at each processing stage.

Key characteristics of flows:

* Flows can be enabled or disabled to control data processing
* Every flow requires at least one data source and one output endpoint
* A device can belong to multiple flows at the same time. Flows that include the same device all process its data simultaneously, results merge rather than one flow excluding another. See [Connector configuration](/docs/iot-logic-api/technical-details/nodes.md#connector-configuration) for a case where this matters: two flows pushing the same attribute name to a shared device can silently overwrite each other
* Flows process data in real-time as it arrives from devices

### Nodes

**Nodes** are the functional elements of a **flow**, with each node handling a specific stage of the data lifecycle. Common node types include:

* [Data Source node](/docs/iot-logic-api/technical-details/nodes.md#data-source-node-data_source): selects which devices send data into the flow, and can merge data from an external system into an existing device's stream through its connector fields
* [Initiate Attribute node](/docs/iot-logic-api/technical-details/nodes.md#initiate-attribute-node-initiate_attributes): transforms and enriches data using [Navixy IoT Logic Expression Language](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md)
* [Logic node](/docs/iot-logic-api/technical-details/nodes.md#logic-node-logic): routes data based on conditions
* [Webhook node](/docs/iot-logic-api/technical-details/nodes.md#webhook-node-webhook): sends HTTP POST requests to your external endpoint
* [Device action node](/docs/iot-logic-api/technical-details/nodes.md#device-action-node-action): sends commands to devices
* [Output Endpoint node](/docs/iot-logic-api/technical-details/nodes.md#output-endpoint-node-output_endpoint): transmits data using the [Navixy Generic Protocol](/docs/iot-logic-api/technologies/navixy-generic-protocol.md). This node can be configured to use different endpoint types:
  * **Default endpoint**: Pre-configured destination for sending data to the Navixy platform
  * **MQTT endpoint**: Configurable connection for sending data to third-party systems and services

Nodes are connected through transitions (`edges`) that define the path data follows through the flow.

### How data moves through a flow

A single flow can stream data continuously to one destination while also branching conditionally to trigger side effects elsewhere. The diagram below shows both patterns together: a Data Source feeding an MQTT Output Endpoint directly, and the same source, through an Initiate Attribute node, feeding a Logic node that evaluates each message.

<figure><img src="/files/loLrjNA46Q7B87Ou8SwC" alt="A Data Source node feeding an MQTT Output Endpoint directly, and also feeding an Initiate Attribute node that leads into a Logic node. The Logic node&#x27;s true branch reaches a Device action node, a Webhook node, and a Default Output Endpoint. Its false branch reaches the same Default Output Endpoint."><figcaption><p>A Logic node's true and false branches can each fan out to multiple destinations at once, so one condition can trigger a device command, notify an external system through a webhook, and keep streaming to Navixy, all from a single evaluation.</p></figcaption></figure>

Because the Logic node evaluates every message independently, each branch can run several destinations in parallel instead of following one fixed path. Terminal nodes like Action and Webhook always run alongside an Output Endpoint, so triggering a side effect never costs you visibility into the underlying data in [Data Stream Analyzer](/docs/iot-logic-api/websocket-access-for-dsa.md).

See [Nodes](/docs/iot-logic-api/technical-details/nodes.md) for the full schema and options for every node type.

## Next steps

* To build a working flow in one request, see [Quick start: create your first flow](/docs/iot-logic-api/navixy-iot-guide/quick-start-create-your-first-flow.md).
* To send processed data to your own MQTT broker, see [Sending device data to an external system](/docs/iot-logic-api/navixy-iot-guide/scenario1.md).
* To look up the fields of a specific node type, see [Nodes](/docs/iot-logic-api/technical-details/nodes.md).
* To understand a formula error, see [Formula error reference](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language/formula-errors.md).

For questions and support, contact <support@navixy.com>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/iot-logic-api/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
