

# ListThings


Lists your things. Use the **attributeName** and **attributeValue** parameters to filter your things. For example, calling `ListThings` with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute **Color** with the value **Red**. For more information, see [List Things](https://docs.amazonaws.cn/iot/latest/developerguide/thing-registry.html#list-things) from the * Amazon IoT Core Developer Guide*.

Requires permission to access the [ListThings](https://docs.amazonaws.cn/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action.

**Note**  
You will not be charged for calling this API if an `Access denied` error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned.

## Request Syntax


```
GET /things?attributeName=attributeName&attributeValue=attributeValue&maxResults=maxResults&nextToken=nextToken&thingTypeName=thingTypeName&usePrefixAttributeValue=usePrefixAttributeValue HTTP/1.1
```

## URI Request Parameters


The request uses the following URI parameters.

 ** [attributeName](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-attributeName"></a>
The attribute name used to search for things.  
Length Constraints: Maximum length of 128.  
Pattern: `[a-zA-Z0-9_.,@/:#-]+` 

 ** [attributeValue](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-attributeValue"></a>
The attribute value used to search for things.  
Length Constraints: Maximum length of 800.  
Pattern: `[a-zA-Z0-9_.,@/:#=\[\]-]*` 

 ** [maxResults](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-maxResults"></a>
The maximum number of results to return in this operation.  
Valid Range: Minimum value of 1. Maximum value of 250.

 ** [nextToken](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-nextToken"></a>
To retrieve the next set of results, the `nextToken` value from a previous response; otherwise **null** to receive the first set of results.

 ** [thingTypeName](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-thingTypeName"></a>
The name of the thing type used to search for things.  
Length Constraints: Minimum length of 1. Maximum length of 128.  
Pattern: `[a-zA-Z0-9:_-]+` 

 ** [usePrefixAttributeValue](#API_ListThings_RequestSyntax) **   <a name="iot-ListThings-request-uri-usePrefixAttributeValue"></a>
When `true`, the action returns the thing resources with attribute values that start with the `attributeValue` provided.  
When `false`, or not present, the action returns only the thing resources with attribute values that match the entire `attributeValue` provided. 

## Request Body


The request does not have a request body.

## Response Syntax


```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "things": [ 
      { 
         "attributes": { 
            "string" : "string" 
         },
         "thingArn": "string",
         "thingName": "string",
         "thingTypeName": "string",
         "version": number
      }
   ]
}
```

## 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.

 ** [nextToken](#API_ListThings_ResponseSyntax) **   <a name="iot-ListThings-response-nextToken"></a>
The token to use to get the next set of results. Will not be returned if operation has returned all results.  
Type: String

 ** [things](#API_ListThings_ResponseSyntax) **   <a name="iot-ListThings-response-things"></a>
The things.  
Type: Array of [ThingAttribute](API_ThingAttribute.md) objects

## Errors


 ** InternalFailureException **   
An unexpected error has occurred.    
 ** message **   
The message for the exception.
HTTP Status Code: 500

 ** InvalidRequestException **   
The request is not valid.    
 ** message **   
The message for the exception.
HTTP Status Code: 400

 ** ServiceUnavailableException **   
The service is temporarily unavailable.    
 ** message **   
The message for the exception.
HTTP Status Code: 503

 ** ThrottlingException **   
The rate exceeds the limit.    
 ** message **   
The message for the exception.
HTTP Status Code: 400

 ** UnauthorizedException **   
You are not authorized to perform this operation.    
 ** message **   
The message for the exception.
HTTP Status Code: 401

## See Also


For more information about using this API in one of the language-specific Amazon SDKs, see the following:
+  [Amazon Command Line Interface V2](https://docs.amazonaws.cn/goto/cli2/iot-2015-05-28/ListThings) 
+  [Amazon SDK for .NET V4](https://docs.amazonaws.cn/goto/DotNetSDKV4/iot-2015-05-28/ListThings) 
+  [Amazon SDK for C\$1\$1](https://docs.amazonaws.cn/goto/SdkForCpp/iot-2015-05-28/ListThings) 
+  [Amazon SDK for Go v2](https://docs.amazonaws.cn/goto/SdkForGoV2/iot-2015-05-28/ListThings) 
+  [Amazon SDK for Java V2](https://docs.amazonaws.cn/goto/SdkForJavaV2/iot-2015-05-28/ListThings) 
+  [Amazon SDK for JavaScript V3](https://docs.amazonaws.cn/goto/SdkForJavaScriptV3/iot-2015-05-28/ListThings) 
+  [Amazon SDK for Kotlin](https://docs.amazonaws.cn/goto/SdkForKotlin/iot-2015-05-28/ListThings) 
+  [Amazon SDK for PHP V3](https://docs.amazonaws.cn/goto/SdkForPHPV3/iot-2015-05-28/ListThings) 
+  [Amazon SDK for Python](https://docs.amazonaws.cn/goto/boto3/iot-2015-05-28/ListThings) 
+  [Amazon SDK for Ruby V3](https://docs.amazonaws.cn/goto/SdkForRubyV3/iot-2015-05-28/ListThings) 