Want to make your project talk to the Internet? Connect your existing project to the Internet to log, stream, and interact with the data it produces? What about all this Internet-of-Things (IoT) stuff?

Adafruit IO is a platform designed (by us!) to display, respond, and interact with your project's data. We also keep your data private (data feeds are private by default) and secure (we will never sell or give this data away to another company) for you. It's the internet of things - for everyone!

What can Adafruit IO do for me?

Adafruit.io is a cloud service - that just means we run it for you and you don't have to manage it. You can connect to it over the Internet. It's meant primarily for storing and then retrieving data but it can do a lot more than just that!

  • Display your data in real-time, online.
    • and share that data with others!
  • Make your existing electronics project internet-connected: Control motors, read sensor data, and more!
  • Connect projects to web services like Slack, Mastodon, Discord, RSS Feeds, Weather Services
  • Connect your project to other internet-enabled devices
  • Create No-Code electronics projects that connect to the internet.
  • The best part? All of the above is do-able for free with Adafruit IO

No-Code or Code - The Choice is Yours!

Adafruit IO allows you to connect and interact with your projects either by programming or using our no-code "WipperSnapper" firmware.

No-Code with Adafruit IO

With Adafruit IO, you can connect your devices without writing a single line of code using our custom WipperSnapper firmware. Load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add components to your board such as buttons, switches, potentiometers, sensors, and more! Components are dynamically added to hardware, so you can immediately start interacting, logging, and streaming the data your projects produce without writing code.

Code with Adafruit IO

If you prefer to dive in and code your own projects, we have you covered. We have libraries for CircuitPython, Arduino, Python, and more. For the more advanced developers, take a look at our REST API and MQTT API.

Interact with Your Data

Uploading your data to Adafruit IO is just the beginning. Interacting with that data is where the real magic is.

You can set up a device that sends you an email if the temperature drops below a certain level, monitor how much moisture is in your soil, and have Adafruit IO send you an SMS when it needs to be watered, log the air quality outside and get a notification when it is time to close your windows.

This is just the tip of the iceberg. When it comes to all the things you can do with Adafruit IO, the possibilities really are endless!

Power-Up Your Projects

Want to make your project react to an email, display trending tweets, or turn on the front lights when your pizza is on the way? We baked in integrations with Apple WeatherKit, IFTTT, and Zapier to connect your project's sensors to hundreds of web services.  

Why We Built Adafruit IO

Here at Adafruit, we sell all of these amazing components, but we couldn't find a good way to interact with them over the Internet. There are certainly a lot of great services out there for data logging, or communicating with your microcontroller over the web, but these services are either too complicated to get started, or they aren't particularly fun to use. So, we decided to experiment with our own system, and that's Adafruit IO.

Adafruit IO is integrated with your adafruit.com account so you don't need to create yet another online account! You need an Adafruit account to use Adafruit IO because we want to make sure the data you upload is available to only you (unless you decide to publish your data).

I have an Adafruit.com Account already

If you already have an Adafruit account, then you already have access to Adafruit IO. It doesn't matter how you signed up, your account will make all three available.

To access Adafruit IO, simply visit https://io.adafruit.com to start streaming, logging, and interacting with your data.

Create an Adafruit Account (for Adafruit IO)

An Adafruit account makes Adafruit content and services available to you in one place. Your account provides access to the Adafruit shop, the Adafruit Learning System, and Adafruit IO. This means only one account, one username, and one password are necessary to engage with the content and services that Adafruit offers.

If you do not have an Adafruit account, signing up for a new Adafruit account only takes a couple of steps.

Begin by visiting https://accounts.adafruit.com.

Click the Sign Up button under the "Need An Adafruit Account?" title, below the Sign In section.

This will take you to the Sign Up page.

Fill in the requested information, and click the Create Account button.

This takes you to your Adafruit Account home page. From here, you can access all the features of your account.

You can also access the Adafruit content and services right from this page. Along the top of the page, you'll see a series of links beginning with "Shop". To access any of these, simply click the link.

For example, to begin working with Adafruit IO, click the IO link to the right of the rest of the links. This is the same for the other links as well.

That's all there is to creating a new Adafruit account, and navigating to Adafruit IO.

Your Adafruit IO experience is even better with IO+. The 'plus' stands for MORE STUFF! More feeds, dashboards, storage, speed. IO+ unlocks more data, more storage, and more feeds than our free service.

Upgrading your account to IO+ gives you:

  • 60 data points per minute
  • 60 days of data storage
  • Actions every 5 seconds
  • 25 SMS messages per day (UTC) for actions and the Messages Power-Up (USA and Canada)
  • Unlimited dashboards
  • Unlimited WipperSnapper devices
  • Unlimited groups
  • Unlimited feeds

Subscribe to Adafruit IO Plus

Ready to subscribe to Adafruit IO+? Log into your Adafruit account and visit io.adafruit.com/plus.

Then, fill out your payment information, and your Adafruit IO account will be upgraded to IO Plus!


Why should I subscribe to IO Plus? How is it billed?

IO+, or IO Plus, is our enhanced version of IO. For one, uncomplicated price you get unlimited groups, feeds, WipperSnapper devices, and dashboards, a higher data input rate, and longer data storage.

IO+ subscriptions are billed immediately when you subscribe and then monthly or yearly, repeating each month or year on the same day you signed up until you cancel.

Payments and Credit Card Processing

We use Stripe for payment processing and subscription management and are currently able to accept every major credit card including Visa, Master Card, American Express, Discover, JCB, and Diners Club. All charges are denominated in USD (United States dollars) but international customers are welcome!

What if I want to cancel my IO+ Subscription?

It's easy and painless - when you cancel your Adafruit IO+ subscription, your access to IO+ will continue until the end of your current billing cycle. At then end of your subscription period you account will be restored to IO Free account limits. Right now that's 10 feeds, 5 dashboards, 30 days of data storage, and a 30 data points per minute data rate. Data that has already been stored will be preserved, and all extra feeds and dashboards will be archived.

I need a higher rate limit, is this possible?

If 60 data points per minute and 60 days of storage aren't enough, we offer additional account boosts. For only $2 per month, you can add 10 data points per minute and for $5 per month, you can add 30 extra days of storage. Add as many boosts as you need!

I'm having trouble with billing, or payment processing. Can you help?

Absolutely! If you have a question we haven't answered here or on the Adafruit IO forums, or if you have a question about your subscription specifically, you can use the Adafruit Contact page to get in touch with our support team directly.

Is there a way to purchase IO+ for a yearly fee instead of billing monthly?

Sure, we offer a one-year subscription pass in the Adafruit store. 

Can I gift an IO Plus subscription to my friend, coworker, family-member, or a fellow maker?

You can purchase the subscription pass for yourself or as a gift, and send it to a family or friend. The code is redeemable within https://io.adafruit.com once you are signed in to your account. The code is not locked to any specific account until it is redeemed.

Bring your Arduino online with Adafruit IO! Using our open-source client libraries for Arduino, you can connect any Arduino (or Arduino-compatible) board with a WiFi interface to Adafruit IO.

This page provides multiple software library options for connecting an Arduino to Adafruit IO, an overview of our beginner guide for using Arduino with Adafruit IO, and a curated list of projects featuring both Arduino and Adafruit IO.

Arduino Libraries for Adafruit IO

Have an Arduino or Arduino-Compatable board that you want to use with Adafruit IO?

Looking to modify your existing Arduino sketch/code to send data to the internet (or receive data from the internet? 

We offer two Arduino libraries that work with a large amount of Arduino-compatible hardware:

Adafruit IO Arduino Library

The Adafruit IO Arduino Library provides an interface to interact with Adafruit IO, from your Arduino code.

Visit the GitHub repository for the Adafruit IO Arduino Library >>>



Adafruit MQTT Arduino Library

We also have a library to provide Arduino support for accessing Adafruit IO using MQTT, the Adafruit MQTT Library. This is a general-purpose MQTT library for Arduino that's built to use as few resources as possible so that it can work with resource-constrained platforms like the Arduino Uno. Unfortunately, platforms like the Trinket 3.3V or 5V (based on the ATtiny85) have too little program memory to use the library - so stick with a Metro 328p or better!

Visit the GitHub repository for the Adafruit Arduino MQTT Library >>>  

Basic Arduino Projects with Adafruit IO

Starting your journey with Adafruit IO and Arduino? We've got you covered!

Dive into our set of seven comprehensive guides in the Adafruit IO Basics series.

You'll learn all about creating internet-connected electronics projects - from sending button presses to Adafruit IO's cloud, controlling a servo motor, changing the color of an LED strip, temperature and humidity monitoring, and much more!

Start learning Adafruit IO and Arduino with the Adafruit IO: Basics series

Advanced Arduino Projects with Adafruit IO

The Adafruit Learning System is also a great place to find learning guides that answer the age-old maker question of "What do I build next?".

Below is a curated selection of our favorite guides that use Adafruit IO and Arduino:

(Cardboard) Smart Home Security System

Protect against intruders by building a security system for a cardboard smart home using Adafruit IO.

Adafruit IO Environmental Monitor

This guide covers building a small, internet-enabled environmental monitor that can track a range of data such as temperature to UV level to the number of total-volatile-organic-compounds present in the air.

IoT Temperature Logger

If you're looking for a way to precisely monitor and log temperature data to the cloud, follow along!

IoT Power Outlet

Add simple scheduling to your projects with an Adafruit IO schedule action. Turn on or off lamps, fans, solenoids, and other small appliances without the headache of reading and parsing output from real-time (RTC) or obtaining the network time. 

Ready to bring your CircuitPython project online? Quickly connect it to Adafruit IO using the CircuitPython Adafruit IO library! 

Using CircuitPython with Adafruit IO lets you rapidly update your project's code without having to re-compile. You can also store your WiFi and Adafruit IO credentials on your development board.

Adafruit IO CircuitPython Library

Have a CircuitPython project you'd like to connect to Adafruit IO? We've written an Adafruit IO CircuitPython library to provide a simple interface with the Adafruit IO MQTT API or HTTP API.

Adafruit IO CircuitPython Library Installation

You can download all the available libraries on circuitpython.org/libraries in a zip-file bundle for all recent major versions of CircuitPython. These bundles are updated daily, whenever any included library is updated.

Adafruit IO CircuitPython Library Examples

Examples of using the Adafruit IO CircuitPython library with the Adafruit IO HTTP API are located in the GitHub repository's examples/adafruit_io_http folder.

Examples of using the Adafruit IO CircuitPython library with the Adafruit IO MQTT API are located in the GitHub repository's examples/adafruit_io_mqtt folder.

Adafruit IO CircuitPython Library Documentation

API documentation for this library can be found on Read the Docs.

CircuitPython Projects with Adafruit IO

The Adafruit Learning System is a great place to find guides that answer the age-old maker question of "What do I build next?".

Below are a few of our favorite guides that use Adafruit IO with CircuitPython: 

Canary Nightlight

Everyone needs a blue canary in the outlet by the light switch, ready to watch over them. How can you find a little glowing friend for yourself? Well, get the birdhouse in your soul ready! This canary night light is ready to move in and light it up.

WiFi Mailbox Notifier

This guide will show you how to use the Feather ESP32 V2, CircuitPython, WiFi, and Adafruit IO to build a notifier that tells you when your mailbox has been opened. Once everything is set up, and the Feather is installed in your mailbox, you'll receive an email each time the door is opened!

IoT Air Quality Sensor with Adafruit IO

You'll assemble an open-source air quality sensor. Then, you'll program the sensor using CircuitPython to measure air quality data and periodically send measurements to Adafruit IO, our incredible IoT Service. Finally, you'll create a beautiful Adafruit IO dashboard to visualize your sensor data from anywhere in the world.

FunHouse IoT Fume Extractor and Air Quality Sensor

Build a smart DIY fume extractor with an Adafruit FunHouse and CircuitPython. Use CircuitPython libraries and ESP32-S2 to connect to WiFi for logging sensor data to a feed and display it on a dashboard with Adafruit IO. Use the FunHouse's built-in TFT to display bitmap graphics with fan speed and air quality.

Using our open-source client library for Python, you can connect a computer, server, or single-board computer (like the Raspberry Pi) to Adafruit IO. All you need is the latest version of Python to be installed!

Adafruit IO Python Library

The Adafruit IO Python library provides two clients for accessing Adafruit IO (MQTT and HTTP) and lots of examples. It's compatible with any system running CPython3 and also compatible with Single-Board computers like the Raspberry Pi or BeagleBone.

Adafruit IO Python Library Installation

Up-to-date installation instructions for this library are located on the Adafruit_IO_Python's GitHub repository's README.

Adafruit IO Python Library Examples

We provide usage examples within the examples folder of the GitHub repository for the Adafruit IO REST API Client and the Adafruit IO MQTT API Client. If you want to download all the examples to your computer, make sure to clone (or download) the GitHub repository's contents to an easy-to-access location on your computer.

Adafruit IO Python Library Documentation

Documentation for all methods and classes in the Adafruit IO Python library can be found on the ReadTheDocs page for this project

Basic Python Projects with Adafruit IO

Starting your journey with Adafruit IO and Python? We've got you covered! Dive into our set of seven comprehensive guides in the Adafruit IO Basics series.

You'll learn all about creating internet-connected electronics projects - from sending button presses to Adafruit IO's cloud, controlling a servo motor, changing the color of an LED strip, temperature and humidity monitoring, and much more!

Each guide includes wiring, code, and instructions for using a single-board computer (like the Raspberry Pi) with the Adafruit IO Python client library.

Start learning Adafruit IO and Arduino with the Adafruit IO: Basics series

CircuitPython Projects with Adafruit IO

The Adafruit Learning System is a great place to find guides that answer the age-old maker question of "What do I build next?".

Below are a few of our favorite guides that use Adafruit IO and the Adafruit IO Python library: 

Physical Dashboard with Raspberry Pi and Adafruit IO

This project will show you how to use Raspberry Pi to build a physical dashboard that displays any kind of data.  Use beautiful LED displays and automotive dial gauges to build an exciting dashboard that tracks important metrics.  For example, keep tabs on the health of a web service by displaying server health data with dials and bright seven-segment LED displays. 

Adafruit IO Connected Animated GIF Display

Do you love Raspberry Pis, animated GIFs, and the Internet of Things? If so, this project is for you. We will show you how to easily turn your Raspberry Pi into an animated GIF display device that you can update from anywhere!

We also provide an MQTT API to interface your project's code with Adafruit IO's MQTT server. 

Client Libraries for the Adafruit IO MQTT API

To use the MQTT API that Adafruit IO exposes, you'll need a MQTT client library. For Python, Ruby, and Arduino you can use Adafruit's IO libraries as they include support for MQTT. For other languages or platforms look for a MQTT library that ideally supports the MQTT 3.1.1 protocol.

  • Arduino: The Adafruit MQTT library includes examples for connecting your Arduino project to the Adafruit IO MQTT broker.

  • Python: The Adafruit IO Python library includes an MQTT Client.

  • CircuitPython: The Adafruit IO CircuitPython library includes a MQTT Client.

  • Ruby: Adafruit IO Ruby includes an MQTT client.

  • (Unsupported by Adafruit) MicroPython: MicroPython devices can connect to Adafruit IO's MQTT broker using uMQTT

Adafruit IO MQTT Client Documentation

The Adafruit IO HTTP API provides access to your Adafruit IO data from any programming language or hardware environment that can speak HTTP. The easiest way to get started is with an Adafruit Learning Guide and a simple Internet of Things capable device like the Feather Huzzah or a more complicated one like the PyPortal.

Client Libraries for the Adafruit IO HTTP API 

Support for the Adafruit IO HTTP API is provided by the following client libraries:

Adafruit IO HTTP Documentation

My data isn't displaying, is Adafruit IO's {service/MQTT/API} down?

Possibly - you can check IO status on the Adafruit Status page

I have a problem with billing and Adafruit IO+

Visit https://io.adafruit.com/support and click "Contact Adafruit IO Support"

There is an issue with Adafruit IO. Something is broken!

Visit https://io.adafruit.com/support and click "Contact Adafruit IO Support"

There is an issue with WipperSnapper. Something is broken!

First, check if the issue you're having already exists on the GitHub repository for Adafruit IO WipperSnapper by visiting the "Issues" page.

If it does not exist, please file a new bug report on the GitHub repository for Adafruit IO WipperSnapper.

Is my data being sent properly? Am I sending too much data?

There's a monitor page built-into Adafruit IO which provides a live view of incoming data and error messages. Keep this page open while you send data to your Adafruit IO devices to monitor data and errors. 

Can I build my own Client Library for Adafruit IO?

Absolutely - the same API that drives our user interface is available to you. We provide documentation so you can build a library in your favorite language to talk to IO

What about the data that my project generates? Where does it go? What happens to it? Are you going to sell it?

The data your store with IO is yours to manage and control. You can download it all anytime and we will never sell or give it away to another company. We feel strongly enough about this that we put it in our IoT Bill of Rights.

I don't see my question listed.

If you have any questions or issues with Adafruit IO, post up in the Adafruit IO Forums or chat with Adafruit staff and community members in real-time on the adafruit-io channel on the Adafruit Discord server.

This guide was first published on Jun 13, 2018. It was last updated on Dec 04, 2023.