canonical: https://jentic.com/apis/industrial.api.ubidots.com/ubidots

# Industrial Api Ubidots Ubidots IoT Platform API

Jentic publishes the only available OpenAPI specification for Ubidots IoT Platform API, keeping it validated and agent-ready. Ubidots is an IoT application platform that ingests sensor telemetry from connected hardware and lets developers build dashboards, alerts, and control loops on top of it. The 31-endpoint API covers device provisioning, variable management, time-series data ingestion and queries, organisations, events, and authentication tokens. Telemetry is posted per-device or per-variable, with last-value, raw-series, and aggregate queries available for charting and rule evaluation.

## For AI agents

Provision IoT devices, write and query time-series sensor variables, and manage events and organisations on the Ubidots industrial platform. Supports per-device and per-variable data ingestion.

## Scope

Does not handle device firmware updates, OS-level fleet management, or low-level hardware provisioning - use for IoT telemetry ingestion, variable management, and time-series queries only.

## Capabilities

- Provision and manage IoT devices with labels, descriptions, and custom properties via the /devices endpoints
- Send sensor readings to a device or directly to a named variable with timestamped values
- Retrieve last values, raw time-series data, and aggregated data from any variable
- Create and manage variables (numeric, location, synthetic) attached to devices
- Configure events and triggers on variables to drive alerts and downstream actions
- Manage organisations and the relationships between accounts and device fleets
- Mint and rotate authentication tokens for device-side and server-side credentials

## Use cases

### Industrial Sensor Telemetry Ingestion

Stream readings from PLCs, meters, and edge gateways into Ubidots so they can be visualised and alerted on. POST `/devices/{device_label}/{variable_label}` accepts a value (and optional timestamp and context) per variable; POST `/devices/{device_label}` accepts a JSON payload with multiple variables in one call. Suitable for fleets of thousands of devices with sub-minute granularity.

Example prompt: POST a temperature reading of 72.4 with the current timestamp to `/devices/pump-42/temperature` using the X-Auth-Token header.

### Device Fleet Management

Provision and update a fleet of connected devices programmatically rather than through the Ubidots UI. POST /devices creates a device with a label and properties; PATCH `/devices/{device_label}` updates fields; DELETE `/devices/{device_label}` retires it. Useful for scaling deployments where devices are commissioned via an installer app or factory provisioning step.

Example prompt: Create a new Ubidots device with label 'flowmeter-17', description 'Plant 3 inflow', and properties {site: 'Plant 3'} via POST /devices.

### Time-Series Querying for Dashboards and Reports

Pull historical sensor data out of Ubidots into custom dashboards, BI tools, or anomaly-detection pipelines. GET `/devices/{device_label}/{variable_label}` returns the raw time-series, GET `/devices/{device_label}/{variable_label}/lv` returns the last value for cheap real-time displays. Aggregations are available on the variable endpoints.

Example prompt: Retrieve the last 24 hours of values for variable 'pressure' on device 'pump-42' via GET `/devices/pump-42/pressure` with a start parameter.

### AI Agent for Operational Monitoring

An agent monitors variable values across a fleet, calls `/devices/{device_label}/{variable_label}/lv` to get the latest readings, and triggers a maintenance ticket or control action when thresholds are breached. Through Jentic, the agent searches by intent, loads the schema, and executes - useful for plant operations copilots and remote monitoring assistants.

Example prompt: For each device returned by GET /devices, call GET `/devices/{device_label}/temperature/lv` and flag any reading above 95.0.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/devices` | List all devices in the account |
| POST | `/devices` | Create a new device |
| POST | `/devices/{device_label}` | Send a multi-variable data payload to a device |
| POST | `/devices/{device_label}/{variable_label}` | Send a single value to one variable |
| GET | `/devices/{device_label}/{variable_label}/lv` | Get the last value of a variable |
| GET | `/variables` | List all variables across devices |
| DELETE | `/devices/{device_label}/values` | Delete a device's stored variable values |

## Key resources

- **Devices** — List, create, update, replace, and delete IoT devices and post data to them
- **Variables** — Manage named variables (numeric, location, synthetic) attached to devices
- **Data** — Time-series ingestion, last-value, and raw-series read endpoints per device and variable
- **Events** — Configure thresholds and triggers that fire when variable values change
- **Organizations** — Group accounts and devices for multi-tenant deployments
- **Auth** — Manage API tokens used by devices and servers

## Why Jentic

- **Setup:** Wiring the Ubidots IoT Platform API by hand means passing the X-Auth-Token header on every call and mapping its device and variable paths yourself. Through Jentic you install once, import the Ubidots IoT Platform API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Ubidots puts the device label in the URL path (`/devices/{device_label}/...`), so a rule can pin your agent to one device: it can send readings and read the last value for that device and nothing else. You choose the operations it may call, so deleting values is not included unless you add it.
- **Credential handling:** Your Ubidots X-Auth-Token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a sensor reading' or 'get last value of a variable', and Jentic returns the matching Ubidots operation with its input schema so the agent calls the right endpoint without browsing the platform docs.

## Related APIs

- **Particle API** — Particle is a full IoT stack including hardware modules, device firmware, and a cloud API for telemetry and remote control.
- **balena API** — balena handles container-based fleet management and device OS updates rather than telemetry.

## FAQ

### Why is there no official OpenAPI spec for Ubidots IoT Platform API?

Ubidots does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Ubidots IoT Platform API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Ubidots IoT Platform API use?

The Ubidots IoT Platform API uses an API key in the 'X-Auth-Token' header on every request. Through Jentic, this token is stored encrypted in your Jentic One instance and injected at runtime so agents never see the raw token.

### Can I send data for multiple variables in a single call?

Yes. POST `/devices/{device_label}` accepts a JSON body with multiple variable_label keys and their values in one request, which is more efficient than calling POST `/devices/{device_label}/{variable_label}` per variable when an edge device reports several readings at once.

### What are the rate limits for the Ubidots IoT Platform API?

Rate limits are not encoded in the spec; they vary by plan tier on the Ubidots Industrial platform. Check the Ubidots account dashboard for current per-second and per-day limits, or contact Ubidots support to raise them for high-throughput fleets.

### How do I retrieve the latest reading for a sensor through Jentic?

Search Jentic for 'get last value of a variable' to find GET `/devices/{device_label}/{variable_label}/lv.` Load the schema, supply device_label and variable_label, and execute. Get started with Jentic One, the self-hosted execution layer.

### Can I configure alerts when a value crosses a threshold?

Yes. The Events endpoints let you create triggers on variables - for example, fire when 'temperature' exceeds 95 - and Ubidots will dispatch the configured notification channel when conditions are met.

### Can I limit what my agent is allowed to do with the Ubidots IoT Platform API?

Yes. Because Ubidots carries the device label in the URL path (`/devices/{device_label}/...`), a rule in your self-hosted Jentic One instance can pin your agent to a single device, letting it send readings and read the last value for that device and nothing else. You decide which operations the agent may call, so a destructive call like DELETE `/devices/{device_label}/values` is excluded unless you explicitly allow it. Jentic One is run by you, so your own rules and stored credentials govern exactly which endpoints the agent can reach.
