Amazon IoT Core additional metering details


Your device can ping as often as every 30s, with no charge for MQTT PINGREQ or PINGRESP 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 5 KB message
MQTT SUBSCRIBE Metered on the size of the topic submitted in the Subscribe message
MQTT PUBLISH (received from device) Metered on the size of the payload and topic in bytes
MQTT PUBLISH (sent by service) Metered on the size of the payload and topic in bytes
MQTT Retained Metered on the size of the payload and topic in bytes. For MQTT inbound messages published with RETAIN flag, your account is metered for inbound MQTT Publish and for MQTT Retained

The following MQTT messages are excluded from metering:

  • MQTT PUBACK (sent by service)

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

HTTP Request and Response Metering
Requests Metered on the number of 5 KB messages needed to encode the body section of the HTTP request
Responses Metered on the number of 5 KB 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, Amazon IoT Core meters the number of 5 KB message needed to encode the response body


You are charged for a Registry operation each time you make a call to one of the following APIs:

  • AddThingToThingGroup
  • AttachThingPrincipal
  • CreateThing
  • CreateThingGroup
  • CreateThingType
  • DescribeThing
  • DescribeThingGroup
  • DescribeThingType
  • ListPrincipalThings
  • ListThingGroups
  • ListThingGroupsForThing
  • ListThingPrincipals
  • ListThings
  • ListThingsInThingGroup
  • ListThingTypes
  • UpdateThing
  • UpdateThingGroup
  • UpdateThingGroupsForThing
  • GetWirelessDeviceStatistics
  • GetWirelessGatewayStatistics

Note that for all List operations, metering takes into account total size of all records returned by API call. For example, if a ListThings API call returns (50) 2 KB Things from Registry, your request Is charged for (100) 1K increments, and is metered as 100 requests. If you opt-in for Registry Events, any update messages will be subject to messaging charges.

Device Shadow

Device Shadow operations are metered when you make an API call to GetThingShadow or UpdateThingShadow, or when an MQTT message creates, updates, or gets a Device Shadow. If you opt-in for Device Shadow updates, the update messages will be subject to messaging charges.

Rules Engine

A rule can invoke up to 10 actions, where an action is an external function call (e.g. get_thing_shadow(), get_dynamodb()), or a call to an external service (e.g. Amazon S3, Amazon Kinesis, Amazon SNS). Arithmetic and logical SQL functions are not metered as actions. The following external functional call(s) are not metered as actions: get_secret().

A rule action that sends a message to a resource inside a customer's Amazon Virtual Private Cloud (VPC) will be metered with an additional action. This additional action does not count towards the 10 actions per rule limit. VPC is supported for the following rule action(s): Apache Kafka action.

A rule that is triggered will always meter at minimum one rule and one action. For example, a 5kb message that triggers one rule will meter one rule and one action even if it does not invoke any corresponding actions.

Rules that process a message generated by Amazon IoT Core are metered as a single rule, regardless of message size. For example, a 7KB Device Shadow document may publish a /delta or /documents message that is quite large, however any rules triggered by such an update will be metered as if the message were 5KB.

Standard EC2 data transfer rates listed here under “Data transfer” apply to the following rules actions(s): HTTP action.