<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="searchconsole_v1.html">Google Search Console API</a> . <a href="searchconsole_v1.sites.html">sites</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#add">add(siteUrl, x__xgafv=None)</a></code></p>
<p class="firstline"> Adds a site to the set of the user's sites in Search Console.</p>
<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="#delete">delete(siteUrl, x__xgafv=None)</a></code></p>
<p class="firstline"> Removes a site from the set of the user's Search Console sites.</p>
<p class="toc_element">
  <code><a href="#get">get(siteUrl, x__xgafv=None)</a></code></p>
<p class="firstline"> Retrieves information about specific site.</p>
<p class="toc_element">
  <code><a href="#list">list(x__xgafv=None)</a></code></p>
<p class="firstline"> Lists the user's Search Console sites.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="add">add(siteUrl, x__xgafv=None)</code>
  <pre> Adds a site to the set of the user&#x27;s sites in Search Console.

Args:
  siteUrl: string, The URL of the site to add. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(siteUrl, x__xgafv=None)</code>
  <pre> Removes a site from the set of the user&#x27;s Search Console sites.

Args:
  siteUrl: string, The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(siteUrl, x__xgafv=None)</code>
  <pre> Retrieves information about specific site.

Args:
  siteUrl: string, The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Contains permission level information about a Search Console site. For more information, see [Permissions in Search Console](https://support.google.com/webmasters/answer/2451999).
  &quot;permissionLevel&quot;: &quot;A String&quot;, # The user&#x27;s permission level for the site.
  &quot;siteUrl&quot;: &quot;A String&quot;, # The URL of the site.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(x__xgafv=None)</code>
  <pre> Lists the user&#x27;s Search Console sites.

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

Returns:
  An object of the form:

    { # List of sites with access level information.
  &quot;siteEntry&quot;: [ # Contains permission level information about a Search Console site. For more information, see [Permissions in Search Console](https://support.google.com/webmasters/answer/2451999).
    { # Contains permission level information about a Search Console site. For more information, see [Permissions in Search Console](https://support.google.com/webmasters/answer/2451999).
      &quot;permissionLevel&quot;: &quot;A String&quot;, # The user&#x27;s permission level for the site.
      &quot;siteUrl&quot;: &quot;A String&quot;, # The URL of the site.
    },
  ],
}</pre>
</div>

</body></html>