With AWS IoT, you pay for only what you use and there are no minimum fees. Prices are based on the number of messages published to AWS IoT (Publishing Cost), and the number of messages delivered by AWS IoT to devices or applications (Delivery Cost).

AWS IoT does not charge for deliveries to the following AWS services: Amazon S3, Amazon DynamoDB, AWS Lambda, Amazon Kinesis, Amazon SNS, and Amazon SQS.

See examples of pricing at the bottom of this page.

The AWS IoT free tier gets you started with 250,000 free messages (published or delivered) per month, for 12 months.

Pricing by Region

Region Price
US East (N. Virginia) $5 per million messages
US East (Ohio) $5 per million messages
US West (Oregon) $5 per million messages
EU (Ireland) $5 per million messages
EU (Frankfurt) $5 per million messages
EU (London) $5 per million messages
Asia Pacific (Sydney) $6 per million messages
Asia Pacific (Seoul) $6 per million messages
Asia Pacific (Tokyo) $8 per million messages
Asia Pacific (Singapore) $8 per million messages

Custom pricing may be available for high messaging volumes. For inquiries please contact AWS Sales & Business Development and include "Custom IoT volume pricing" in your request.

For the purpose of metering, a message size increment is a 512-byte block of data processed by AWS IoT – either published to or delivered by the Service. You can send messages up to 128KB in one block, and will be charged in multiples of 512-bytes. For example, a 900-byte payload is metered as two messages.

MQTT Message Metering

MQTT Connect Metered as the size of the message including "Will" topic size and "Will" message payload
MQTT PubAck (received from device) Metered as a single message of 512 bytes
MQTT Ping Includes both Ping request and Ping response. Both together are metered as a single message of 512 bytes
MQTT Subscribe

Metered on the size of the topic list submitted in the Subscribe message

MQTT Publish (inbound) Metered on the size of the payload and topic in bytes
MQTT Publish (outbound) Metered on the size of the payload and topic in bytes

The following MQTT messages are excluded from metering:

  • MQTT Disconnect
  • MQTT ConnAck
  • MQTT PubAck (sent by service)
  • MQTT SubAck
  • MQTT Unsubscribe

MQTT messages transferred inside a WebSocket connection are metered like MQTT messages inside a mutually authenticated TLS connection.

HTTP Request and Response Metering

Requests HTTP REST API requests are metered based on the number of 512 byte messages needed to encode the body section of the HTTP request.
Responses HTTP REST API responses are metered based on the number of 512 bytes messages needed to encode the body section of the HTTP response.
Negative responses If HTTP responses with HTTP response codes in the 4xx and 5xx range contains a body, AWS IoT meters the number of 512 bytes messages needed to encode the response body.

HTTP Rest Publish calls and HTTP Rest device shadow operations are metered as separate usage types but follow the same metering rules.

Pricing Example 1

In the first example a device publishes one 500-byte message per hour to AWS IoT, and AWS IoT then delivers each message to 5 other devices.

Publishing cost to AWS IoT: In this example the device publishes 1 message * 24 hours * 30 days = 720 messages in a month, incurring AWS IoT cost equal to: 720 * ($5/1 million messages) = $0.004 monthly for message publishing.

Delivery cost to devices: The 5 devices each receiving one message per hour from AWS IoT, would receive 5 * 1 message * 24 hours * 30 days = 3,600 messages per month, incurring AWS IoT cost equal to: 3,600 * ($5/1 million messages) = $0.018 monthly for message delivery.

Total cost: The devices in this example would incur $0.004 monthly AWS IoT cost for message publishing, plus $0.018 monthly AWS IoT cost for message delivery, for a total of $0.022 monthly AWS IoT cost.

Pricing Example 2

In the second example, a device publishes one 1,024-byte message per minute to AWS IoT. AWS IoT then delivers each message to Amazon S3.

Publishing cost to AWS IoT: Each publication of a 1,024-byte message will be metered as two messages (AWS IoT defines a message as one 512-byte block of data). The device in this example would generate 2 messages * 60 minutes * 24 hours * 30 days = 86,400 messages per month, incurring AWS IoT cost equal to: 86,400 * ($5/1 million messages) = $0.432 per month for message publishing.

Delivery cost to S3: AWS IoT does not charge for deliveries to the following AWS endpoints: Lambda, DynamoDB, S3, Kinesis, SNS and SQS. Since the messages in this example are delivered by AWS IoT to Amazon S3, you will not incur any AWS IoT costs for message delivery. You will still incur your regular Amazon S3 costs.

Total cost: The device in this example would incur $0.432 monthly AWS IoT cost for publishing of messages, and no cost for delivery of messages (because AWS IoT does not charge for deliveries to S3), for a total of $0.432 of AWS IoT cost.

Pricing Example 3

In the third example, 100 sensors each publish one 400-byte message per minute to AWS IoT. AWS IoT then delivers all of the messages to one other device, and also to DynamoDB.

Publishing cost to AWS IoT: The 100 sensors would generate 100 devices * 1 message * 60 minutes * 24 hours * 30 days = 4.3 million messages per month, incurring AWS IoT cost equal to: 4.3 * ($5/1 million messages) = $21.50 monthly AWS IoT cost for message publishing.

Delivery cost to devices: The 1 metering device receiving 100 messages per minute from AWS IoT, would incur AWS IoT costs equal to: 1 device * 100 messages * 60 minutes * 24 hours * 30 days = 4.3 million messages per month, incurring 4.3 * ($5/1 million messages) = $21.50 monthly AWS IoT cost for message delivery.

Delivery cost to DynamoDB: AWS IoT does not charge for deliveries to the following AWS endpoints: Lambda, DynamoDB, S3, Kinesis, Kinesis Firehose, SNS and SQS. In this example, you will not incur any AWS IoT cost for message deliveries to DynamoDB. You will still incur your regular Amazon DynamoDB costs.

Total cost: This example would incur $21.50 monthly AWS IoT cost for publishing of messages, plus $21.50 AWS IoT cost per month for delivered messages, for a total of $43.00 of AWS IoT cost.

Learn more about getting started with AWS IoT Core

Visit the getting started page
Ready to get started?
Sign up
Have more questions?
Contact us