PutInventory - AWS Systems Manager


Bulk update custom inventory items on one or more managed nodes. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.

Request Syntax

{ "InstanceId": "string", "Items": [ { "CaptureTime": "string", "Content": [ { "string" : "string" } ], "ContentHash": "string", "Context": { "string" : "string" }, "SchemaVersion": "string", "TypeName": "string" } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.


An managed node ID where you want to add or update inventory items.

Type: String

Pattern: (^i-(\w{8}|\w{17})$)|(^mi-\w{17}$)

Required: Yes


The inventory items that you want to add or update on managed nodes.

Type: Array of InventoryItem objects

Array Members: Minimum number of 1 item. Maximum number of 30 items.

Required: Yes

Response Syntax

{ "Message": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


Information about the request.

Type: String


For information about the errors that are common to all actions, see Common Errors.


You have exceeded the limit for custom schemas. Delete one or more custom schemas and try again.

HTTP Status Code: 400


An error occurred on the server side.

HTTP Status Code: 500


The following problems can cause this exception:

  • You don't have permission to access the managed node.

  • AWS Systems Manager Agent (SSM Agent) isn't running. Verify that SSM Agent is running.

  • SSM Agent isn't registered with the SSM endpoint. Try reinstalling SSM Agent.

  • The managed node isn't in a valid state. Valid states are: Running, Pending, Stopped, and Stopping. Invalid states are: Shutting-down and Terminated.

HTTP Status Code: 400


You specified invalid keys or values in the Context attribute for InventoryItem. Verify the keys and values, and try again.

HTTP Status Code: 400


One or more content items isn't valid.

HTTP Status Code: 400


The parameter type name isn't valid.

HTTP Status Code: 400


The inventory item has invalid content.

HTTP Status Code: 400


The inventory item size has exceeded the size limit.

HTTP Status Code: 400


The sub-type count exceeded the limit for the inventory type.

HTTP Status Code: 400


The size of inventory data has exceeded the total size limit for the resource.

HTTP Status Code: 400


The Context attribute that you specified for the InventoryItem isn't allowed for this inventory type. You can only use the Context attribute with inventory types like AWS:ComplianceItem.

HTTP Status Code: 400


Inventory item type schema version has to match supported versions in the service. Check output of GetInventorySchema to see the available schema version for each type.

HTTP Status Code: 400



This example illustrates one usage of PutInventory.

Sample Request

POST / HTTP/1.1 Host: ssm.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AmazonSSM.PutInventory Content-Type: application/x-amz-json-1.1 User-Agent: aws-cli/1.17.12 Python/3.6.8 Darwin/18.7.0 botocore/1.14.12 X-Amz-Date: 20200401T181858Z Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20200401/us-east-2/ssm/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=39c3b3042cd2aEXAMPLE Content-Length: 180 { "InstanceId": "i-0cb99161f6EXAMPLE", "Items": [ { "TypeName": "Custom:StageInfo", "SchemaVersion": "1.0", "CaptureTime": "2020-03-31T08:00:00Z", "Content": [ { "Stage": "PreProd" } ] } ] }

Sample Response


See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: