Send feedback
Usage limits
Stay organized with collections
Save and categorize content based on your preferences.
The Gmail API is subject to usage limits which restrict the rate at which
methods of the API can be called. Limits are defined in terms of quota
units , an abstract unit of measurement representing
Gmail resource usage. There are two usage limits which are applied
simultaneously: a per project usage limit and a per user usage limit. The
following table details these usage limits:
Usage limit type
Limit
Exceeded reason
Per project rate limit
1,200,000 quota units per minute
rateLimitExceeded
Per user rate limit
15,000 quota units per user per minute
userRateLimitExceeded
Note: For information on handling limit errors, refer to Resolve
errors .
Per-method quota usage
The number of quota units consumed by a request varies depending on the method
called. The following table outlines the per-method quota unit usage:
Method
Quota Units
drafts.create
10
drafts.delete
10
drafts.get
5
drafts.list
5
drafts.send
100
drafts.update
15
getProfile
1
history.list
2
labels.create
5
labels.delete
5
labels.get
1
labels.list
1
labels.update
5
messages.attachments.get
5
messages.batchDelete
50
messages.batchModify
50
messages.delete
10
messages.get
5
messages.import
25
messages.insert
25
messages.list
5
messages.modify
5
messages.send
100
messages.trash
5
messages.untrash
5
settings.delegates.create
100
settings.delegates.delete
5
settings.delegates.get
1
settings.delegates.list
1
settings.filters.create
5
settings.filters.delete
5
settings.filters.get
1
settings.filters.list
1
settings.forwardingAddresses.create
100
settings.forwardingAddresses.delete
5
settings.forwardingAddresses.get
1
settings.forwardingAddresses.list
1
settings.getAutoForwarding
1
settings.getImap
1
settings.getPop
1
settings.getVacation
1
settings.sendAs.create
100
settings.sendAs.delete
5
settings.sendAs.get
1
settings.sendAs.list
1
settings.sendAs.update
100
settings.sendAs.verify
100
settings.updateAutoForwarding
5
settings.updateImap
5
settings.updatePop
100
settings.updateVacation
5
stop
50
threads.delete
20
threads.get
10
threads.list
10
threads.modify
10
threads.trash
10
threads.untrash
10
watch
100
Send feedback
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-08-04 UTC.
Need to tell us more?
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["The Gmail API is subject to usage limits which restrict the rate at which\nmethods of the API can be called. Limits are defined in terms of [quota\nunits](#per-method_quota_usage), an abstract unit of measurement representing\nGmail resource usage. There are two usage limits which are applied\nsimultaneously: a per project usage limit and a per user usage limit. The\nfollowing table details these usage limits:\n\n| Usage limit type | Limit | Exceeded reason |\n|------------------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|\n| Per project rate limit | 1,200,000 quota units per minute | [rateLimitExceeded](https://developers.google.com/workspace/gmail/api/guides/handle-errors#resolve_a_403_error_rate_limit_exceeded) |\n| Per user rate limit | 15,000 quota units per user per minute | [userRateLimitExceeded](https://developers.google.com/workspace/gmail/api/guides/handle-errors#resolve_a_403_error_user_rate_limit_exceeded) |\n\n| **Note:** For information on handling limit errors, refer to [Resolve\n| errors](/workspace/gmail/api/guides/handle-errors).\n\nPer-method quota usage\n\nThe number of quota units consumed by a request varies depending on the method\ncalled. The following table outlines the per-method quota unit usage:\n\n| Method | Quota Units |\n|---------------------------------------|-------------|\n| `drafts.create` | 10 |\n| `drafts.delete` | 10 |\n| `drafts.get` | 5 |\n| `drafts.list` | 5 |\n| `drafts.send` | 100 |\n| `drafts.update` | 15 |\n| `getProfile` | 1 |\n| `history.list` | 2 |\n| `labels.create` | 5 |\n| `labels.delete` | 5 |\n| `labels.get` | 1 |\n| `labels.list` | 1 |\n| `labels.update` | 5 |\n| `messages.attachments.get` | 5 |\n| `messages.batchDelete` | 50 |\n| `messages.delete` | 10 |\n| `messages.get` | 5 |\n| `messages.import` | 25 |\n| `messages.insert` | 25 |\n| `messages.list` | 5 |\n| `messages.modify` | 5 |\n| `messages.send` | 100 |\n| `messages.trash` | 5 |\n| `messages.untrash` | 5 |\n| `settings.delegates.create` | 100 |\n| `settings.delegates.delete` | 5 |\n| `settings.delegates.get` | 1 |\n| `settings.delegates.list` | 1 |\n| `settings.filters.create` | 5 |\n| `settings.filters.delete` | 5 |\n| `settings.filters.get` | 1 |\n| `settings.filters.list` | 1 |\n| `settings.forwardingAddresses.create` | 100 |\n| `settings.forwardingAddresses.delete` | 5 |\n| `settings.forwardingAddresses.get` | 1 |\n| `settings.forwardingAddresses.list` | 1 |\n| `settings.getAutoForwarding` | 1 |\n| `settings.getImap` | 1 |\n| `settings.getPop` | 1 |\n| `settings.getVacation` | 1 |\n| `settings.sendAs.create` | 100 |\n| `settings.sendAs.delete` | 5 |\n| `settings.sendAs.get` | 1 |\n| `settings.sendAs.list` | 1 |\n| `settings.sendAs.update` | 100 |\n| `settings.sendAs.verify` | 100 |\n| `settings.updateAutoForwarding` | 5 |\n| `settings.updateImap` | 5 |\n| `settings.updatePop` | 100 |\n| `settings.updateVacation` | 5 |\n| `stop` | 50 |\n| `threads.delete` | 20 |\n| `threads.get` | 10 |\n| `threads.list` | 10 |\n| `threads.modify` | 10 |\n| `threads.trash` | 10 |\n| `threads.untrash` | 10 |\n| `watch` | 100 |"]]