<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="civicinfo_v2.html">Google Civic Information API</a> . <a href="civicinfo_v2.representatives.html">representatives</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="#representativeInfoByAddress">representativeInfoByAddress(roles=None, includeOffices=None, address=None, levels=None, x__xgafv=None)</a></code></p>
<p class="firstline">Looks up political geography and representative information for a single address.</p>
<p class="toc_element">
  <code><a href="#representativeInfoByDivision">representativeInfoByDivision(ocdId, roles=None, levels=None, recursive=None, x__xgafv=None)</a></code></p>
<p class="firstline">Looks up representative information for a single geographic division.</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="representativeInfoByAddress">representativeInfoByAddress(roles=None, includeOffices=None, address=None, levels=None, x__xgafv=None)</code>
  <pre>Looks up political geography and representative information for a single address.

Args:
  roles: string, A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don&#x27;t contain a matching office will not be returned. (repeated)
    Allowed values
      headOfState - 
      headOfGovernment - 
      deputyHeadOfGovernment - 
      governmentOfficer - 
      executiveCouncil - 
      legislatorUpperBody - 
      legislatorLowerBody - 
      highestCourtJudge - 
      judge - 
      schoolBoard - 
      specialPurposeOfficer - 
  includeOffices: boolean, Whether to return information about offices and officials. If false, only the top-level district information will be returned.
  address: string, The address to look up. May only be specified if the field ocdId is not given in the URL
  levels: string, A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don&#x27;t contain a matching office will not be returned. (repeated)
    Allowed values
      international - 
      country - 
      administrativeArea1 - 
      regional - 
      administrativeArea2 - 
      locality - 
      subLocality1 - 
      subLocality2 - 
      special - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The result of a representative info lookup query.
    &quot;normalizedInput&quot;: { # A simple representation of an address. # The normalized version of the requested address
      &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
      &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
      &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
      &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
      &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
      &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
      &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
    },
    &quot;kind&quot;: &quot;civicinfo#representativeInfoResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;civicinfo#representativeInfoResponse&quot;.
    &quot;offices&quot;: [ # Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.
      { # Information about an Office held by one or more Officials.
        &quot;sources&quot;: [ # A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.
          { # Contains information about the data source for the element containing it.
            &quot;official&quot;: True or False, # Whether this data comes from an official government source.
            &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          },
        ],
        &quot;levels&quot;: [ # The levels of government of which this office is part. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at &quot;locality&quot; level, but also effectively at both &quot;administrative-area-2&quot; and &quot;administrative-area-1&quot;.
          &quot;A String&quot;,
        ],
        &quot;officialIndices&quot;: [ # List of indices in the officials array of people who presently hold this office.
          42,
        ],
        &quot;divisionId&quot;: &quot;A String&quot;, # The OCD ID of the division with which this office is associated.
        &quot;roles&quot;: [ # The roles which this office fulfills. Roles are not meant to be exhaustive, or to exactly specify the entire set of responsibilities of a given office, but are meant to be rough categories that are useful for general selection from or sorting of a list of offices.
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # The human-readable name of the office.
      },
    ],
    &quot;officials&quot;: [ # Officials holding the offices listed above. Will only be present if includeOffices was true in the request.
      { # Information about a person holding an elected office.
        &quot;party&quot;: &quot;A String&quot;, # The full name of the party the official belongs to.
        &quot;channels&quot;: [ # A list of known (social) media channels for this official.
          { # A social media or web channel for a candidate.
            &quot;type&quot;: &quot;A String&quot;, # The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter
            &quot;id&quot;: &quot;A String&quot;, # The unique public identifier for the candidate&#x27;s channel.
          },
        ],
        &quot;photoUrl&quot;: &quot;A String&quot;, # A URL for a photo of the official.
        &quot;name&quot;: &quot;A String&quot;, # The official&#x27;s name.
        &quot;emails&quot;: [ # The direct email addresses for the official.
          &quot;A String&quot;,
        ],
        &quot;address&quot;: [ # Addresses at which to contact the official.
          { # A simple representation of an address.
            &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
            &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
            &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
            &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
            &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
            &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
            &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
          },
        ],
        &quot;phones&quot;: [ # The official&#x27;s public contact phone numbers.
          &quot;A String&quot;,
        ],
        &quot;urls&quot;: [ # The official&#x27;s public website URLs.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;divisions&quot;: { # A map of political geographic divisions that contain the requested address, keyed by the unique Open Civic Data identifier for this division.
      &quot;a_key&quot;: { # Describes a political geography.
        &quot;officeIndices&quot;: [ # List of indices in the offices array, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.
          42,
        ],
        &quot;name&quot;: &quot;A String&quot;, # The name of the division.
        &quot;alsoKnownAs&quot;: [ # Any other valid OCD IDs that refer to the same division.\n\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\n\nFor example, if this division&#x27;s OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.
          &quot;A String&quot;,
        ],
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="representativeInfoByDivision">representativeInfoByDivision(ocdId, roles=None, levels=None, recursive=None, x__xgafv=None)</code>
  <pre>Looks up representative information for a single geographic division.

Args:
  ocdId: string, The Open Civic Data division identifier of the division to look up. (required)
  roles: string, A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don&#x27;t contain a matching office will not be returned. (repeated)
    Allowed values
      headOfState - 
      headOfGovernment - 
      deputyHeadOfGovernment - 
      governmentOfficer - 
      executiveCouncil - 
      legislatorUpperBody - 
      legislatorLowerBody - 
      highestCourtJudge - 
      judge - 
      schoolBoard - 
      specialPurposeOfficer - 
  levels: string, A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don&#x27;t contain a matching office will not be returned. (repeated)
    Allowed values
      international - 
      country - 
      administrativeArea1 - 
      regional - 
      administrativeArea2 - 
      locality - 
      subLocality1 - 
      subLocality2 - 
      special - 
  recursive: boolean, If true, information about all divisions contained in the division requested will be included as well. For example, if querying ocd-division/country:us/district:dc, this would also return all DC&#x27;s wards and ANCs.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;divisions&quot;: { # A map of political geographic divisions that contain the requested address, keyed by the unique Open Civic Data identifier for this division.
      &quot;a_key&quot;: { # Describes a political geography.
        &quot;officeIndices&quot;: [ # List of indices in the offices array, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.
          42,
        ],
        &quot;name&quot;: &quot;A String&quot;, # The name of the division.
        &quot;alsoKnownAs&quot;: [ # Any other valid OCD IDs that refer to the same division.\n\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\n\nFor example, if this division&#x27;s OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;offices&quot;: [ # Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.
      { # Information about an Office held by one or more Officials.
        &quot;sources&quot;: [ # A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.
          { # Contains information about the data source for the element containing it.
            &quot;official&quot;: True or False, # Whether this data comes from an official government source.
            &quot;name&quot;: &quot;A String&quot;, # The name of the data source.
          },
        ],
        &quot;levels&quot;: [ # The levels of government of which this office is part. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at &quot;locality&quot; level, but also effectively at both &quot;administrative-area-2&quot; and &quot;administrative-area-1&quot;.
          &quot;A String&quot;,
        ],
        &quot;officialIndices&quot;: [ # List of indices in the officials array of people who presently hold this office.
          42,
        ],
        &quot;divisionId&quot;: &quot;A String&quot;, # The OCD ID of the division with which this office is associated.
        &quot;roles&quot;: [ # The roles which this office fulfills. Roles are not meant to be exhaustive, or to exactly specify the entire set of responsibilities of a given office, but are meant to be rough categories that are useful for general selection from or sorting of a list of offices.
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # The human-readable name of the office.
      },
    ],
    &quot;officials&quot;: [ # Officials holding the offices listed above. Will only be present if includeOffices was true in the request.
      { # Information about a person holding an elected office.
        &quot;party&quot;: &quot;A String&quot;, # The full name of the party the official belongs to.
        &quot;channels&quot;: [ # A list of known (social) media channels for this official.
          { # A social media or web channel for a candidate.
            &quot;type&quot;: &quot;A String&quot;, # The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter
            &quot;id&quot;: &quot;A String&quot;, # The unique public identifier for the candidate&#x27;s channel.
          },
        ],
        &quot;photoUrl&quot;: &quot;A String&quot;, # A URL for a photo of the official.
        &quot;name&quot;: &quot;A String&quot;, # The official&#x27;s name.
        &quot;emails&quot;: [ # The direct email addresses for the official.
          &quot;A String&quot;,
        ],
        &quot;address&quot;: [ # Addresses at which to contact the official.
          { # A simple representation of an address.
            &quot;city&quot;: &quot;A String&quot;, # The city or town for the address.
            &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
            &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
            &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
            &quot;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
            &quot;line1&quot;: &quot;A String&quot;, # The street name and number of this address.
            &quot;line2&quot;: &quot;A String&quot;, # The second line the address, if needed.
          },
        ],
        &quot;phones&quot;: [ # The official&#x27;s public contact phone numbers.
          &quot;A String&quot;,
        ],
        &quot;urls&quot;: [ # The official&#x27;s public website URLs.
          &quot;A String&quot;,
        ],
      },
    ],
  }</pre>
</div>

</body></html>