openapi: 3.1.0 info: title: Google Workspace Suite (, Sheets, Slides, ) Docs Gmail API description: Best-effort OpenAPI 3.1 covering the most commonly used REST endpoints across the Google Docs API (docs.googleapis.com), Google Sheets API (sheets.googleapis.com), Google Slides API (slides.googleapis.com), and the Gmail API (gmail.googleapis.com). All services use Google OAuth 2.0 user or service-account credentials. version: v1 servers: - url: https://docs.googleapis.com description: Google Docs API - url: https://sheets.googleapis.com description: Google Sheets API - url: https://slides.googleapis.com description: Google Slides API - url: https://gmail.googleapis.com description: Gmail API security: - googleOAuth: [] tags: - name: Gmail paths: /gmail/v1/users/{userId}/profile: get: tags: - Gmail summary: Get user profile operationId: gmail.users.getProfile servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string default: me responses: '200': description: Profile /gmail/v1/users/{userId}/messages: get: tags: - Gmail summary: List messages operationId: gmail.users.messages.list servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string - in: query name: q schema: type: string - in: query name: maxResults schema: type: integer - in: query name: pageToken schema: type: string - in: query name: labelIds schema: type: array items: type: string responses: '200': description: List of messages /gmail/v1/users/{userId}/messages/{id}: get: tags: - Gmail summary: Get a message operationId: gmail.users.messages.get servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string - in: path name: id required: true schema: type: string - in: query name: format schema: type: string enum: - minimal - full - raw - metadata responses: '200': description: Message /gmail/v1/users/{userId}/messages/send: post: tags: - Gmail summary: Send a message operationId: gmail.users.messages.send servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Message' responses: '200': description: Sent message /gmail/v1/users/{userId}/threads: get: tags: - Gmail summary: List threads operationId: gmail.users.threads.list servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string - in: query name: q schema: type: string responses: '200': description: Threads /gmail/v1/users/{userId}/threads/{id}: get: tags: - Gmail summary: Get a thread operationId: gmail.users.threads.get servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string - in: path name: id required: true schema: type: string responses: '200': description: Thread /gmail/v1/users/{userId}/labels: get: tags: - Gmail summary: List labels operationId: gmail.users.labels.list servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string responses: '200': description: Labels post: tags: - Gmail summary: Create label operationId: gmail.users.labels.create servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Label' responses: '200': description: Label created /gmail/v1/users/{userId}/drafts: get: tags: - Gmail summary: List drafts operationId: gmail.users.drafts.list servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string responses: '200': description: Drafts post: tags: - Gmail summary: Create draft operationId: gmail.users.drafts.create servers: - url: https://gmail.googleapis.com parameters: - in: path name: userId required: true schema: type: string requestBody: required: true content: application/json: schema: type: object properties: message: $ref: '#/components/schemas/Message' responses: '200': description: Draft created components: schemas: Message: type: object properties: id: type: string threadId: type: string labelIds: type: array items: type: string snippet: type: string raw: type: string description: Base64url-encoded RFC 2822 message payload: type: object Label: type: object properties: id: type: string name: type: string type: type: string enum: - system - user labelListVisibility: type: string enum: - labelShow - labelShowIfUnread - labelHide messageListVisibility: type: string enum: - show - hide securitySchemes: googleOAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/documents: Read/write Google Docs https://www.googleapis.com/auth/spreadsheets: Read/write Google Sheets https://www.googleapis.com/auth/presentations: Read/write Google Slides https://www.googleapis.com/auth/gmail.modify: Read/write Gmail (no permanent delete) https://www.googleapis.com/auth/gmail.send: Send mail on behalf of user https://www.googleapis.com/auth/gmail.readonly: Read-only access to Gmail