# Ubidots Developer Guides

## Ubidots Developer Guides

- [Welcome to our dev guides](https://dev.ubidots.com/readme.md)
- [What is Ubidots?](https://dev.ubidots.com/getting-started/sending-your-first-data-points.md)
- [Devices, variables, and Dots](https://dev.ubidots.com/getting-started/devices-variables-and-dots.md)
- [Technical FAQs](https://dev.ubidots.com/getting-started/technical-faqs.md)
- [Business FAQs](https://dev.ubidots.com/getting-started/business-faqs.md)
- [HTML Canvas](https://dev.ubidots.com/dashboards-and-widgets/html-canvas.md): Build your own custom widgets with the HTML Canvas
- [Third-party packages](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/3rd-party-packages.md)
- [Preload dashboard data](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/preload-dashboard-data.md): This feature makes the dashboard data available for the user at load time.
- [Built-in library](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library.md)
- [Properties](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library/properties.md): This page describes the HTML Canvas class properties.
- [Methods](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library/methods.md): This page describes the available methods within the HTML Canvas class
- [Listening events](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library/listening-events.md): Access dashboard settings via event handlers
- [API](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/built-in-library/api.md): Access the Ubidots JavaScript SDK from HTML Canvas
- [Examples](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples.md)
- [Basics](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/basics.md)
- [Create an LCD screen with the HTML Canvas](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/create-an-lcd-screen-with-the-html-canvas.md)
- [Interacting with dashboard data](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/interacting-with-dashboard-data.md)
- [Change the header's custom style](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/change-headers-custom-style.md): This example shows how to dynamically change a widget's header style when a user clicks a button in the HTML Canvas widget.
- [Adding real time using Socket.IO](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/adding-real-time-using-socket.io.md): Using the socket.IO library, create a simple real-time widget with Ubidots and the HTML Canvas.
- [Delete variable data from a device](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/delete-variable-data-from-a-device.md): Learn how to use an HTML Canvas widget to delete variable data from a device within a selected time window in Dynamic Dashboards.
- [Delete variable data from Device Groups or Types](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/delete-variable-data-from-groups-or-types-of-devices.md): Use this example to build an HTML Canvas widget that lets you select a variable label, choose a time window, and delete the matching data.
- [Navigation through dashboard](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/navigation-through-dashboard.md): This example uses the HTML Canvas "Preload dashboard data" feature to implement dashboard navigation.
- [Using a React library](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/examples/using-a-react-library.md): This example shows how to import and use Material UI.
- [Code editor](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/code-editor.md)
- [HTML tab](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/code-editor/html-tab.md)
- [CSS tab](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/code-editor/css-tab.md)
- [JavaScript tab](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/code-editor/javascript-tab.md)
- [Content Security Policy (CSP) restrictions](https://dev.ubidots.com/dashboards-and-widgets/html-canvas/content-security-policy-csp-restrictions.md): Security guidelines and coding restrictions enforced by the Content Security Policy (CSP) when developing custom code in HTML Canvas widgets and Ubidots Pages.
- [Custom UI](https://dev.ubidots.com/dashboards-and-widgets/custom-ui.md): This article covers the Custom UI widget, its features, and how to use it.
- [Paragraph](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/paragraph.md): Displays headings or paragraphs depending on the \`type\` property.
- [Input combo](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo.md): Displays an input field based on the \`type\` property.
- [Text](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/text.md): Use text inputs within Custom UI widget
- [Numeric](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/numeric.md): Use numeric input fields within the Custom UI widget
- [Numeric with buttons](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/numeric-with-buttons.md): Use numeric input fields with buttons within the Custom UI widget
- [Date](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/date.md): Use date input fields within the Custom UI widget
- [Time](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/time.md): Use time input fields within the Custom UI widget
- [Toggle](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/toggle.md): Use toggle buttons in the Custom UI widget
- [Dropdown](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/dropdown.md): Use dropdown lists in the Custom UI widget
- [Multiple selection dropdown](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/input-combo/multiple-selection-dropdown.md): Use multiple selection dropdown lists in the Custom UI widget
- [Button](https://dev.ubidots.com/dashboards-and-widgets/custom-ui/button.md): This element displays a button whose color reflects its status based on its type.
- [Custom style](https://dev.ubidots.com/dashboards-and-widgets/custom-style.md): Customize your App beyond the branding level with the Custom Style editor for Dashboards and Widgets
- [Dashboards](https://dev.ubidots.com/dashboards-and-widgets/custom-style/dashboards.md)
- [Widgets](https://dev.ubidots.com/dashboards-and-widgets/custom-style/widgets.md)
- [Line Chart](https://dev.ubidots.com/dashboards-and-widgets/line-chart.md): Visualize time series data in Ubidots with the Line Chart widget
- [Gauge](https://dev.ubidots.com/dashboards-and-widgets/gauge.md): Visualize single-value data in Ubidots in the form of Gauge charts
- [Getting started](https://dev.ubidots.com/ubifunctions/getting-started.md)
- [Creating an UbiFunction](https://dev.ubidots.com/ubifunctions/getting-started/creating-an-ubifunction.md): Step-by-step guide to creating a UbiFunction
- [Coding an UbiFunction](https://dev.ubidots.com/ubifunctions/getting-started/coding-an-ubifunction.md)
- [Testing an UbiFunction](https://dev.ubidots.com/ubifunctions/getting-started/testing-an-ubifunction.md): How to test-run your UbiFunction
- [Authentication](https://dev.ubidots.com/ubifunctions/getting-started/authentication.md)
- [Execution Time](https://dev.ubidots.com/ubifunctions/getting-started/execution-time.md)
- [Logs](https://dev.ubidots.com/ubifunctions/getting-started/logs.md)
- [Runtimes](https://dev.ubidots.com/ubifunctions/runtimes.md)
- [Python](https://dev.ubidots.com/ubifunctions/runtimes/python.md)
- [NodeJS](https://dev.ubidots.com/ubifunctions/runtimes/nodejs.md)
- [Custom runtimes](https://dev.ubidots.com/ubifunctions/runtimes/custom-runtimes.md)
- [Invocation](https://dev.ubidots.com/ubifunctions/invocation.md)
- [Time-based trigger](https://dev.ubidots.com/ubifunctions/invocation/time-based-trigger.md)
- [HTTPS](https://dev.ubidots.com/ubifunctions/invocation/https.md)
- [MQTT publish](https://dev.ubidots.com/ubifunctions/invocation/mqtt.md)
- [CoAP](https://dev.ubidots.com/ubifunctions/invocation/coap.md)
- [Ubidots event](https://dev.ubidots.com/ubifunctions/invocation/ubidots-event.md)
- [Advanced](https://dev.ubidots.com/ubifunctions/advanced.md)
- [Account token](https://dev.ubidots.com/ubifunctions/advanced/account-token.md)
- [Execution time](https://dev.ubidots.com/ubifunctions/advanced/execution-time.md)
- [Raw functions](https://dev.ubidots.com/ubifunctions/advanced/raw-functions.md)
- [CORS policy](https://dev.ubidots.com/ubifunctions/advanced/cors-policy.md)
- [Async execution](https://dev.ubidots.com/ubifunctions/advanced/async-execution.md)
- [Examples](https://dev.ubidots.com/ubifunctions/examples.md)
- [Specs and limits](https://dev.ubidots.com/ubifunctions/specs-and-limits.md)
- [Storage](https://dev.ubidots.com/ubifunctions/storage.md)
- [File storage API](https://dev.ubidots.com/ubifunctions/storage/file-storage-api.md): The Ubidots File Storage API enables account owners to securely upload, retrieve, manage, and delete files within UbiFunctions.
- [Multiple files](https://dev.ubidots.com/ubifunctions/storage/mutiple-files.md)
- [What is a plugin?](https://dev.ubidots.com/plugins/what-is-a-plugin.md)
- [Public vs. private](https://dev.ubidots.com/plugins/public-vs.-private.md)
- [Public plugins](https://dev.ubidots.com/plugins/public-plugins.md)
- [Cron](https://dev.ubidots.com/plugins/public-plugins/cron.md)
- [Webhook](https://dev.ubidots.com/plugins/public-plugins/webhook.md)
- [Widget](https://dev.ubidots.com/plugins/public-plugins/widget.md)
- [Private plugins](https://dev.ubidots.com/plugins/private-plugins.md)
- [Cron](https://dev.ubidots.com/plugins/private-plugins/cron.md)
- [Webhook](https://dev.ubidots.com/plugins/private-plugins/webhook.md)
- [Widget](https://dev.ubidots.com/plugins/private-plugins/widget.md)
- [Device](https://dev.ubidots.com/plugins/private-plugins/device.md)
- [Plugins development](https://dev.ubidots.com/plugins/plugins-development.md)
- [Getting started](https://dev.ubidots.com/plugins/plugins-development/getting-started.md): Step-by-step walkthrough for building your first widget plugin using the Highcharts library.
- [Cron](https://dev.ubidots.com/plugins/plugins-development/cron.md): Learn the specifics of developing a Cron plugin.
- [Webhook](https://dev.ubidots.com/plugins/plugins-development/webhook.md): Learn the specifics of developing a webhook plugin.
- [Widget](https://dev.ubidots.com/plugins/plugins-development/widget.md): Learn the specifics of developing a widget plugin.
- [Device](https://dev.ubidots.com/plugins/plugins-development/device.md): Learn the specifics of developing a device plugin.
- [view.xml](https://dev.ubidots.com/plugins/plugins-development/view.xml.md): This page lists all of the available tags within the view.xml file and how to access them from within the plugin
- [view\_widget.xml](https://dev.ubidots.com/plugins/plugins-development/view_widget.xml.md): This page lists all of the available tags within the view\_widget.xml file and how to access them from within the widget
- [Plugins deployment](https://dev.ubidots.com/plugins/plugins-deployment.md)
- [Cron and webhook](https://dev.ubidots.com/plugins/plugins-deployment/cron-and-webhook.md): This page depicts the process of deploying Cron and Webhook plugins
- [Widget](https://dev.ubidots.com/plugins/plugins-deployment/widget.md)
- [Device](https://dev.ubidots.com/plugins/plugins-deployment/device.md)
- [Using the plugins](https://dev.ubidots.com/plugins/using-the-plugins.md): This section covers the use of plugins once they are deployed
- [Cron and webhook](https://dev.ubidots.com/plugins/using-the-plugins/cron-and-webhook.md): This page shows the process of using a Cron or Webhook plugin.
- [Widget](https://dev.ubidots.com/plugins/using-the-plugins/widget.md): This page depicts the process of using a Widget plugin.
- [Device](https://dev.ubidots.com/plugins/using-the-plugins/device.md)
- [Getting started](https://dev.ubidots.com/synthetic-variables/getting-started.md)
- [Creating synthetic variables](https://dev.ubidots.com/synthetic-variables/getting-started/creating-synthetic-variables.md)
- [Synthetic variables' editor](https://dev.ubidots.com/synthetic-variables/getting-started/synthetic-variables-editor.md)
- [Expressions](https://dev.ubidots.com/synthetic-variables/expressions.md)
- [Mathematical](https://dev.ubidots.com/synthetic-variables/expressions/mathematical.md)
- [Date range](https://dev.ubidots.com/synthetic-variables/expressions/date-range.md): Ubidots lets you build new variables from time-series data over a date range. For example, you can calculate the mean, sum, or median per hour using a synthetic variable based on your sensor inputs.
- [Rolling](https://dev.ubidots.com/synthetic-variables/expressions/rolling.md): Compute a rolling value over a time window or number of values using mean, sum, min, max, or count.
- [Special functions](https://dev.ubidots.com/synthetic-variables/expressions/special-functions.md): Use functions to work with time series, fill gaps in missing data, write conditional statements, compute cumulative sums, and shift values in a series.
- [Specs and limits](https://dev.ubidots.com/synthetic-variables/specs-and-limits.md): Synthetic variables have the following limits for performance and the coding environment.
- [Examples](https://dev.ubidots.com/synthetic-variables/examples.md): Here are some examples of how to use synthetic variables and its functions.
- [Mathematical](https://dev.ubidots.com/synthetic-variables/examples/mathematical.md)
- [Date range](https://dev.ubidots.com/synthetic-variables/examples/date-range.md)
- [Rolling](https://dev.ubidots.com/synthetic-variables/examples/rolling.md)
- [Special functions](https://dev.ubidots.com/synthetic-variables/examples/special-functions.md)
- [Javascript SDK](https://dev.ubidots.com/sdks/javascript.md): Table of contents
- [Overview](https://dev.ubidots.com/sdks/javascript/overview.md)
- [Getting started](https://dev.ubidots.com/sdks/javascript/getting-started.md)
- [Ubidots class](https://dev.ubidots.com/sdks/javascript/ubidots-class.md): Ubidots JavaScript library's main class.
- [Get methods](https://dev.ubidots.com/sdks/javascript/ubidots-class/get-methods.md)
- [Filter methods](https://dev.ubidots.com/sdks/javascript/ubidots-class/filter-methods.md): Use Ubidots field filters.
- [Ubidots objects](https://dev.ubidots.com/sdks/javascript/ubidots-class/ubidots-objects.md): The following are relevant types within the library.
- [Entity object](https://dev.ubidots.com/sdks/javascript/ubidots-class/ubidots-objects/entity-object.md)
- [Paginator](https://dev.ubidots.com/sdks/javascript/ubidots-class/ubidots-objects/paginator.md)
- [Examples](https://dev.ubidots.com/sdks/javascript/examples.md): How to use UJL
- [CLI](https://dev.ubidots.com/sdks/cli.md): The Ubidots CLI allows you to manage devices, variables, cloud functions, and pages from the terminal for faster automation and testing
- [Overview](https://dev.ubidots.com/sdks/cli/overview.md): Learn how to interact with Ubidots from your local machine using the Ubidots CLI.
- [Installing](https://dev.ubidots.com/sdks/cli/installing.md): Install the Ubidots CLI on your local machine.
- [Configuration](https://dev.ubidots.com/sdks/cli/configuration.md): Configure the Ubidots CLI to connect with your account.
- [Devices](https://dev.ubidots.com/sdks/cli/devices.md): Create, read, update, and delete devices using the Ubidots CLI.
- [Variables](https://dev.ubidots.com/sdks/cli/variables.md): Create, read, update, and delete variables using the Ubidots CLI.
- [UbiFunctions](https://dev.ubidots.com/sdks/cli/ubifunctions.md): Create, manage, and locally develop UbiFunctions using the Ubidots CLI.
- [Pages](https://dev.ubidots.com/sdks/cli/pages.md): Create, manage, and locally develop Pages using the Ubidots CLI.
- [Dashboard runtime library](https://dev.ubidots.com/sdks/dashboard-runtime-library.md)
- [Pages](https://dev.ubidots.com/apps/pages.md): Learn about Ubidots custom dashboard pages
- [Getting started](https://dev.ubidots.com/apps/pages/getting-started.md)
- [Development](https://dev.ubidots.com/apps/pages/development.md)
- [API](https://dev.ubidots.com/apps/pages/api.md)
- [Page creation](https://dev.ubidots.com/apps/pages/api/page-creation.md): Step-by-step guide on how to create a Page
- [Publish](https://dev.ubidots.com/apps/pages/api/publish.md): Publish your code as a ZIP file
- [Custom sidebar menu](https://dev.ubidots.com/apps/custom-sidebar.md): Customize the sidebar elements to create user-aware navigations.
- [XML v2.0](https://dev.ubidots.com/apps/custom-sidebar/xml-v2.0.md): Create a sidebar navigation that's more elaborate and dynamic.
- [XML v1.0 (deprecated)](https://dev.ubidots.com/apps/custom-sidebar/xml-v1.0-deprecated.md): Create a custom sidebar navigation panel.
- [Styling with CSS](https://dev.ubidots.com/apps/styling-with-css.md): Use CSS stylesheets to customize your App's identity even further.
- [Application CSS](https://dev.ubidots.com/apps/styling-with-css/application-css.md): CSS classes to target application components.
- [Core/Entity classes](https://dev.ubidots.com/apps/styling-with-css/application-css/core-entity-classes.md): Application and entity specific classes.
- [Table](https://dev.ubidots.com/apps/styling-with-css/application-css/table.md): Classes for the Table component.
- [Sidebar](https://dev.ubidots.com/apps/styling-with-css/application-css/sidebar.md): Classes for the Sidebar component.
- [Navigation Bar](https://dev.ubidots.com/apps/styling-with-css/application-css/navigation-bar.md): Classes for the NavBar component.
- [Accordion](https://dev.ubidots.com/apps/styling-with-css/application-css/accordion.md): Classes for the Accordeon component.
- [Login page CSS](https://dev.ubidots.com/apps/styling-with-css/login-page-css.md): CSS classes to target login page components.


---

# 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, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://dev.ubidots.com/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
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.
