Gmail API . users . history

Instance Methods

list(userId, pageToken=None, labelId=None, historyTypes=None, startHistoryId=None, maxResults=None, x__xgafv=None)

Lists the history of all changes to the given mailbox. History results are

list_next(previous_request, previous_response)

Retrieves the next page of results.

Method Details

list(userId, pageToken=None, labelId=None, historyTypes=None, startHistoryId=None, maxResults=None, x__xgafv=None)
Lists the history of all changes to the given mailbox. History results are
returned in chronological order (increasing `historyId`).

Args:
  userId: string, The user's email address. The special value `me`
can be used to indicate the authenticated user. (required)
  pageToken: string, Page token to retrieve a specific page of results in the list.
  labelId: string, Only return messages with a label matching the ID.
  historyTypes: string, History types to be returned by the function (repeated)
  startHistoryId: string, Required. Returns history records after the specified
`startHistoryId`. The supplied `startHistoryId`
should be obtained from the `historyId` of a message, thread, or
previous `list` response. History IDs increase
chronologically but are not contiguous with random gaps in between valid
IDs. Supplying an invalid or out of date `startHistoryId`
typically returns an `HTTP 404` error code. A
`historyId` is typically valid for at least a week, but in some
rare circumstances may be valid for only a few hours. If you receive an
`HTTP 404` error response, your  application should perform a
full sync. If you receive no `nextPageToken` in the response,
there are no updates to retrieve and you can store the returned
`historyId` for a future request.
  maxResults: integer, The maximum number of history records to return.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "history": [ # List of history records.  Any `messages` contained in the
        # response will typically only have `id` and
        # `threadId` fields populated.
      { # A record of a change to the user's mailbox. Each history change may affect
          # multiple messages in multiple ways.
        "messages": [ # List of messages changed in this history record.  The fields for specific
            # change types, such as `messagesAdded` may duplicate messages in
            # this field.  We recommend using the specific change-type fields instead
            # of this.
          { # An email message.
            "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                # a thread, the following criteria must be met:
                # <ol><li>The requested `threadId` must be specified on the
                # `Message` or `Draft.Message` you supply with your
                # request.</li>
                # <li>The `References` and `In-Reply-To` headers must
                # be set in compliance with the
                # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                # <li>The `Subject` headers must match.
                # @mutable gmail.users.messages.insert gmail.users.messages.send
                # @mutable gmail.users.drafts.create gmail.users.drafts.update
            "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                # ordering in the inbox.  For normal SMTP-received email, this represents the
                # time the message was originally accepted by Google, which is more reliable
                # than the `Date` header. However, for API-migrated mail, it can
                # be configured by client to be based on the `Date` header.
            "id": "A String", # The immutable ID of the message.
            "sizeEstimate": 42, # Estimated size in bytes of the message.
            "payload": { # A single MIME message part. # The parsed email structure in the message parts.
              "mimeType": "A String", # The MIME type of the message part.
              "parts": [ # The child MIME message parts of this part. This only applies to container
                  # MIME message parts, for example `multipart/*`. For non-
                  # container MIME message part types, such as `text/plain`, this
                  # field is empty. For more information, see
                  # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                # Object with schema name: MessagePart
              ],
              "headers": [ # List of headers on this message part. For the top-level message part,
                  # representing the entire message payload, it will contain the standard
                  # RFC 2822 email headers such as `To`, `From`, and
                  # `Subject`.
                {
                  "name": "A String", # The name of the header before the `:` separator. For
                      # example, `To`.
                  "value": "A String", # The value of the header after the `:` separator. For example,
                      # `someuser@example.com`.
                },
              ],
              "filename": "A String", # The filename of the attachment. Only present if this message part
                  # represents an attachment.
              "partId": "A String", # The immutable ID of the message part.
              "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                  # container MIME message parts.
                "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                    # retrieved in a separate `messages.attachments.get` request.
                    # When not present, the entire content of the message part body is
                    # contained in the data field.
                "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                    # May be empty for MIME container
                    # types that have no message body or when the body data is sent as a
                    # separate attachment. An attachment ID is present if the body data is
                    # contained in a separate attachment.
              },
            },
            "historyId": "A String", # The ID of the last history record that modified this message.
            "snippet": "A String", # A short part of the message text.
            "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                # encoded string. Returned in `messages.get` and
                # `drafts.get` responses when the `format=RAW`
                # parameter is supplied.
                # @mutable gmail.users.messages.insert gmail.users.messages.send
                # @mutable gmail.users.drafts.create gmail.users.drafts.update
            "labelIds": [ # List of IDs of labels applied to this message.
                # @mutable gmail.users.messages.insert gmail.users.messages.modify
              "A String",
            ],
          },
        ],
        "labelsRemoved": [ # Labels removed from messages in this history record.
          {
            "message": { # An email message.
              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                  # a thread, the following criteria must be met:
                  # <ol><li>The requested `threadId` must be specified on the
                  # `Message` or `Draft.Message` you supply with your
                  # request.</li>
                  # <li>The `References` and `In-Reply-To` headers must
                  # be set in compliance with the
                  # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                  # <li>The `Subject` headers must match.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                  # ordering in the inbox.  For normal SMTP-received email, this represents the
                  # time the message was originally accepted by Google, which is more reliable
                  # than the `Date` header. However, for API-migrated mail, it can
                  # be configured by client to be based on the `Date` header.
              "id": "A String", # The immutable ID of the message.
              "sizeEstimate": 42, # Estimated size in bytes of the message.
              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
                "mimeType": "A String", # The MIME type of the message part.
                "parts": [ # The child MIME message parts of this part. This only applies to container
                    # MIME message parts, for example `multipart/*`. For non-
                    # container MIME message part types, such as `text/plain`, this
                    # field is empty. For more information, see
                    # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                  # Object with schema name: MessagePart
                ],
                "headers": [ # List of headers on this message part. For the top-level message part,
                    # representing the entire message payload, it will contain the standard
                    # RFC 2822 email headers such as `To`, `From`, and
                    # `Subject`.
                  {
                    "name": "A String", # The name of the header before the `:` separator. For
                        # example, `To`.
                    "value": "A String", # The value of the header after the `:` separator. For example,
                        # `someuser@example.com`.
                  },
                ],
                "filename": "A String", # The filename of the attachment. Only present if this message part
                    # represents an attachment.
                "partId": "A String", # The immutable ID of the message part.
                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                    # container MIME message parts.
                  "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                      # retrieved in a separate `messages.attachments.get` request.
                      # When not present, the entire content of the message part body is
                      # contained in the data field.
                  "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                      # May be empty for MIME container
                      # types that have no message body or when the body data is sent as a
                      # separate attachment. An attachment ID is present if the body data is
                      # contained in a separate attachment.
                },
              },
              "historyId": "A String", # The ID of the last history record that modified this message.
              "snippet": "A String", # A short part of the message text.
              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                  # encoded string. Returned in `messages.get` and
                  # `drafts.get` responses when the `format=RAW`
                  # parameter is supplied.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "labelIds": [ # List of IDs of labels applied to this message.
                  # @mutable gmail.users.messages.insert gmail.users.messages.modify
                "A String",
              ],
            },
            "labelIds": [ # Label IDs removed from the message.
              "A String",
            ],
          },
        ],
        "messagesAdded": [ # Messages added to the mailbox in this history record.
          {
            "message": { # An email message.
              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                  # a thread, the following criteria must be met:
                  # <ol><li>The requested `threadId` must be specified on the
                  # `Message` or `Draft.Message` you supply with your
                  # request.</li>
                  # <li>The `References` and `In-Reply-To` headers must
                  # be set in compliance with the
                  # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                  # <li>The `Subject` headers must match.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                  # ordering in the inbox.  For normal SMTP-received email, this represents the
                  # time the message was originally accepted by Google, which is more reliable
                  # than the `Date` header. However, for API-migrated mail, it can
                  # be configured by client to be based on the `Date` header.
              "id": "A String", # The immutable ID of the message.
              "sizeEstimate": 42, # Estimated size in bytes of the message.
              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
                "mimeType": "A String", # The MIME type of the message part.
                "parts": [ # The child MIME message parts of this part. This only applies to container
                    # MIME message parts, for example `multipart/*`. For non-
                    # container MIME message part types, such as `text/plain`, this
                    # field is empty. For more information, see
                    # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                  # Object with schema name: MessagePart
                ],
                "headers": [ # List of headers on this message part. For the top-level message part,
                    # representing the entire message payload, it will contain the standard
                    # RFC 2822 email headers such as `To`, `From`, and
                    # `Subject`.
                  {
                    "name": "A String", # The name of the header before the `:` separator. For
                        # example, `To`.
                    "value": "A String", # The value of the header after the `:` separator. For example,
                        # `someuser@example.com`.
                  },
                ],
                "filename": "A String", # The filename of the attachment. Only present if this message part
                    # represents an attachment.
                "partId": "A String", # The immutable ID of the message part.
                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                    # container MIME message parts.
                  "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                      # retrieved in a separate `messages.attachments.get` request.
                      # When not present, the entire content of the message part body is
                      # contained in the data field.
                  "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                      # May be empty for MIME container
                      # types that have no message body or when the body data is sent as a
                      # separate attachment. An attachment ID is present if the body data is
                      # contained in a separate attachment.
                },
              },
              "historyId": "A String", # The ID of the last history record that modified this message.
              "snippet": "A String", # A short part of the message text.
              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                  # encoded string. Returned in `messages.get` and
                  # `drafts.get` responses when the `format=RAW`
                  # parameter is supplied.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "labelIds": [ # List of IDs of labels applied to this message.
                  # @mutable gmail.users.messages.insert gmail.users.messages.modify
                "A String",
              ],
            },
          },
        ],
        "messagesDeleted": [ # Messages deleted (not Trashed) from the mailbox in this history record.
          {
            "message": { # An email message.
              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                  # a thread, the following criteria must be met:
                  # <ol><li>The requested `threadId` must be specified on the
                  # `Message` or `Draft.Message` you supply with your
                  # request.</li>
                  # <li>The `References` and `In-Reply-To` headers must
                  # be set in compliance with the
                  # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                  # <li>The `Subject` headers must match.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                  # ordering in the inbox.  For normal SMTP-received email, this represents the
                  # time the message was originally accepted by Google, which is more reliable
                  # than the `Date` header. However, for API-migrated mail, it can
                  # be configured by client to be based on the `Date` header.
              "id": "A String", # The immutable ID of the message.
              "sizeEstimate": 42, # Estimated size in bytes of the message.
              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
                "mimeType": "A String", # The MIME type of the message part.
                "parts": [ # The child MIME message parts of this part. This only applies to container
                    # MIME message parts, for example `multipart/*`. For non-
                    # container MIME message part types, such as `text/plain`, this
                    # field is empty. For more information, see
                    # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                  # Object with schema name: MessagePart
                ],
                "headers": [ # List of headers on this message part. For the top-level message part,
                    # representing the entire message payload, it will contain the standard
                    # RFC 2822 email headers such as `To`, `From`, and
                    # `Subject`.
                  {
                    "name": "A String", # The name of the header before the `:` separator. For
                        # example, `To`.
                    "value": "A String", # The value of the header after the `:` separator. For example,
                        # `someuser@example.com`.
                  },
                ],
                "filename": "A String", # The filename of the attachment. Only present if this message part
                    # represents an attachment.
                "partId": "A String", # The immutable ID of the message part.
                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                    # container MIME message parts.
                  "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                      # retrieved in a separate `messages.attachments.get` request.
                      # When not present, the entire content of the message part body is
                      # contained in the data field.
                  "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                      # May be empty for MIME container
                      # types that have no message body or when the body data is sent as a
                      # separate attachment. An attachment ID is present if the body data is
                      # contained in a separate attachment.
                },
              },
              "historyId": "A String", # The ID of the last history record that modified this message.
              "snippet": "A String", # A short part of the message text.
              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                  # encoded string. Returned in `messages.get` and
                  # `drafts.get` responses when the `format=RAW`
                  # parameter is supplied.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "labelIds": [ # List of IDs of labels applied to this message.
                  # @mutable gmail.users.messages.insert gmail.users.messages.modify
                "A String",
              ],
            },
          },
        ],
        "labelsAdded": [ # Labels added to messages in this history record.
          {
            "message": { # An email message.
              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                  # a thread, the following criteria must be met:
                  # <ol><li>The requested `threadId` must be specified on the
                  # `Message` or `Draft.Message` you supply with your
                  # request.</li>
                  # <li>The `References` and `In-Reply-To` headers must
                  # be set in compliance with the
                  # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                  # <li>The `Subject` headers must match.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                  # ordering in the inbox.  For normal SMTP-received email, this represents the
                  # time the message was originally accepted by Google, which is more reliable
                  # than the `Date` header. However, for API-migrated mail, it can
                  # be configured by client to be based on the `Date` header.
              "id": "A String", # The immutable ID of the message.
              "sizeEstimate": 42, # Estimated size in bytes of the message.
              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
                "mimeType": "A String", # The MIME type of the message part.
                "parts": [ # The child MIME message parts of this part. This only applies to container
                    # MIME message parts, for example `multipart/*`. For non-
                    # container MIME message part types, such as `text/plain`, this
                    # field is empty. For more information, see
                    # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                  # Object with schema name: MessagePart
                ],
                "headers": [ # List of headers on this message part. For the top-level message part,
                    # representing the entire message payload, it will contain the standard
                    # RFC 2822 email headers such as `To`, `From`, and
                    # `Subject`.
                  {
                    "name": "A String", # The name of the header before the `:` separator. For
                        # example, `To`.
                    "value": "A String", # The value of the header after the `:` separator. For example,
                        # `someuser@example.com`.
                  },
                ],
                "filename": "A String", # The filename of the attachment. Only present if this message part
                    # represents an attachment.
                "partId": "A String", # The immutable ID of the message part.
                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                    # container MIME message parts.
                  "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                      # retrieved in a separate `messages.attachments.get` request.
                      # When not present, the entire content of the message part body is
                      # contained in the data field.
                  "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                      # May be empty for MIME container
                      # types that have no message body or when the body data is sent as a
                      # separate attachment. An attachment ID is present if the body data is
                      # contained in a separate attachment.
                },
              },
              "historyId": "A String", # The ID of the last history record that modified this message.
              "snippet": "A String", # A short part of the message text.
              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                  # encoded string. Returned in `messages.get` and
                  # `drafts.get` responses when the `format=RAW`
                  # parameter is supplied.
                  # @mutable gmail.users.messages.insert gmail.users.messages.send
                  # @mutable gmail.users.drafts.create gmail.users.drafts.update
              "labelIds": [ # List of IDs of labels applied to this message.
                  # @mutable gmail.users.messages.insert gmail.users.messages.modify
                "A String",
              ],
            },
            "labelIds": [ # Label IDs added to the message.
              "A String",
            ],
          },
        ],
        "id": "A String", # The mailbox sequence ID.
      },
    ],
    "historyId": "A String", # The ID of the mailbox's current history record.
    "nextPageToken": "A String", # Page token to retrieve the next page of results in the list.
  }
list_next(previous_request, previous_response)
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.