APIHub
Back to Explore

Adafruit IO REST API

The Adafruit IO REST API gives programmatic access to a user's IoT workspace, enabling creation, retrieval, update, and deletion of feeds and their data, organization of feeds into groups, and construction of dashboards with blocks and triggers. It also provides endpoints for managing user tokens, activity logs, rate‑limit information, and ACL permissions.

IoT
apiKeyHeader
HTTPS
CORS: Unknown
Description enriched
Visit official documentation

Latency

1766ms p95

Uptime

100.0% 30d

Playground

Verified

live

Endpoints

REST · JSON
GET

/user

Get information about the current user

POST

/webhooks/feed/:token

Send data to a feed via webhook URL.

POST

/webhooks/feed/:token/raw

Send arbitrary data to a feed via webhook URL.

DELETE

/{username}/activities

All activities for current user

  • username (path, required) — a valid username string
GET

/{username}/activities

All activities for current user

  • username (path, required) — a valid username string
  • start_time (query) — Start time for filtering, returns records created after given time.
  • end_time (query) — End time for filtering, returns records created before give time.
  • limit (query, limit) — Limit the number of records returned.
GET

/{username}/activities/{type}

Get activities by type for current user

  • username (path, required) — a valid username string
  • type (path, required)
  • start_time (query) — Start time for filtering, returns records created after given time.
  • end_time (query) — End time for filtering, returns records created before give time.
  • limit (query, limit) — Limit the number of records returned.
GET

/{username}/dashboards

All dashboards for current user

  • username (path, required) — a valid username string
POST

/{username}/dashboards

Create a new Dashboard

  • username (path, required) — a valid username string
GET

/{username}/dashboards/{dashboard_id}/blocks

All blocks for current user

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
POST

/{username}/dashboards/{dashboard_id}/blocks

Create a new Block

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
DELETE

/{username}/dashboards/{dashboard_id}/blocks/{id}

Delete an existing Block

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
  • id (path, required)
GET

/{username}/dashboards/{dashboard_id}/blocks/{id}

Returns Block based on ID

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
  • id (path, required)
PATCH

/{username}/dashboards/{dashboard_id}/blocks/{id}

Update properties of an existing Block

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
  • id (path, required)
PUT

/{username}/dashboards/{dashboard_id}/blocks/{id}

Replace an existing Block

  • username (path, required) — a valid username string
  • dashboard_id (path, required)
  • id (path, required)
DELETE

/{username}/dashboards/{id}

Delete an existing Dashboard

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/dashboards/{id}

Returns Dashboard based on ID

  • username (path, required) — a valid username string
  • id (path, required)
PATCH

/{username}/dashboards/{id}

Update properties of an existing Dashboard

  • username (path, required) — a valid username string
  • id (path, required)
PUT

/{username}/dashboards/{id}

Replace an existing Dashboard

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/feeds

All feeds for current user

  • username (path, required) — a valid username string
POST

/{username}/feeds

Create a new Feed

  • username (path, required) — a valid username string
  • group_key (query)
DELETE

/{username}/feeds/{feed_key}

Delete an existing Feed

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
GET

/{username}/feeds/{feed_key}

Get feed by feed key

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
PATCH

/{username}/feeds/{feed_key}

Update properties of an existing Feed

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
PUT

/{username}/feeds/{feed_key}

Replace an existing Feed

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
GET

/{username}/feeds/{feed_key}/data

Get all data for the given feed

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • start_time (query) — Start time for filtering, returns records created after given time.
  • end_time (query) — End time for filtering, returns records created before give time.
  • limit (query, limit) — Limit the number of records returned.
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
POST

/{username}/feeds/{feed_key}/data

Create new Data

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
POST

/{username}/feeds/{feed_key}/data/batch

Create multiple new Data records

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
PUT

/{username}/groups/{group_key}

Replace an existing Group

  • username (path, required) — a valid username string
  • group_key (path, required)
GET

/{username}/feeds/{feed_key}/data/chart

Chart data for current feed

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • start_time (query) — Start time for filtering, returns records created after given time.
  • end_time (query) — End time for filtering, returns records created before give time.
  • resolution (query) — A resolution size in minutes. By giving a resolution value you will get back grouped data points aggregated over resolution-sized intervals. NOTE: time span is preferred over resolution, so if you request a span of time that includes more than max limit points you may get a larger resolution than you requested. Valid resolutions are 1, 5, 10, 30, 60, and 120.
  • hours (query) — The number of hours the chart should cover.
GET

/{username}/feeds/{feed_key}/data/first

First Data in Queue

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
GET

/{username}/feeds/{feed_key}/data/last

Last Data in Queue

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
GET

/{username}/feeds/{feed_key}/data/next

Next Data in Queue

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
GET

/{username}/feeds/{feed_key}/data/previous

Previous Data in Queue

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
GET

/{username}/feeds/{feed_key}/data/retain

Last Data in MQTT CSV format

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
DELETE

/{username}/feeds/{feed_key}/data/{id}

Delete existing Data

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • id (path, required)
GET

/{username}/feeds/{feed_key}/data/{id}

Returns data based on feed key

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • id (path, required)
  • include (query) — List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and `created_at`.
PATCH

/{username}/feeds/{feed_key}/data/{id}

Update properties of existing Data

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • id (path, required)
PUT

/{username}/feeds/{feed_key}/data/{id}

Replace existing Data

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
  • id (path, required)
GET

/{username}/feeds/{feed_key}/details

Get detailed feed by feed key

  • username (path, required) — a valid username string
  • feed_key (path, required) — a valid feed key
GET

/{username}/groups

All groups for current user

  • username (path, required) — a valid username string
POST

/{username}/groups

Create a new Group

  • username (path, required) — a valid username string
DELETE

/{username}/groups/{group_key}

Delete an existing Group

  • username (path, required) — a valid username string
  • group_key (path, required)
GET

/{username}/groups/{group_key}

Returns Group based on ID

  • username (path, required) — a valid username string
  • group_key (path, required)
PATCH

/{username}/groups/{group_key}

Update properties of an existing Group

  • username (path, required) — a valid username string
  • group_key (path, required)
POST

/{username}/groups/{group_key}/add

Add an existing Feed to a Group

  • group_key (path, required)
  • username (path, required) — a valid username string
  • feed_key (query)
POST

/{username}/groups/{group_key}/data

Create new data for multiple feeds in a group

  • username (path, required) — a valid username string
  • group_key (path, required)
GET

/{username}/groups/{group_key}/feeds

All feeds for current user in a given group

  • group_key (path, required)
  • username (path, required) — a valid username string
POST

/{username}/groups/{group_key}/feeds

Create a new Feed in a Group

  • username (path, required) — a valid username string
  • group_key (path, required)
GET

/{username}/groups/{group_key}/feeds/{feed_key}/data

All data for current feed in a specific group

  • username (path, required) — a valid username string
  • group_key (path, required)
  • feed_key (path, required) — a valid feed key
  • start_time (query) — Start time for filtering data. Returns data created after given time.
  • end_time (query) — End time for filtering data. Returns data created before give time.
  • limit (query, limit) — Limit the number of records returned.
POST

/{username}/groups/{group_key}/feeds/{feed_key}/data

Create new Data in a feed belonging to a particular group

  • username (path, required) — a valid username string
  • group_key (path, required)
  • feed_key (path, required) — a valid feed key
POST

/{username}/groups/{group_key}/feeds/{feed_key}/data/batch

Create multiple new Data records in a feed belonging to a particular group

  • username (path, required) — a valid username string
  • group_key (path, required)
  • feed_key (path, required) — a valid feed key
POST

/{username}/groups/{group_key}/remove

Remove a Feed from a Group

  • group_key (path, required)
  • username (path, required) — a valid username string
  • feed_key (query)
GET

/{username}/throttle

Get the user's data rate limit and current activity level.

  • username (path, required) — a valid username string
GET

/{username}/tokens

All tokens for current user

  • username (path, required) — a valid username string
POST

/{username}/tokens

Create a new Token

  • username (path, required) — a valid username string
DELETE

/{username}/tokens/{id}

Delete an existing Token

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/tokens/{id}

Returns Token based on ID

  • username (path, required) — a valid username string
  • id (path, required)
PATCH

/{username}/tokens/{id}

Update properties of an existing Token

  • username (path, required) — a valid username string
  • id (path, required)
PUT

/{username}/tokens/{id}

Replace an existing Token

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/triggers

All triggers for current user

  • username (path, required) — a valid username string
POST

/{username}/triggers

Create a new Trigger

  • username (path, required) — a valid username string
DELETE

/{username}/triggers/{id}

Delete an existing Trigger

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/triggers/{id}

Returns Trigger based on ID

  • username (path, required) — a valid username string
  • id (path, required)
PATCH

/{username}/triggers/{id}

Update properties of an existing Trigger

  • username (path, required) — a valid username string
  • id (path, required)
PUT

/{username}/triggers/{id}

Replace an existing Trigger

  • username (path, required) — a valid username string
  • id (path, required)
GET

/{username}/{type}/{type_id}/acl

All permissions for current user and type

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
POST

/{username}/{type}/{type_id}/acl

Create a new Permission

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
DELETE

/{username}/{type}/{type_id}/acl/{id}

Delete an existing Permission

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
  • id (path, required)
GET

/{username}/{type}/{type_id}/acl/{id}

Returns Permission based on ID

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
  • id (path, required)
PATCH

/{username}/{type}/{type_id}/acl/{id}

Update properties of an existing Permission

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
  • id (path, required)
PUT

/{username}/{type}/{type_id}/acl/{id}

Replace an existing Permission

  • username (path, required) — a valid username string
  • type (path, required)
  • type_id (path, required)
  • id (path, required)

71 endpoints auto-detected

Authentication

This API uses an API key, passed in the "X-AIO-Key" header. No OAuth required.

curl -X GET \
  "https://io.adafruit.com/api/v2/user" \
  -H "X-AIO-Key: YOUR_API_KEY"

io.adafruit.com · HTTPS only