<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="safebrowsing_v4.html">Safe Browsing API</a> . <a href="safebrowsing_v4.threatMatches.html">threatMatches</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#find">find(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Finds the threat entries that match the Safe Browsing lists.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="find">find(body=None, x__xgafv=None)</code>
  <pre>Finds the threat entries that match the Safe Browsing lists.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request to check entries against lists.
    &quot;threatInfo&quot;: { # The information regarding one or more threats that a client submits when # The lists and entries to be checked for matches.
        # checking for matches in threat lists.
      &quot;threatEntries&quot;: [ # The threat entries to be checked.
        { # An individual threat; for example, a malicious URL or its hash
            # representation. Only one of these fields should be set.
          &quot;url&quot;: &quot;A String&quot;, # A URL.
          &quot;hash&quot;: &quot;A String&quot;, # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
              # hash. This field is in binary format. For JSON requests, hashes are
              # base64-encoded.
          &quot;digest&quot;: &quot;A String&quot;, # The digest of an executable in SHA256 format. The API supports both
              # binary and hex digests. For JSON requests, digests are base64-encoded.
        },
      ],
      &quot;threatTypes&quot;: [ # The threat types to be checked.
        &quot;A String&quot;,
      ],
      &quot;platformTypes&quot;: [ # The platform types to be checked.
        &quot;A String&quot;,
      ],
      &quot;threatEntryTypes&quot;: [ # The entry types to be checked.
        &quot;A String&quot;,
      ],
    },
    &quot;client&quot;: { # The client metadata associated with Safe Browsing API requests. # The client metadata.
      &quot;clientId&quot;: &quot;A String&quot;, # A client ID that (hopefully) uniquely identifies the client implementation
          # of the Safe Browsing API.
      &quot;clientVersion&quot;: &quot;A String&quot;, # The version of the client implementation.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;matches&quot;: [ # The threat list matches.
      { # A match when checking a threat entry in the Safe Browsing threat lists.
        &quot;threatEntryMetadata&quot;: { # The metadata associated with a specific threat entry. The client is expected # Optional metadata associated with this threat.
            # to know the metadata key/value pairs associated with each threat type.
          &quot;entries&quot;: [ # The metadata entries.
            { # A single metadata entry.
              &quot;key&quot;: &quot;A String&quot;, # The metadata entry key. For JSON requests, the key is base64-encoded.
              &quot;value&quot;: &quot;A String&quot;, # The metadata entry value. For JSON requests, the value is base64-encoded.
            },
          ],
        },
        &quot;platformType&quot;: &quot;A String&quot;, # The platform type matching this threat.
        &quot;threatType&quot;: &quot;A String&quot;, # The threat type matching this threat.
        &quot;cacheDuration&quot;: &quot;A String&quot;, # The cache lifetime for the returned match. Clients must not cache this
            # response for more than this duration to avoid false positives.
        &quot;threatEntryType&quot;: &quot;A String&quot;, # The threat entry type matching this threat.
        &quot;threat&quot;: { # An individual threat; for example, a malicious URL or its hash # The threat matching this threat.
            # representation. Only one of these fields should be set.
          &quot;url&quot;: &quot;A String&quot;, # A URL.
          &quot;hash&quot;: &quot;A String&quot;, # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
              # hash. This field is in binary format. For JSON requests, hashes are
              # base64-encoded.
          &quot;digest&quot;: &quot;A String&quot;, # The digest of an executable in SHA256 format. The API supports both
              # binary and hex digests. For JSON requests, digests are base64-encoded.
        },
      },
    ],
  }</pre>
</div>

</body></html>