@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Adafruit IO REST API
@base https://io.adafruit.com/api/v2
@version 2.0.0
@auth ApiKey X-AIO-Key in header | ApiKey X-AIO-Key in query | ApiKey X-AIO-Signature in header
@common_fields {username: any}
@endpoints 71
@hint download_for_search
@toc user(1), {username}(68), webhooks(2)

@group user
@endpoint GET /user
@returns(200)
@errors {401, 403, 404, 500}

@endgroup

@group {username}
@endpoint GET /{username}/throttle
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/activities
@optional {start_time: any, end_time: any, limit: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/activities
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/activities/{type}
@required {type: any}
@optional {start_time: any, end_time: any, limit: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/feeds
@required {feed: map}
@optional {group_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}
@required {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/feeds/{feed_key}
@required {feed_key: any, feed: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/feeds/{feed_key}
@required {feed_key: any, feed: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/feeds/{feed_key}
@required {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/details
@required {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data
@required {feed_key: any}
@optional {start_time: any, end_time: any, limit: any, include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/feeds/{feed_key}/data
@required {feed_key: any, datum: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/chart
@required {feed_key: any}
@optional {start_time: any, end_time: any, resolution: any, hours: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/feeds/{feed_key}/data/batch
@required {feed_key: any, data: [map]}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/previous
@required {feed_key: any}
@optional {include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/next
@required {feed_key: any}
@optional {include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/last
@required {feed_key: any}
@optional {include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/first
@required {feed_key: any}
@optional {include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/retain
@required {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/feeds/{feed_key}/data/{id}
@required {feed_key: any, id: any}
@optional {include: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/feeds/{feed_key}/data/{id}
@required {feed_key: any, id: any, datum: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/feeds/{feed_key}/data/{id}
@required {feed_key: any, id: any, datum: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/feeds/{feed_key}/data/{id}
@required {feed_key: any, id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/groups
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups
@required {group: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/groups/{group_key}
@required {group_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/groups/{group_key}
@required {group_key: any, group: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/groups/{group_key}
@required {group_key: any, group: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/groups/{group_key}
@required {group_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/add
@required {group_key: any}
@optional {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/remove
@required {group_key: any}
@optional {feed_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/groups/{group_key}/feeds
@required {group_key: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/feeds
@required {group_key: any, feed: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/data
@required {group_key: any, group_feed_data: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/groups/{group_key}/feeds/{feed_key}/data
@required {group_key: any, feed_key: any}
@optional {start_time: any, end_time: any, limit: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/feeds/{feed_key}/data
@required {group_key: any, feed_key: any, datum: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/groups/{group_key}/feeds/{feed_key}/data/batch
@required {group_key: any, feed_key: any, data: [map]}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/dashboards
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/dashboards
@required {dashboard: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/dashboards/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/dashboards/{id}
@required {id: any, dashboard: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/dashboards/{id}
@required {id: any, dashboard: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/dashboards/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/dashboards/{dashboard_id}/blocks
@required {dashboard_id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/dashboards/{dashboard_id}/blocks
@required {block: map, dashboard_id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/dashboards/{dashboard_id}/blocks/{id}
@required {dashboard_id: any, id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/dashboards/{dashboard_id}/blocks/{id}
@required {dashboard_id: any, id: any, block: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/dashboards/{dashboard_id}/blocks/{id}
@required {dashboard_id: any, id: any, block: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/dashboards/{dashboard_id}/blocks/{id}
@required {dashboard_id: any, id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/tokens
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/tokens
@required {token: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/tokens/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/tokens/{id}
@required {id: any, token: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/tokens/{id}
@required {id: any, token: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/tokens/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/triggers
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/triggers
@required {trigger: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/triggers/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/triggers/{id}
@required {id: any, trigger: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/triggers/{id}
@required {id: any, trigger: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/triggers/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/{type}/{type_id}/acl
@required {type: any, type_id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /{username}/{type}/{type_id}/acl
@required {type: any, type_id: any, permission: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint GET /{username}/{type}/{type_id}/acl/{id}
@required {type: any, type_id: any, id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /{username}/{type}/{type_id}/acl/{id}
@required {type: any, type_id: any, id: any, permission: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PATCH /{username}/{type}/{type_id}/acl/{id}
@required {type: any, type_id: any, id: any, permission: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /{username}/{type}/{type_id}/acl/{id}
@required {type: any, type_id: any, id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endgroup

@group webhooks
@endpoint POST /webhooks/feed/:token
@required {payload: map}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint POST /webhooks/feed/:token/raw
@returns(200)
@errors {401, 403, 404, 500}

@endgroup

@end
