<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="factchecktools_v1alpha1.html">Fact Check Tools API</a> . <a href="factchecktools_v1alpha1.claims.html">claims</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#search">search(languageCode=None, maxAgeDays=None, offset=None, pageSize=None, pageToken=None, query=None, reviewPublisherSiteFilter=None, x__xgafv=None)</a></code></p>
<p class="firstline">Search through fact-checked claims.</p>
<p class="toc_element">
  <code><a href="#search_next">search_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="search">search(languageCode=None, maxAgeDays=None, offset=None, pageSize=None, pageToken=None, query=None, reviewPublisherSiteFilter=None, x__xgafv=None)</code>
  <pre>Search through fact-checked claims.

Args:
  languageCode: string, The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. Can be used to restrict results by language, though we do not currently consider the region.
  maxAgeDays: integer, The maximum age of the returned search results, in days. Age is determined by either claim date or review date, whichever is newer.
  offset: integer, An integer that specifies the current offset (that is, starting result location) in search results. This field is only considered if `page_token` is unset. For example, 0 means to return results starting from the first matching result, and 10 means to return from the 11th result.
  pageSize: integer, The pagination size. We will return up to that many results. Defaults to 10 if not set.
  pageToken: string, The pagination token. You may provide the `next_page_token` returned from a previous List request, if any, in order to get the next page. All other fields must have the same values as in the previous request.
  query: string, Textual query string. Required unless `review_publisher_site_filter` is specified.
  reviewPublisherSiteFilter: string, The review publisher site to filter results by, e.g. nytimes.com.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response from searching fact-checked claims.
  &quot;claims&quot;: [ # The list of claims and all of their associated information.
    { # Information about the claim.
      &quot;claimDate&quot;: &quot;A String&quot;, # The date that the claim was made.
      &quot;claimReview&quot;: [ # One or more reviews of this claim (namely, a fact-checking article).
        { # Information about a claim review.
          &quot;languageCode&quot;: &quot;A String&quot;, # The language this review was written in. For instance, &quot;en&quot; or &quot;de&quot;.
          &quot;publisher&quot;: { # Information about the publisher. # The publisher of this claim review.
            &quot;name&quot;: &quot;A String&quot;, # The name of this publisher. For instance, &quot;Awesome Fact Checks&quot;.
            &quot;site&quot;: &quot;A String&quot;, # Host-level site name, without the protocol or &quot;www&quot; prefix. For instance, &quot;awesomefactchecks.com&quot;. This value of this field is based purely on the claim review URL.
          },
          &quot;reviewDate&quot;: &quot;A String&quot;, # The date the claim was reviewed.
          &quot;textualRating&quot;: &quot;A String&quot;, # Textual rating. For instance, &quot;Mostly false&quot;.
          &quot;title&quot;: &quot;A String&quot;, # The title of this claim review, if it can be determined.
          &quot;url&quot;: &quot;A String&quot;, # The URL of this claim review.
        },
      ],
      &quot;claimant&quot;: &quot;A String&quot;, # A person or organization stating the claim. For instance, &quot;John Doe&quot;.
      &quot;text&quot;: &quot;A String&quot;, # The claim text. For instance, &quot;Crime has doubled in the last 2 years.&quot;
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The next pagination token in the Search response. It should be used as the `page_token` for the following request. An empty value means no more results.
}</pre>
</div>

<div class="method">
    <code class="details" id="search_next">search_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>