While syncing contacts using the People API, I've run into a quota limit error which I don't understand and haven't found any information about it on the net. The error is the following:
"error": {
"code": 429,
"message": "Resource has been exhausted (e.g. check quota).",
"status": "RESOURCE_EXHAUSTED",
"details": [
{
"#type": "type.googleapis.com/google.rpc.QuotaFailure",
"violations": [
{
"subject": "QUOTA_EXCEEDED",
"description": "FBS quota limit exceeded."
}
]
}
]
Does anyone have any idea what this error is related to ?
Thanks
I have decided to create an answer from my comment, for future reference.
The error 429 indicates that you maybe violating the google's terms of service (especially under d. API Limitations). To quote it:
d. API Limitations
Google sets and enforces limits on your use of the APIs (e.g. limiting
the number of API requests that you may make or the number of users
you may serve), in our sole discretion. You agree to, and will not
attempt to circumvent, such limitations documented with each API. If
you would like to use any API beyond these limits, you must obtain
Google's express consent (and Google may decline such request or
condition acceptance on your agreement to additional terms and/or
charges for that use). To seek such approval, contact the relevant
Google API team for information (e.g. by using the Google developers
console).
When you made too many calls you were probably put on a blacklist, which expires in some time. The limit for People API. You need to apply for higher quotas.
For example, Google Play Developer API has a 200 000 calls per day, you have to request if you need more.
The google probably wants you to have a good reason to have more and also is protecting from the DDOS attacks.
Related
I am trying to find some specific details on the Github API rate limit.
I have seen many different places suggesting 5000 requests per hour, but I have been limited to 30 according to my response headers.
I have looked at a couple other questions related to github rate limits but haven't found any specifics on them.
I authenticate my requests with OAUTH in the headers.
I recieve Error: Request failed with status code 403 which according to the docs means I'm authenticated.
What I would like to know is:
What are the different rate limits?
Why would I receive 30/hour while someone else may have 5000/hour?
How do I increase it?
You are likely seeing a reduced rate limit because you are not successfully authenticating. You may be providing credentials, but those credentials are not correct, don't have the right scopes, or are otherwise not valid for the resources you're requesting. If you're accessing public information, then you'd get access to that data anyway even without authenticating, so your invalid credentials wouldn't matter but would result in a reduced rate limit.
The reason GitHub provides different rate limits for authenticated and unauthenticated users is to prevent abuse and make it possible to contact users who are engaging in excessive or unacceptable behaviors. For example, if a bot account or OAuth app is causing problems, the maintainer of that service can be contacted, and in an emergency, that account can be prevented from accessing the API until it can be fixed so as not to impact other users.
You can, as the documentation mentions, get an increased rate limit for the API by successfully authenticating. You haven't provided any details about what you're requesting or what scopes you've asked for, so we can't help there; you'll probably want to ask another question with more details. Beyond the limit of 5000 requests, you'd have to ask GitHub Support, although that is a relatively generous limit.
As per the documention of the OneDrive API https://dev.onedrive.com/README.htm, under the Throttling option, "OneDrive has limits in place to make sure that individuals and apps do not adversely affect the experience of other users. When an activity exceeds OneDrive's limits, API requests will be rejected for a period of time. OneDrive may also return a Retry-After header with the number of seconds your app should wait before sending more requests."
So i would like to know what are the limitations that causes the OneDriveApi to reject request
Based on how use the API many requests to it or if you are trying to do something that the user is not info need abt
I wanted to know is it common practice to use a REST API to create GUI?
Let's say we have Facebook or LinkedIn for an example:
When I download their mobile application, the application has a page for me to log into my facebook/LinkedIn account. When the application is loaded does facebook send something like a GET("/login") request to their API which returns something like this to the program. Which then the mobile application decides what to do with this information
{
[
{"username": "string", "opts": []},
{"password": "string", "opts": ["hidden"]}
]
}
I wanted to ask if it's common practice to do this and whether I should build my mobile applications like this or is the application UI programmed without using an API?
I wouldn't say this is common practice. They probably do have a central api which the mobile clients consume, but it's probably data related, with the client UI being just the application's responsability.
I would only envisage such a scenario under extraordinary requirements. For example, say you have some sort of payment api through which various clients can send payment (i.e. card details) regarding transactions. If you want to become PCI compliant, you'd probably need to host this api in a secure cloud location, with all resources and assets having to come from the same place (i.e. payment form, javascript, css etc). It's certainly not natural, to say the least.
I tried to access
https://maps.googleapis.com/maps/api/place/autocomplete/xml?input=Amoeba&types=establishment&location=37.76999,-122.44696&radius=500&sensor=true&key=AIzaSyAqTo6fgd8zK8rVNxvSO8WsEkBxRxd3PIE
I got access denied.
As you can see, I have provided some key API. Maybe I supplied different key
Here is the problem.
I got my key from
https://code.google.com/apis/console/#project:299025262955:services
I enabled all these services
Ad Exchange Buyer API Courtesy limit: 1,000 requests/day
Google Maps API v2 Courtesy limit: 25,000 requests/day • Pricing
Google Maps API v3 Courtesy limit: 25,000 requests/day • Pricing
Google Maps Coordinate API Courtesy limit: 1,000 requests/day
Google Play Android Developer API Courtesy limit: 15,000 requests/day
Google+ API Courtesy limit: 10,000 requests/day
Static Maps API Courtesy limit: 25,000 requests/day • Pricing
Moreover, I read somewhere that google map API 3 does not use key at all to further add confusion.
So, what API key I should have been using anyway? Google API Key? Google Map API Key? Google Map version 3 API key? What?
I access it directly so there is no referrer. Is that the issue? The setting for referrer is:
Referers:
Any referer allowed
I wonder if that includes blank referrer.
It seems the key you specified is wrong.
I swapped the key to mine, then it worked.
You should use the key which appears at "Simple API Access" in "API Access" page.
I found out what the problem is. Google AutoComplete is part of google places instead of google map. So I need to turn on google places feature.
It still sucks though because it doesn't tell me the latitude and longitude of places found.
using google place API may cause charge. you are limited to only 1000 request per day and this will be extended to 25000 per day if you validate a credit card. exeeding this limits will cause you charge or the user will notre receive response from the service. be aware of the details and google policies. good luck
I'm considering to use https://www.googleapis.com/auth/userinfo.email to get hold of the user's email address and I've seen numerous examples on how to do this in both Google's own documentation and other guides on the Internet.
However I have not been able to find any information on what the rate limits are, or if there even are any rate limits for this. The Google APIs Console lists courtesy limits for many different APIs, but nothing is mentioned about the OAuth 2.0 API.
Does anyone know if there are any limits, and if so what they are?
I can say fairly certainty that there are NO LIMITS to any of Google's Authorization API's.
I know this because it does not state ANY LIMITS anywhere within there Authorization API's Terms of Service. In fact, the Terms of Service itself is very bare:
Google Account Authentication APIs Terms of Service
Last modified: April 20, 2012 By using this API, you consent to be
bound by these terms in addition to the Google APIs Terms of Service
("API ToS") at https://developers.google.com/terms. Deprecation Policy
Google will announce if we intend to discontinue or make backwards
incompatible changes to this API or Service. We will use commercially
reasonable efforts to continue to operate the Google Account
Authentication APIs (exclusive of OAuth 2.0) without these changes
until April 20, 2015, unless (as Google determines in its reasonable
good faith judgment):
required by law or third party relationship (including if there is a
change in applicable law or relationship), or doing so could create a
security risk or substantial economic or material technical burden.
This Deprecation Policy doesn't apply to versions, features, and
functionality labeled as "experimental."
After April 20, 2015, this Deprecation Policy will not apply.
If there were to be limits, Google generally would have to put them in there ToS, so I can safely say that there are no limits.
This is an old question, so things have likely changed since the original reply, but Google now has "quota restrictions based on risk level" (whatever that means):
To protect users and Google systems from abuse, applications that use
OAuth and Google Identity have certain quota restrictions based on the
risk level of the OAuth scopes an app uses. These limits include the
following:
A new user authorization rate limit that limits how quickly your
application can get new users.
A total new user cap. To learn more, see the Unverified apps page.
When an application exceeds the rate
limit, Error 403: rate_limit_exceeded is displayed to users
I think there's a limit to the google oauth api endpoints. I was building an browser extension and left a recursive loop while testing. Made too many requests and got this-
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
But this limit seems to be on the end user level. When I query for the information of a different user, i receive the response just fine.