Method: users.messages.insert
Stay organized with collections
Save and categorize content based on your preferences.
Directly inserts a message into only this user's mailbox similar to IMAP APPEND
, bypassing most scanning and classification. Does not send a message.
HTTP request
- Upload URI, for media upload requests:
POST https://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages
- Metadata URI, for metadata-only requests:
POST https://gmail.googleapis.com/gmail/v1/users/{userId}/messages
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters |
userId |
string
The user's email address. The special value me can be used to indicate the authenticated user.
|
Query parameters
Parameters |
internalDateSource |
enum (InternalDateSource )
Source for Gmail's internal date of the message.
|
deleted |
boolean
Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.
|
Request body
The request body contains an instance of Message
.
Response body
If successful, the response body contains an instance of Message
.
Authorization scopes
Requires one of the following OAuth scopes:
https://mail.google.com/
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.insert
For more information, see the Authorization guide.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-03-24 UTC.
[null,null,["Last updated 2025-03-24 UTC."],[],[],null,["# Method: users.messages.insert\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Query parameters](#body.QUERY_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nDirectly inserts a message into only this user's mailbox similar to `IMAP APPEND`, bypassing most scanning and classification. Does not send a message.\n\n### HTTP request\n\n- Upload URI, for media upload requests: \n `POST https://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages`\n- Metadata URI, for metadata-only requests: \n `POST https://gmail.googleapis.com/gmail/v1/users/{userId}/messages`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------|-----------------------------------------------------------------------------------------------------------|\n| `userId` | `string` The user's email address. The special value `me` can be used to indicate the authenticated user. |\n\n### Query parameters\n\n| Parameters ||\n|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `internalDateSource` | `enum (`[InternalDateSource](/workspace/gmail/api/reference/rest/v1/InternalDateSource)`)` Source for Gmail's internal date of the message. |\n| `deleted` | `boolean` Mark the email as permanently deleted (not TRASH) and only visible in [Google Vault](http://support.google.com/vault/) to a Vault administrator. Only used for Google Workspace accounts. |\n\n### Request body\n\nThe request body contains an instance of [Message](/workspace/gmail/api/reference/rest/v1/users.messages#Message).\n\n### Response body\n\nIf successful, the response body contains an instance of [Message](/workspace/gmail/api/reference/rest/v1/users.messages#Message).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://mail.google.com/`\n- `\n https://www.googleapis.com/auth/gmail.modify`\n- `\n https://www.googleapis.com/auth/gmail.insert`\n\nFor more information, see the [Authorization guide](/workspace/guides/configure-oauth-consent)."]]