<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(address=None, includeOffices=None, levels=None, roles=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, levels=None, recursive=None, roles=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(address=None, includeOffices=None, levels=None, roles=None, x__xgafv=None)</code>
  <pre>Looks up political geography and representative information for a single address.

Args:
  address: string, The address to look up. May only be specified if the field ocdId is not given in the URL
  includeOffices: boolean, Whether to return information about offices and officials. If false, only the top-level district information will be returned.
  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 - 
  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 - 
  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;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;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;name&quot;: &quot;A String&quot;, # The name of the division.
      &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;kind&quot;: &quot;civicinfo#representativeInfoResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;civicinfo#representativeInfoResponse&quot;.
  &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;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;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
    &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
    &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
    &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
  },
  &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;divisionId&quot;: &quot;A String&quot;, # The OCD ID of the division with which this office is associated.
      &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;name&quot;: &quot;A String&quot;, # The human-readable name of the office.
      &quot;officialIndices&quot;: [ # List of indices in the officials array of people who presently hold this office.
        42,
      ],
      &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;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;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
    },
  ],
  &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;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;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;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
          &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
          &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
          &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
        },
      ],
      &quot;channels&quot;: [ # A list of known (social) media channels for this official.
        { # A social media or web channel for a candidate.
          &quot;id&quot;: &quot;A String&quot;, # The unique public identifier for the candidate&#x27;s channel.
          &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;emails&quot;: [ # The direct email addresses for the official.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # The official&#x27;s name.
      &quot;party&quot;: &quot;A String&quot;, # The full name of the party the official belongs to.
      &quot;phones&quot;: [ # The official&#x27;s public contact phone numbers.
        &quot;A String&quot;,
      ],
      &quot;photoUrl&quot;: &quot;A String&quot;, # A URL for a photo of the official.
      &quot;urls&quot;: [ # The official&#x27;s public website URLs.
        &quot;A String&quot;,
      ],
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="representativeInfoByDivision">representativeInfoByDivision(ocdId, levels=None, recursive=None, roles=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)
  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.
  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 - 
  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;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;name&quot;: &quot;A String&quot;, # The name of the division.
      &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;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;divisionId&quot;: &quot;A String&quot;, # The OCD ID of the division with which this office is associated.
      &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;name&quot;: &quot;A String&quot;, # The human-readable name of the office.
      &quot;officialIndices&quot;: [ # List of indices in the officials array of people who presently hold this office.
        42,
      ],
      &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;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;name&quot;: &quot;A String&quot;, # The name of the data source.
          &quot;official&quot;: True or False, # Whether this data comes from an official government source.
        },
      ],
    },
  ],
  &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;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;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;line3&quot;: &quot;A String&quot;, # The third line of the address, if needed.
          &quot;locationName&quot;: &quot;A String&quot;, # The name of the location.
          &quot;state&quot;: &quot;A String&quot;, # The US two letter state abbreviation of the address.
          &quot;zip&quot;: &quot;A String&quot;, # The US Postal Zip Code of the address.
        },
      ],
      &quot;channels&quot;: [ # A list of known (social) media channels for this official.
        { # A social media or web channel for a candidate.
          &quot;id&quot;: &quot;A String&quot;, # The unique public identifier for the candidate&#x27;s channel.
          &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;emails&quot;: [ # The direct email addresses for the official.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # The official&#x27;s name.
      &quot;party&quot;: &quot;A String&quot;, # The full name of the party the official belongs to.
      &quot;phones&quot;: [ # The official&#x27;s public contact phone numbers.
        &quot;A String&quot;,
      ],
      &quot;photoUrl&quot;: &quot;A String&quot;, # A URL for a photo of the official.
      &quot;urls&quot;: [ # The official&#x27;s public website URLs.
        &quot;A String&quot;,
      ],
    },
  ],
}</pre>
</div>

</body></html>