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.
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