# Adafruit IO REST API API

> Adafruit IO REST API API on Apizie: 71 endpoints (Get information about the current user, Send data to a feed via webhook URL., Send arbitrary data to a feed via webhook URL., All activities for current user, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/iot:adafruit/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `iot:adafruit`
- Category: IoT
- Status: byok
- Source: https://adafruit.com
- Page: https://zieapi.vercel.app/api/iot/adafruit
- OpenAPI: https://zieapi.vercel.app/api/iot/adafruit/openapi.json

### The Internet of Things for Everyone 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…

## Endpoints

### Get information about the current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/current-user` (byok)

### Send data to a feed via webhook URL.
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-webhook-feed-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Send arbitrary data to a feed via webhook URL.
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-raw-webhook-feed-data` (byok)

### All activities for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-activities` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| start_time | string | no | Start time for filtering, returns records created after given time. |
| end_time | string | no | End time for filtering, returns records created before give time. |
| limit | integer | no | Limit the number of records returned. |

### All activities for current user
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-activities` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Get activities by type for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-activity` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| start_time | string | no | Start time for filtering, returns records created after given time. |
| end_time | string | no | End time for filtering, returns records created before give time. |
| limit | integer | no | Limit the number of records returned. |

### All dashboards for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-dashboards` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Create a new Dashboard
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-dashboard` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| body | object | yes | JSON request body |

### All blocks for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-blocks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |

### Create a new Block
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |
| body | object | yes | JSON request body |

### Returns Block based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |
| id | string | yes |  |

### Replace an existing Block
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Block
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Block
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| dashboard_id | string | yes |  |
| id | string | yes |  |

### Returns Dashboard based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-dashboard` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### Replace an existing Dashboard
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-dashboard` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Dashboard
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-dashboard` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Dashboard
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-dashboard` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### All feeds for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-feeds` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Create a new Feed
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | no |  |
| body | object | yes | JSON request body |

### Get feed by feed key
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |

### Replace an existing Feed
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Update properties of an existing Feed
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Delete an existing Feed
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |

### Get all data for the given feed
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| start_time | string | no | Start time for filtering, returns records created after given time. |
| end_time | string | no | End time for filtering, returns records created before give time. |
| limit | integer | no | Limit the number of records returned. |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Create new Data
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Create multiple new Data records
`POST https://zieapi.vercel.app/v1/iot:adafruit/batch-create-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Chart data for current feed
`GET https://zieapi.vercel.app/v1/iot:adafruit/chart-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| start_time | string | no | Start time for filtering, returns records created after given time. |
| end_time | string | no | End time for filtering, returns records created before give time. |
| resolution | integer | no | A resolution size in minutes. By giving a resolution value you will get back grouped data points aggregated over resolution-sized… |
| hours | integer | no | The number of hours the chart should cover. |

### First Data in Queue
`GET https://zieapi.vercel.app/v1/iot:adafruit/first-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Last Data in Queue
`GET https://zieapi.vercel.app/v1/iot:adafruit/last-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Next Data in Queue
`GET https://zieapi.vercel.app/v1/iot:adafruit/next-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Previous Data in Queue
`GET https://zieapi.vercel.app/v1/iot:adafruit/previous-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Last Data in MQTT CSV format
`GET https://zieapi.vercel.app/v1/iot:adafruit/retain-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |

### Returns data based on feed key
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| id | string | yes |  |
| include | string | no | List of Data record fields to include in response as comma separated list. Acceptable values are: `value`, `lat`, `lon`, `ele`, `id`, and… |

### Replace existing Data
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of existing Data
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete existing Data
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |
| id | string | yes |  |

### Get detailed feed by feed key
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-feed-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| feed_key | string | yes | a valid feed key |

### All groups for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-groups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Create a new Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| body | object | yes | JSON request body |

### Returns Group based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |

### Replace an existing Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |

### Add an existing Feed to a Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/add-feed-to-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| group_key | string | yes |  |
| username | string | yes | a valid username string |
| feed_key | string | no |  |

### Create new data for multiple feeds in a group
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-group-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| body | object | yes | JSON request body |

### All feeds for current user in a given group
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-group-feeds` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| group_key | string | yes |  |
| username | string | yes | a valid username string |

### Create a new Feed in a Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-group-feed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| body | object | yes | JSON request body |

### All data for current feed in a specific group
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-group-feed-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| feed_key | string | yes | a valid feed key |
| start_time | string | no | Start time for filtering data. Returns data created after given time. |
| end_time | string | no | End time for filtering data. Returns data created before give time. |
| limit | integer | no | Limit the number of records returned. |

### Create new Data in a feed belonging to a particular group
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-group-feed-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Create multiple new Data records in a feed belonging to a particular group
`POST https://zieapi.vercel.app/v1/iot:adafruit/batch-create-group-feed-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| group_key | string | yes |  |
| feed_key | string | yes | a valid feed key |
| body | object | yes | JSON request body |

### Remove a Feed from a Group
`POST https://zieapi.vercel.app/v1/iot:adafruit/remove-feed-from-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| group_key | string | yes |  |
| username | string | yes | a valid username string |
| feed_key | string | no |  |

### Get the user's data rate limit and current activity level.
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-current-user-throttle` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### All tokens for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-tokens` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Create a new Token
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| body | object | yes | JSON request body |

### Returns Token based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### Replace an existing Token
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Token
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Token
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### All triggers for current user
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-triggers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |

### Create a new Trigger
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-trigger` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| body | object | yes | JSON request body |

### Returns Trigger based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-trigger` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### Replace an existing Trigger
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-trigger` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Trigger
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-trigger` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Trigger
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-trigger` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| id | string | yes |  |

### All permissions for current user and type
`GET https://zieapi.vercel.app/v1/iot:adafruit/all-permissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |

### Create a new Permission
`POST https://zieapi.vercel.app/v1/iot:adafruit/create-permission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |
| body | object | yes | JSON request body |

### Returns Permission based on ID
`GET https://zieapi.vercel.app/v1/iot:adafruit/get-permission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |
| id | string | yes |  |

### Replace an existing Permission
`POST https://zieapi.vercel.app/v1/iot:adafruit/replace-permission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Update properties of an existing Permission
`POST https://zieapi.vercel.app/v1/iot:adafruit/update-permission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |
| id | string | yes |  |
| body | object | yes | JSON request body |

### Delete an existing Permission
`POST https://zieapi.vercel.app/v1/iot:adafruit/destroy-permission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | a valid username string |
| type | string | yes |  |
| type_id | string | yes |  |
| id | string | yes |  |

## Example
```
curl "https://zieapi.vercel.app/v1/iot:adafruit/current-user" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Adafruit IO REST API API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/iot:adafruit/current-user with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Adafruit IO REST API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Adafruit IO REST API itself also needs your own key from adafruit.com.

### Can AI agents use the Adafruit IO REST API API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key iot:adafruit.

### What is the status of the Adafruit IO REST API API?
Needs your own provider key (bring your own key)
