openapi: 3.0.3 info: description: Provides a set of endpoints to manage Devices, Things, Properties and Timeseries title: Arduino IoT Cloud binaries_v2 usage_v1 API version: '2.0' tags: - name: usage_v1 paths: /iot/v1/usage/daily: get: description: Returns the daily message-consumption series for the authenticated user or the organization (when X-Organization is set). One data point per day. operationId: usage_v1#daily parameters: - description: 'Optional: restrict results to this device' in: query name: device_id schema: type: string - description: Start of the range, inclusive (UTC) in: query name: from required: true schema: type: string - description: 'Optional: restrict results to this thing' in: query name: thing_id schema: type: string - description: 'End of the range, inclusive (UTC). Must be >= from. Max range: 400 days.' in: query name: to required: true schema: type: string - in: header name: X-Organization schema: type: string responses: '200': content: application/vnd.arduino.usage.daily+json: schema: $ref: '#/components/schemas/ArduinoUsageDaily' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/ArduinoUsageDaily' description: OK '400': content: application/vnd.arduino.usage.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/vnd.arduino.usage.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/vnd.arduino.usage.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Forbidden '500': content: application/vnd.arduino.usage.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Internal Server Error security: - oauth2: [] summary: daily usage_v1 tags: - usage_v1 /iot/v1/usage/monthly: get: description: Returns the monthly message-consumption series for the authenticated user or the organization (when X-Organization is set). One data point per calendar month (UTC). operationId: usage_v1#monthly parameters: - description: 'Optional: restrict results to this device' in: query name: device_id schema: type: string - description: Start of the range, inclusive. Truncated to the beginning of the month (UTC). in: query name: from required: true schema: type: string - description: 'Optional: restrict results to this thing' in: query name: thing_id schema: type: string - description: 'End of the range, inclusive. Truncated to the end of the month (UTC). Max range: 5 years.' in: query name: to required: true schema: type: string - in: header name: X-Organization schema: type: string responses: '200': content: application/vnd.arduino.usage.monthly+json: schema: $ref: '#/components/schemas/ArduinoUsageMonthly' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/ArduinoUsageMonthly' description: OK '400': content: application/vnd.arduino.usage.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/vnd.arduino.usage.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/vnd.arduino.usage.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Forbidden '500': content: application/vnd.arduino.usage.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Internal Server Error security: - oauth2: [] summary: monthly usage_v1 tags: - usage_v1 /iot/v1/usage/things/daily: get: description: Returns the daily message-consumption series broken down per thing for the authenticated user or the organization (when X-Organization is set). When thing_id is set the response contains a single thing entry. Devices belonging to the same thing are summed together. operationId: usage_v1#things_daily parameters: - description: Start of the range, inclusive (UTC) in: query name: from required: true schema: type: string - description: 'Optional: restrict results to this thing' in: query name: thing_id schema: type: string - description: 'End of the range, inclusive (UTC). Must be >= from. Max range: 400 days.' in: query name: to required: true schema: type: string - in: header name: X-Organization schema: type: string responses: '200': content: application/vnd.arduino.usage.things.daily+json: schema: $ref: '#/components/schemas/ArduinoUsageThingsDaily' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/ArduinoUsageThingsDaily' description: OK '400': content: application/vnd.arduino.usage.things.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/vnd.arduino.usage.things.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/vnd.arduino.usage.things.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Forbidden '500': content: application/vnd.arduino.usage.things.daily+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Internal Server Error security: - oauth2: [] summary: things_daily usage_v1 tags: - usage_v1 /iot/v1/usage/things/monthly: get: description: Returns the monthly message-consumption series broken down per thing for the authenticated user or the organization (when X-Organization is set). When thing_id is set the response contains a single thing entry. Devices belonging to the same thing are summed together. operationId: usage_v1#things_monthly parameters: - description: Start of the range, inclusive. Truncated to the beginning of the month (UTC). in: query name: from required: true schema: type: string - description: 'Optional: restrict results to this thing' in: query name: thing_id schema: type: string - description: 'End of the range, inclusive. Truncated to the end of the month (UTC). Max range: 5 years.' in: query name: to required: true schema: type: string - in: header name: X-Organization schema: type: string responses: '200': content: application/vnd.arduino.usage.things.monthly+json: schema: $ref: '#/components/schemas/ArduinoUsageThingsMonthly' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/ArduinoUsageThingsMonthly' description: OK '400': content: application/vnd.arduino.usage.things.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/vnd.arduino.usage.things.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/vnd.arduino.usage.things.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Forbidden '500': content: application/vnd.arduino.usage.things.monthly+json: schema: $ref: '#/components/schemas/error' application/vnd.goa.error+json: schema: $ref: '#/components/schemas/error' description: Internal Server Error security: - oauth2: [] summary: things_monthly usage_v1 tags: - usage_v1 components: schemas: UsageThingMonthlySeries: description: Monthly series of one thing properties: series: description: One entry per calendar month with a non-zero count (UTC, ascending) items: $ref: '#/components/schemas/UsageMonthlyPoint' type: array thing_id: description: Thing ID format: uuid type: string required: - thing_id - series title: UsageThingMonthlySeries type: object UsageThingDailySeries: description: Daily series of one thing properties: series: description: One entry per calendar day with a non-zero count (UTC, ascending) items: $ref: '#/components/schemas/UsageDailyPoint' type: array thing_id: description: Thing ID format: uuid type: string required: - thing_id - series title: UsageThingDailySeries type: object UsageDailyPoint: properties: count: description: Number of messages sent on that day format: int64 type: integer date: description: Calendar day in ISO-8601 (YYYY-MM-DD, UTC) example: '2026-04-24' pattern: ^\d{4}-\d{2}-\d{2}$ type: string required: - date - count title: UsageDailyPoint type: object ArduinoUsageThingsMonthly: description: Per-thing monthly message-consumption series (default view) properties: from: description: Start of the returned range (inclusive, UTC, truncated to month start) format: date-time type: string owner_id: description: 'ID of the owner: user_id for scope=user, org_id for scope=org' format: uuid type: string scope: description: 'Scope of the series: `user` or `org`' enum: - user - org type: string things: description: One entry per thing with at least one message in the range items: $ref: '#/components/schemas/UsageThingMonthlySeries' type: array to: description: End of the returned range (inclusive, UTC, month end) format: date-time type: string required: - scope - owner_id - from - to - things title: 'Mediatype identifier: application/vnd.arduino.usage.things.monthly+json; view=default' type: object ArduinoUsageDaily: description: Daily message-consumption series (default view) properties: from: description: Start of the returned range (inclusive, UTC) format: date-time type: string owner_id: description: 'ID of the owner: user_id for scope=user, org_id for scope=org' format: uuid type: string scope: description: 'Scope of the series: `user` or `org`' enum: - user - org type: string series: description: One entry per calendar day in the requested range (days with zero messages are omitted) items: $ref: '#/components/schemas/UsageDailyPoint' type: array to: description: End of the returned range (inclusive, UTC) format: date-time type: string total: description: Sum of `count` over the full returned range format: int64 type: integer required: - scope - owner_id - from - to - total - series title: 'Mediatype identifier: application/vnd.arduino.usage.daily+json; view=default' type: object ArduinoUsageMonthly: description: Monthly message-consumption series (default view) properties: from: description: Start of the returned range (inclusive, UTC, truncated to month start) format: date-time type: string owner_id: description: 'ID of the owner: user_id for scope=user, org_id for scope=org' format: uuid type: string scope: description: 'Scope of the series: `user` or `org`' enum: - user - org type: string series: description: One entry per calendar month in the requested range (months with zero messages are omitted) items: $ref: '#/components/schemas/UsageMonthlyPoint' type: array to: description: End of the returned range (inclusive, UTC, month end) format: date-time type: string total: description: Sum of `count` over the full returned range format: int64 type: integer required: - scope - owner_id - from - to - total - series title: 'Mediatype identifier: application/vnd.arduino.usage.monthly+json; view=default' type: object error: description: Error response media type (default view) properties: code: description: an application-specific error code, expressed as a string value. example: invalid_value type: string detail: description: a human-readable explanation specific to this occurrence of the problem. example: Value of ID must be an integer type: string id: description: a unique identifier for this particular occurrence of the problem. example: 3F1FKVRR type: string meta: additionalProperties: true description: a meta object containing non-standard meta-information about the error. example: timestamp: 1458609066 type: object status: description: the HTTP status code applicable to this problem, expressed as a string value. example: '400' type: string title: 'Mediatype identifier: application/vnd.goa.error+json; view=default' type: object UsageMonthlyPoint: properties: count: description: Number of messages sent during that month format: int64 type: integer month: description: Calendar month in ISO-8601 (YYYY-MM, UTC) example: 2026-04 pattern: ^\d{4}-\d{2}$ type: string required: - month - count title: UsageMonthlyPoint type: object ArduinoUsageThingsDaily: description: Per-thing daily message-consumption series (default view) properties: from: description: Start of the returned range (inclusive, UTC) format: date-time type: string owner_id: description: 'ID of the owner: user_id for scope=user, org_id for scope=org' format: uuid type: string scope: description: 'Scope of the series: `user` or `org`' enum: - user - org type: string things: description: One entry per thing with at least one message in the range items: $ref: '#/components/schemas/UsageThingDailySeries' type: array to: description: End of the returned range (inclusive, UTC) format: date-time type: string required: - scope - owner_id - from - to - things title: 'Mediatype identifier: application/vnd.arduino.usage.things.daily+json; view=default' type: object externalDocs: description: See docs on Confluence url: https://arduino.atlassian.net/wiki/spaces/FTWEB/pages/91160610/Arduino+IoT+Cloud