# Method: fullHashes.find

- [HTTP request](https://developers.google.com/safe-browsing/reference/rest/v4/fullHashes/find#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/safe-browsing/reference/rest/v4/fullHashes/find#body.request_body)
  - [JSON representation](https://developers.google.com/safe-browsing/reference/rest/v4/fullHashes/find#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/safe-browsing/reference/rest/v4/fullHashes/find#body.response_body)
  - [JSON representation](https://developers.google.com/safe-browsing/reference/rest/v4/fullHashes/find#body.FindFullHashesResponse.SCHEMA_REPRESENTATION)

Finds the full hashes that match the requested hash prefixes.

### HTTP request

`POST https://safebrowsing.googleapis.com/v4/fullHashes:find`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "client": { object (`https://developers.google.com/safe-browsing/reference/rest/v4/ClientInfo`) }, "clientStates": [ string ], "threatInfo": { object (`https://developers.google.com/safe-browsing/reference/rest/v4/ThreatInfo`) }, "apiClient": { object (`https://developers.google.com/safe-browsing/reference/rest/v4/ClientInfo`) } } ``` |

| Fields ||
|---|---|
| `client` | ``object (`https://developers.google.com/safe-browsing/reference/rest/v4/ClientInfo`)`` The client metadata. |
| `clientStates[]` | `string (https://developers.google.com/discovery/v1/type-format format)` The current client states for each of the client's local threat lists. A base64-encoded string. |
| `threatInfo` | ``object (`https://developers.google.com/safe-browsing/reference/rest/v4/ThreatInfo`)`` The lists and hashes to be checked. |
| `apiClient` | ``object (`https://developers.google.com/safe-browsing/reference/rest/v4/ClientInfo`)`` Client metadata associated with callers of higher-level APIs built on top of the client's implementation. |

### Response body

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "matches": [ { object (`https://developers.google.com/safe-browsing/reference/rest/v4/ThreatMatch`) } ], "minimumWaitDuration": string, "negativeCacheDuration": string } ``` |

| Fields ||
|---|---|
| `matches[]` | ``object (`https://developers.google.com/safe-browsing/reference/rest/v4/ThreatMatch`)`` The full hashes that matched the requested prefixes. |
| `minimumWaitDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` The minimum duration the client must wait before issuing any find hashes request. If this field is not set, clients can issue a request as soon as they want. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `negativeCacheDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` For requested entities that did not match the threat list, how long to cache the response. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |