How does Gmail API quota work at user level? - gmail-api

I've searched for this topic, but I haven't found a good explanation of the moving average part.
https://developers.google.com/gmail/api/v1/reference/quota explains how Gmail quota works. It says the following
250 quota units per user per second, moving average (allows short bursts)
Gmail API message.get costs 5 quotas. Does that mean that I can only make 50 (250/5) message.get requests per second?
How does moving average work with the rate limit and when does it allow short bursts?

Related

Further explanations on YouTube API quota: eg. does `search?maxResults` add up?

So, i'm a bit confused how youtube API queries impact on quota. They all lay out on a "composition" aspec of requisitions:
The Quota calculator show the cost of various resources.
For example search.list = 100 and videos.list = 1.
One aspect of it is not clear to me though. How it calculates on a 'multi-results' single request?
query
quota doubt
/search?maxResults=10
is it one 100 quota, or ten 100 (1000) quotas?
/videos?id=A,B
is it one quota, or two quotas?
/video?part=A,B
is this adding two quotas? (each video??) Since no ?part= returns only id related data
/...?fields=A,B(C)
is fields query impacting the request quota anyhow?
I first thought it was really straightforward: 1 call, 1 quota "package". And that seemed to be supported by this calculator's quote:
If your application calls a method, such as search.list, that returns multiple pages of results, each request to retrieve an additional page of results incurs the estimated quota cost.
But while developing a simple video list, my daily quota blew up pretty damn fast. So not sure anymore.
Every time you call the method in question you incure the quota cost
For example:
search.list 100
WHen you call search.list it costs 100 if you call it again to get the next page of results it will cost you another 100 points.
Ig we check this one where you are trying to get back two videos.
/videos?id=A,B
The same is true it will be a single request to the server so the quota cost will be one.
Fields does not effect it. Its just the request you make. Batching will also not save you from quota cost. If you batch these requests you will be charged for each of the quests within the back.
Intro to YouTube API and cost based quota for beginners
A lot of this information is on the Quota cost page.
The table below shows the quota cost for calling each API method. All API requests, including invalid requests, incur a quota cost of at least one point.
If your application calls a method, such as search.list, that returns multiple pages of results, each request to retrieve an additional page of results incurs the estimated quota cost.

"Daily Usage" Quota is a per-project limit?

I have a question about Gmail API limit.
About "Daily Usage" Quota of the URL below, Is this a per-project limit?
Is there a way to relax this limitation?
https://developers.google.com/gmail/api/v1/reference/quota
We currently develop services using the Gmail API for multiple Bussiness companies.
There is concern that it will exceed when the assumed total number of users becomes large, and I am asking such a question.
Is it possible to create different project for each customer and avoid the limit?
In that case, do I have to apply "OAuth Developer Verification" for each project?
https://support.google.com/code/contact/oauth_app_verification
Understanding the quotas can be a little hard. The way i remember is if the name has user in it its a user quota
This one is project based.
Daily Usage 1,000,000,000 quota units per day
This one is user based.
Per User Rate Limit 250 quota units per user per second, moving average (allows short bursts)
Some quotas can be increased you should check the quota section of the google developers console. under Enabled APIs and services click the api in question and go to the quotas tab in the new window. if there is a pencil icon you can increase it.

GAE Channel API - Channels Created Cost

I have a paid app and can see the quota is 90,040 per day for channels created.
I have looked at all the pricing pages from cloud services and developer pricing pages and can not see any prices regarding the cost per channel created after the 100 free limit.
https://cloud.google.com/appengine/docs/quotas#Channel this page only says the daily limit is "Based on your budget" but I do not see any costs anywhere on the web.
Am I to assume that I get 90,040 free per day for having a paid app
As I understand the pricing changed recently and that's why the documentation is a little confusing. It used to be that you paid a tiny amount for each channel (something like 0.0001 - don't remember how many zeroes).
Now this tiny charge is canceled. You are just paying for CPU & bandwidth that your channels are using. That's why it says according to budget.
It's the same story with Email, and various other APIs as mentioned here: https://cloud.google.com/appengine/pricing. I'm fairly sure Channel API should be included in the last row in the resource billing table.
It costs 10,000 micropennies to create a channel (or 100 channels per 1 cent, see appstats for more).
See a more detailed answer to the same question here: https://groups.google.com/forum/#!topic/google-appengine/uQFWM6F--hY

How strict is the Gmail API's per user per second quota?

Google's documentation states that there is a 25 quota unit rate limit per user per second:
https://developers.google.com/gmail/api/v1/reference/quota
My use case for the Gmail API requires downloading a user's entire mailbox and it appears that use case may not be feasible given these quotas. Downloading 10,000 messages would take roughly 33 minutes.
However, that link also states that the limit is a moving average and suggests that it can be exceeded in small bursts. Can that limit be exceeded significantly enough to meet my use case?
You can raise the per-user limit to 50 units/user/second for your project in the developers console. The limit is only applied over a longer moving window, so you can definitely exceed it for a little bit (O(seconds)). If you need more for longer period, you can request more quota.
While not a full answer, here is my experience on migrating from Gmail to Google Apps for work. My 120000+ conversations/ 200000+ messages mailbox ran close to the 15 GB limit, so I decided to professionalize my account.
After almost 2 days I am now at 22 percent of that migration both in terms of numbers as well as Gigabytes. That is about 60 megabytes/hour and 1000 messages/hour.
Fortunately this runs in reverse chronological order.

any number on Google App Engine free quota in terms of total number of request and unique visitors

Does anyone have any number on Google App Engine (free quota) in terms of total number of request and unique visitors it allows per day?
Maybe someone who has live production code can tell us this?
Rough number is enough, just to get the idea.
I can not get this information from the pricing model.
Thanks
I had this question when I first started using App Engine, but it's impossible to answer with the information in your question.
You must have an estimate on the individual API quota usages, then calculate based on that.
You might be able to simplify it by trying to figure out which API quota you're likely to hit first, and then figuring out the number of requests you can serve before that quota runs out. ie:
Storing photos or other large data for users? You'll probably hit the blobstore quota first. Daily/unique visitor counts probably won't matter.
Serving lots of photos or large data? You'll probably hit the bandwidth quota first.
Need to start a channel for every view? You'll probably hit the channel quota first and get 100 views per day.
Need to send an email for every view? You'll probably hit the mail quota first.
Need to query the datastore a lot? You'll probably hit the datastore limit first.
The datastore limit is the hardest to calculate. You get 50k read and 50k write ops. Most likely you'd read more than write.
If you need 2 read ops per page, you might could do 25k views per day.
If you need 2 read ops per page, but you're smart and you memcache them, and memcache is effective 80% of the time, you could get 125k views per day.
If you need 500 read ops per page and you can't cache it, you can do 100 views per day. That's provided you don't run out of one of the other quotas.
Do your own math.
The quotas and rates (for free and paid apps) are listed on https://developers.google.com/appengine/docs/quotas.

Resources