<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="plus_v1.html">Google+ API</a> . <a href="plus_v1.people.html">people</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(userId)</a></code></p>
<p class="firstline">Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.</p>
<p class="toc_element">
  <code><a href="#list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">List all of the people in the specified collection.</p>
<p class="toc_element">
  <code><a href="#listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">List all of the people in the specified collection for a particular activity.</p>
<p class="toc_element">
  <code><a href="#listByActivity_next">listByActivity_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#search">search(query, pageToken=None, language=None, maxResults=None)</a></code></p>
<p class="firstline">Search all public profiles.</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="get">get(userId)</code>
  <pre>Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.

Args:
  userId: string, The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user. (required)

Returns:
  An object of the form:

    {
    "braggingRights": "A String", # The "bragging rights" line of this person.
    "image": { # The representation of the person's profile photo.
      "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
    },
    "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
    "id": "A String", # The ID of this person.
    "objectType": "A String", # Type of person within Google+. Possible values are:
        # - "person" - represents an actual person.
        # - "page" - represents a page.
    "verified": True or False, # Whether the person or Google+ Page has been verified.
    "tagline": "A String", # The brief description (tagline) of this person.
    "currentLocation": "A String", # The current location for this person.
    "etag": "A String", # ETag of this response for caching purposes.
    "circledByCount": 42, # If a Google+ Page and for followers who are visible, the number of people who have added this page to a circle.
    "relationshipStatus": "A String", # The person's relationship status. Possible values are:
        # - "single" - Person is single.
        # - "in_a_relationship" - Person is in a relationship.
        # - "engaged" - Person is engaged.
        # - "married" - Person is married.
        # - "its_complicated" - The relationship is complicated.
        # - "open_relationship" - Person is in an open relationship.
        # - "widowed" - Person is widowed.
        # - "in_domestic_partnership" - Person is in a domestic partnership.
        # - "in_civil_union" - Person is in a civil union.
    "aboutMe": "A String", # A short biography for this person.
    "placesLived": [ # A list of places where this person has lived.
      {
        "primary": True or False, # If "true", this place of residence is this person's primary residence.
        "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
      },
    ],
    "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
    "nickname": "A String", # The nickname of this person.
    "emails": [ # A list of email addresses that this person has set to public on their Google+ profile. You can also use the userinfo.email scope to retrieve an authenticated user's email address.
      {
        "type": "A String", # The type of address. Possible values are:
            # - "home" - Home email address.
            # - "work" - Work email address.
            # - "other" - Other.
        "primary": True or False, # If "true", indicates this email address is the person's primary one.
        "value": "A String", # The email address.
      },
    ],
    "organizations": [ # A list of current or past organizations with which this person is associated.
      {
        "startDate": "A String", # The date the person joined this organization.
        "endDate": "A String", # The date the person left this organization.
        "description": "A String", # A short description of the person's role in this organization. Deprecated.
        "title": "A String", # The person's job title or role within the organization.
        "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
        "location": "A String", # The location of this organization. Deprecated.
        "department": "A String", # The department within the organization. Deprecated.
        "type": "A String", # The type of organization. Possible values are:
            # - "work" - Work.
            # - "school" - School.
        "name": "A String", # The name of the organization.
      },
    ],
    "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
    "displayName": "A String", # The name of this person, suitable for display.
    "name": { # An object representation of the individual components of a person's name.
      "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
      "middleName": "A String", # The middle name of this person.
      "familyName": "A String", # The family name (last name) of this person.
      "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
      "givenName": "A String", # The given name (first name) of this person.
      "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
    },
    "language": "A String", # The user's preferred language for rendering.
    "url": "A String", # The URL of this person's profile.
    "gender": "A String", # The person's gender. Possible values are:
        # - "male" - Male gender.
        # - "female" - Female gender.
        # - "other" - Other.
    "cover": { # The cover photo content.
      "layout": "A String", # The layout of the cover art. Possible values are:
          # - "banner" - One large image banner.
      "coverInfo": { # Extra information about the cover photo.
        "leftImageOffset": 42, # The difference between the left position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
        "topImageOffset": 42, # The difference between the top position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
      },
      "coverPhoto": { # The person's primary cover image.
        "url": "A String", # The url to the image.
        "width": 42, # The width to the image.
        "height": 42, # The height to the image.
      },
    },
    "isPlusUser": True or False, # Whether this user has signed up for Google+.
    "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'ed this page.
    "urls": [ # A list of URLs for this person.
      {
        "type": "A String", # The type of URL. Possible values are:
            # - "home" - URL for home.
            # - "work" - URL for work.
            # - "blog" - URL for blog.
            # - "profile" - URL for profile.
            # - "other" - Other.
        "primary": True or False, # If "true", this URL is the person's primary URL.
        "value": "A String", # The URL value.
      },
    ],
    "ageRange": { # The age range of the person.
      "max": 42, # The age range's upper bound, if any.
      "min": 42, # The age range's lower bound, if any.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</code>
  <pre>List all of the people in the specified collection.

Args:
  userId: string, Get the collection of people for the person identified. Use "me" to indicate the authenticated user. (required)
  collection: string, The collection of people to list. (required)
    Allowed values
      visible - The list of people who this user has added to one or more circles, limited to the circles visible to the requesting application.
  orderBy: string, The order to return people in.
    Allowed values
      alphabetical - Order the people by their display name.
      best - Order people based on the relevence to the viewer.
  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
    "title": "A String", # The title of this collection of people.
    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
      {
        "braggingRights": "A String", # The "bragging rights" line of this person.
        "image": { # The representation of the person's profile photo.
          "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
        },
        "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
        "id": "A String", # The ID of this person.
        "objectType": "A String", # Type of person within Google+. Possible values are:
            # - "person" - represents an actual person.
            # - "page" - represents a page.
        "verified": True or False, # Whether the person or Google+ Page has been verified.
        "tagline": "A String", # The brief description (tagline) of this person.
        "currentLocation": "A String", # The current location for this person.
        "etag": "A String", # ETag of this response for caching purposes.
        "circledByCount": 42, # If a Google+ Page and for followers who are visible, the number of people who have added this page to a circle.
        "relationshipStatus": "A String", # The person's relationship status. Possible values are:
            # - "single" - Person is single.
            # - "in_a_relationship" - Person is in a relationship.
            # - "engaged" - Person is engaged.
            # - "married" - Person is married.
            # - "its_complicated" - The relationship is complicated.
            # - "open_relationship" - Person is in an open relationship.
            # - "widowed" - Person is widowed.
            # - "in_domestic_partnership" - Person is in a domestic partnership.
            # - "in_civil_union" - Person is in a civil union.
        "aboutMe": "A String", # A short biography for this person.
        "placesLived": [ # A list of places where this person has lived.
          {
            "primary": True or False, # If "true", this place of residence is this person's primary residence.
            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
          },
        ],
        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
        "nickname": "A String", # The nickname of this person.
        "emails": [ # A list of email addresses that this person has set to public on their Google+ profile. You can also use the userinfo.email scope to retrieve an authenticated user's email address.
          {
            "type": "A String", # The type of address. Possible values are:
                # - "home" - Home email address.
                # - "work" - Work email address.
                # - "other" - Other.
            "primary": True or False, # If "true", indicates this email address is the person's primary one.
            "value": "A String", # The email address.
          },
        ],
        "organizations": [ # A list of current or past organizations with which this person is associated.
          {
            "startDate": "A String", # The date the person joined this organization.
            "endDate": "A String", # The date the person left this organization.
            "description": "A String", # A short description of the person's role in this organization. Deprecated.
            "title": "A String", # The person's job title or role within the organization.
            "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
            "location": "A String", # The location of this organization. Deprecated.
            "department": "A String", # The department within the organization. Deprecated.
            "type": "A String", # The type of organization. Possible values are:
                # - "work" - Work.
                # - "school" - School.
            "name": "A String", # The name of the organization.
          },
        ],
        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
        "displayName": "A String", # The name of this person, suitable for display.
        "name": { # An object representation of the individual components of a person's name.
          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
          "middleName": "A String", # The middle name of this person.
          "familyName": "A String", # The family name (last name) of this person.
          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
          "givenName": "A String", # The given name (first name) of this person.
          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
        },
        "language": "A String", # The user's preferred language for rendering.
        "url": "A String", # The URL of this person's profile.
        "gender": "A String", # The person's gender. Possible values are:
            # - "male" - Male gender.
            # - "female" - Female gender.
            # - "other" - Other.
        "cover": { # The cover photo content.
          "layout": "A String", # The layout of the cover art. Possible values are:
              # - "banner" - One large image banner.
          "coverInfo": { # Extra information about the cover photo.
            "leftImageOffset": 42, # The difference between the left position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
            "topImageOffset": 42, # The difference between the top position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
          },
          "coverPhoto": { # The person's primary cover image.
            "url": "A String", # The url to the image.
            "width": 42, # The width to the image.
            "height": 42, # The height to the image.
          },
        },
        "isPlusUser": True or False, # Whether this user has signed up for Google+.
        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'ed this page.
        "urls": [ # A list of URLs for this person.
          {
            "type": "A String", # The type of URL. Possible values are:
                # - "home" - URL for home.
                # - "work" - URL for work.
                # - "blog" - URL for blog.
                # - "profile" - URL for profile.
                # - "other" - Other.
            "primary": True or False, # If "true", this URL is the person's primary URL.
            "value": "A String", # The URL value.
          },
        ],
        "ageRange": { # The age range of the person.
          "max": 42, # The age range's upper bound, if any.
          "min": 42, # The age range's lower bound, if any.
        },
      },
    ],
    "etag": "A String", # ETag of this response for caching purposes.
    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
    "selfLink": "A String", # Link to this resource.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</code>
  <pre>List all of the people in the specified collection for a particular activity.

Args:
  activityId: string, The ID of the activity to get the list of people for. (required)
  collection: string, The collection of people to list. (required)
    Allowed values
      plusoners - List all people who have +1'd this activity.
      resharers - List all people who have reshared this activity.
  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
    "title": "A String", # The title of this collection of people.
    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
      {
        "braggingRights": "A String", # The "bragging rights" line of this person.
        "image": { # The representation of the person's profile photo.
          "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
        },
        "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
        "id": "A String", # The ID of this person.
        "objectType": "A String", # Type of person within Google+. Possible values are:
            # - "person" - represents an actual person.
            # - "page" - represents a page.
        "verified": True or False, # Whether the person or Google+ Page has been verified.
        "tagline": "A String", # The brief description (tagline) of this person.
        "currentLocation": "A String", # The current location for this person.
        "etag": "A String", # ETag of this response for caching purposes.
        "circledByCount": 42, # If a Google+ Page and for followers who are visible, the number of people who have added this page to a circle.
        "relationshipStatus": "A String", # The person's relationship status. Possible values are:
            # - "single" - Person is single.
            # - "in_a_relationship" - Person is in a relationship.
            # - "engaged" - Person is engaged.
            # - "married" - Person is married.
            # - "its_complicated" - The relationship is complicated.
            # - "open_relationship" - Person is in an open relationship.
            # - "widowed" - Person is widowed.
            # - "in_domestic_partnership" - Person is in a domestic partnership.
            # - "in_civil_union" - Person is in a civil union.
        "aboutMe": "A String", # A short biography for this person.
        "placesLived": [ # A list of places where this person has lived.
          {
            "primary": True or False, # If "true", this place of residence is this person's primary residence.
            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
          },
        ],
        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
        "nickname": "A String", # The nickname of this person.
        "emails": [ # A list of email addresses that this person has set to public on their Google+ profile. You can also use the userinfo.email scope to retrieve an authenticated user's email address.
          {
            "type": "A String", # The type of address. Possible values are:
                # - "home" - Home email address.
                # - "work" - Work email address.
                # - "other" - Other.
            "primary": True or False, # If "true", indicates this email address is the person's primary one.
            "value": "A String", # The email address.
          },
        ],
        "organizations": [ # A list of current or past organizations with which this person is associated.
          {
            "startDate": "A String", # The date the person joined this organization.
            "endDate": "A String", # The date the person left this organization.
            "description": "A String", # A short description of the person's role in this organization. Deprecated.
            "title": "A String", # The person's job title or role within the organization.
            "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
            "location": "A String", # The location of this organization. Deprecated.
            "department": "A String", # The department within the organization. Deprecated.
            "type": "A String", # The type of organization. Possible values are:
                # - "work" - Work.
                # - "school" - School.
            "name": "A String", # The name of the organization.
          },
        ],
        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
        "displayName": "A String", # The name of this person, suitable for display.
        "name": { # An object representation of the individual components of a person's name.
          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
          "middleName": "A String", # The middle name of this person.
          "familyName": "A String", # The family name (last name) of this person.
          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
          "givenName": "A String", # The given name (first name) of this person.
          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
        },
        "language": "A String", # The user's preferred language for rendering.
        "url": "A String", # The URL of this person's profile.
        "gender": "A String", # The person's gender. Possible values are:
            # - "male" - Male gender.
            # - "female" - Female gender.
            # - "other" - Other.
        "cover": { # The cover photo content.
          "layout": "A String", # The layout of the cover art. Possible values are:
              # - "banner" - One large image banner.
          "coverInfo": { # Extra information about the cover photo.
            "leftImageOffset": 42, # The difference between the left position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
            "topImageOffset": 42, # The difference between the top position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
          },
          "coverPhoto": { # The person's primary cover image.
            "url": "A String", # The url to the image.
            "width": 42, # The width to the image.
            "height": 42, # The height to the image.
          },
        },
        "isPlusUser": True or False, # Whether this user has signed up for Google+.
        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'ed this page.
        "urls": [ # A list of URLs for this person.
          {
            "type": "A String", # The type of URL. Possible values are:
                # - "home" - URL for home.
                # - "work" - URL for work.
                # - "blog" - URL for blog.
                # - "profile" - URL for profile.
                # - "other" - Other.
            "primary": True or False, # If "true", this URL is the person's primary URL.
            "value": "A String", # The URL value.
          },
        ],
        "ageRange": { # The age range of the person.
          "max": 42, # The age range's upper bound, if any.
          "min": 42, # The age range's lower bound, if any.
        },
      },
    ],
    "etag": "A String", # ETag of this response for caching purposes.
    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
    "selfLink": "A String", # Link to this resource.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listByActivity_next">listByActivity_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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="search">search(query, pageToken=None, language=None, maxResults=None)</code>
  <pre>Search all public profiles.

Args:
  query: string, Specify a query string for full text search of public text in all profiles. (required)
  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token can be of any length.
  language: string, Specify the preferred language to search with. See search language codes for available values.
  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
    "title": "A String", # The title of this collection of people.
    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
      {
        "braggingRights": "A String", # The "bragging rights" line of this person.
        "image": { # The representation of the person's profile photo.
          "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
        },
        "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
        "id": "A String", # The ID of this person.
        "objectType": "A String", # Type of person within Google+. Possible values are:
            # - "person" - represents an actual person.
            # - "page" - represents a page.
        "verified": True or False, # Whether the person or Google+ Page has been verified.
        "tagline": "A String", # The brief description (tagline) of this person.
        "currentLocation": "A String", # The current location for this person.
        "etag": "A String", # ETag of this response for caching purposes.
        "circledByCount": 42, # If a Google+ Page and for followers who are visible, the number of people who have added this page to a circle.
        "relationshipStatus": "A String", # The person's relationship status. Possible values are:
            # - "single" - Person is single.
            # - "in_a_relationship" - Person is in a relationship.
            # - "engaged" - Person is engaged.
            # - "married" - Person is married.
            # - "its_complicated" - The relationship is complicated.
            # - "open_relationship" - Person is in an open relationship.
            # - "widowed" - Person is widowed.
            # - "in_domestic_partnership" - Person is in a domestic partnership.
            # - "in_civil_union" - Person is in a civil union.
        "aboutMe": "A String", # A short biography for this person.
        "placesLived": [ # A list of places where this person has lived.
          {
            "primary": True or False, # If "true", this place of residence is this person's primary residence.
            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
          },
        ],
        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
        "nickname": "A String", # The nickname of this person.
        "emails": [ # A list of email addresses that this person has set to public on their Google+ profile. You can also use the userinfo.email scope to retrieve an authenticated user's email address.
          {
            "type": "A String", # The type of address. Possible values are:
                # - "home" - Home email address.
                # - "work" - Work email address.
                # - "other" - Other.
            "primary": True or False, # If "true", indicates this email address is the person's primary one.
            "value": "A String", # The email address.
          },
        ],
        "organizations": [ # A list of current or past organizations with which this person is associated.
          {
            "startDate": "A String", # The date the person joined this organization.
            "endDate": "A String", # The date the person left this organization.
            "description": "A String", # A short description of the person's role in this organization. Deprecated.
            "title": "A String", # The person's job title or role within the organization.
            "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
            "location": "A String", # The location of this organization. Deprecated.
            "department": "A String", # The department within the organization. Deprecated.
            "type": "A String", # The type of organization. Possible values are:
                # - "work" - Work.
                # - "school" - School.
            "name": "A String", # The name of the organization.
          },
        ],
        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
        "displayName": "A String", # The name of this person, suitable for display.
        "name": { # An object representation of the individual components of a person's name.
          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
          "middleName": "A String", # The middle name of this person.
          "familyName": "A String", # The family name (last name) of this person.
          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
          "givenName": "A String", # The given name (first name) of this person.
          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
        },
        "language": "A String", # The user's preferred language for rendering.
        "url": "A String", # The URL of this person's profile.
        "gender": "A String", # The person's gender. Possible values are:
            # - "male" - Male gender.
            # - "female" - Female gender.
            # - "other" - Other.
        "cover": { # The cover photo content.
          "layout": "A String", # The layout of the cover art. Possible values are:
              # - "banner" - One large image banner.
          "coverInfo": { # Extra information about the cover photo.
            "leftImageOffset": 42, # The difference between the left position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
            "topImageOffset": 42, # The difference between the top position of the image cover and the actual displayed cover image. Only valid for BANNER layout.
          },
          "coverPhoto": { # The person's primary cover image.
            "url": "A String", # The url to the image.
            "width": 42, # The width to the image.
            "height": 42, # The height to the image.
          },
        },
        "isPlusUser": True or False, # Whether this user has signed up for Google+.
        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'ed this page.
        "urls": [ # A list of URLs for this person.
          {
            "type": "A String", # The type of URL. Possible values are:
                # - "home" - URL for home.
                # - "work" - URL for work.
                # - "blog" - URL for blog.
                # - "profile" - URL for profile.
                # - "other" - Other.
            "primary": True or False, # If "true", this URL is the person's primary URL.
            "value": "A String", # The URL value.
          },
        ],
        "ageRange": { # The age range of the person.
          "max": 42, # The age range's upper bound, if any.
          "min": 42, # The age range's lower bound, if any.
        },
      },
    ],
    "etag": "A String", # ETag of this response for caching purposes.
    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
    "selfLink": "A String", # Link to this resource.
  }</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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>