Can Google Calendar API be used to create scalable scheduling service? - google-api

I need to create a scheduler for my own SaaS, and I'm trying to understand whether Google Calendar API is a fit for that. Basically I could have hundreds of thousands of calendars. Each calendar may be a user of my service, but not a Google user. It seems that perhaps I could use resource calendars under my Google Cloud service account. My biggest concern is whether my usage will fall within the Calendar API's service quotas, either automatically or by requesting a quota increase?

Yes service accounts will fall within quota usage limits. There is also a limit about creating more then 25 calendars in a day causing the user to end up in read mode for the rest of the day.
pricing
Google Calendar API Usage Limits
The Google Calendar API has a courtesy limit of 1,000,000 queries per day.
To view or change usage limits for your project, or to request an increase to your quota, do the following:
If you don't already have a billing account for your project, then create one.
Visit the Enabled APIs page of the API library in the API Console, and select an API from the list.
To view and change quota-related settings, select Quotas. To view usage statistics, select Usage.

On the one hand, you could work around the quota issues by sharding your users across multiple Service Accounts. You would probably also want to shard them across multiple App IDs.
On the other hand, don't do it. In my experience, using Google APIs outside their intended use case doesn't end well.

Related

Google Calendar API - 403 User Rate Limit Exceeded

We have a (verified) application integration with Google Calendar API.
For most of our users, it works perfectly fine. However, we have one particular user account that attempts to synchronize our application's calendar with their Google Calendar. The sync fails with the following message sent back to us via our Google libraries:
Could not sync events to Google Calendar:\nError calling POST https://www.googleapis.com/calendar/v3/calendars/REMOVED/events: (403) Rate Limit Exceeded
This corresponds to the documentation on usage limits.
We have already raised the per-user quota in the development console twice, and neither time did Google's developer console indicate our users were approaching anywhere near to the number of requests that would have led to an issue; we have bumped it significantly anyway.
The other suggestion on this page is the following:
If one user is making a lot of requests on behalf of many users of a G Suite domain, consider a Service Account with authority delegation (setting the quotaUser parameter).
Most of users likely do not have a GSuite domain, so this option is off the table.
Are there any other suggestions for how to handle this situation? Is there anything we can look at to resolve this issue for this user? Would using backoff necessarily resolve this situation? We are uncertain if this user's limit is only for their Google Calendar integration with our software, or if it's possible it relates to other Google services the user might utilizing (in which case backoff on our end would not make a difference). How can we determine the best course of action on this issue?

Are service accounts considered as users in Google Sheets API v4 usage limits?

According to the Google Sheets documentation there are Usage Limits applicable:
500 requests per 100 seconds per project
100 requests per 100 second per user
Limits for reads and writes are tracked separately
I want to access a spreadsheet from an App Engine app using the Sheets API, but I wonder how the usage limits are applied to service-accounts.
In Cloud Console IAM of the corresponding project, a service-account is created for the app.
The Google spreadsheet is shared with the email address of the service-account (with edit permission).
Code in the app uses service-account from JSON file to authenticate successfully to the Sheets API. No user delegation included.
App can successfully write to the spreadsheet with the service-account credentials.
Since these requests are done only with service-account credentials and with no user credentials, I wonder if a service-account in this context is considered as a "user" or just as the project (of the app).
Question:
Is the per user limit applicable, i.e. app would be limited to 100 write requests per 100 seconds. Or are these requests only counted against the per project limit, i.e. app could issue up to 500 write requests per 100 seconds?
A service account is a user it has its own Google drive account actually. You shared the sheet with its email address like you would with any other user.
Using a service account is exactly like running as a normal user account the same quota limitations apply.
There is a parameter called quota user which can be used to extend the quote but it doesn't work perfectly from behind the same ip address

Google Places API - quota increase (1000 to 150 000) only available for businesses?

I recently started an internship concerning Master Data Management in Talend. Part of the Master Data Management proces involves the cleansing of data. In my case I have to cleanse a few addresses. After doing some research I bumped into the Google Places API, which would do the trick for me. At first I wasn't aware of the so called quota limits that are bound to this API so I decided to read up on it some more. Basicly I have quite a few addresses to cleanse, so the 1000 requests per day limit won't cut it. As of yesterday I decided to increase that limit to 150 000 requests by verifying my identity using my creditcard. The requests were indeed increased to 150 000 but after a few hours my billing account was closed without warning and the limit went back to 1000 requests.
My question is: is the increase of the quota limit only available for businesses or are individual users eligible for it too?
I basicly filled in my own name as the name of the business when I created the billing account for my own project. That billing account is closed now. I really need that quota increase to be able to finish my project so I'm wondering if you guys are able to enlighten me. The image below is part of the form which has to be filled in to create a billing account.
for this amount of quota you have to identify yourself through your credit card and thats it. you can use this key for personal use or business does not matter . as the whole app has that much of search quota. no matter how many people install that app.
so the answer is it is eligible for individual users too.
thank you
You may have different terms in your country. We don't have VAT in the US, although we do have state-specific sales tax on some goods and services. I suspect that Google cannot offer this service in your country without a business tracking the VAT for it. I use the Google Search API with Custom Search Engines on both personal and business accounts from the US with just CC validation. You might look to see if there are Google services resellers local to you who can offer you the Place API.

Is it possible to configure alerts for exceeding google API quotas?

I've been using the Google Cloud Console to manage API keys and settings. Some of the keys will be for commercially released products, so obviously we need to keep track of our API call quota.
Is it possible to set up alerts (email or otherwise) for nearing or exceeding the quota? We would prefer not to wait until a support request comes in, or try to remember to check the console every day.

Google place API pricing and queries uplift request

Regarding the usage of Google Place API, Google allows 1000 queries per 24 hour for this Place API, and 100,000 queries per 24 hour if the account is verified with a credit card. Exceeding 100,000 queries per 24 hour, we can write to Google to request for an uplift.
Does anyone have any experience with lifting the limits for the queries of Place API?
And if you didn't get approved, what is the Google's pricing model for exceeding usage of the queries?
Thanks
There is currently no pricing model for Places API as it is a free service. If you exceed your usage you will simply receive "status": "OVER_QUERY_LIMIT" in response to any subsequent Places API requests. Even if billing is enabled, you will not be charged for the use of the Places API.
If you apply for a Places API Quota Uplift, as long as your application meets the Google Maps Terms of Service and Places API Requirements, you should receive an uplift in quota.

Resources