Is there anyone using Spotify Web API on development website can provide any approximate number about request/minute limits of Web API?
I'm using Client Authorization Flow
I've asked same question here: https://community.spotify.com/t5/Ongoing-Issues/Web-Api-Rate-Limit/idc-p/2121577#M54331, but no response given, i'm looking for someone that made some tests.
Thanks all
In a harness I just threw together, I called the individual track api endpoint with different values until it started to complain (the Spotipy Python library backs off and retries after a 429 automatically). Within a minute I was able to call it 600 times. It had to back off after about 270 tries,and 560 tries, but only for a second each time.
I repeated this test, for 1150 calls to the same endpoint, over the course of two minutes, again only having to back off for a second a few times.
At the very least this indicates that Spotify likely doesn't allocate meaningful rate limits on a per minute basis, but it's still possible that there is some kind of daily or hourly limit.
Related
I want to create giveaways which require the participants to follow the twitter account of the giveaway creator.
My first idea was to use the Twitter API (endpoint: "/2/users/:id/followers"). This works fine for me however I always run into rating limits. The API allows me to send 15 requests every 15 minutes and returns a maximum of 1000 users per request. Since many accounts have more then 15000 followers and since many request happen at the same time (many users want to participate in a giveaway) this solution is not suitable for me.
My secound idea was to use web scraping instead (e.g Node Fetch). I was following along this tutoria: However doing so I always run into the issue that Twitter uses random strings to name their html elements. You can see in the picture there is no defined class to grap the elements.
So my main question is how can I access these element ?
Random Follower of my Twitter Account
I also have a follow up question regarding the effictivness of this method. Assuming I have multiple people who want to particpate in a short amount of time (e.g 10 people in 5 minutes) and they all need to follow a big twitter account (e.g 100k followers).
Is it efficent to scrape all 100k followers each time or should I instead try to fetch the 100k followers once, safe them to my database and use my database to check for each user later ?
As a side note, I am using node.js and node-fetch, however I have no problems to switch the framework. In addition I think the grabbing of the element as well as the performance should be universal.
Thanks for your help :)
They're going to detect your servers excessive calls. There is a Twitter Developer Portal where you can request elevated access which may raise the limits for you.
https://developer.twitter.com
I am using youtube data API and I didn't find anything related to the overall daily usage of API limit.
I can check the same on the console and I visited the below link but here I can only calculate the stats from the youtube web portal.
https://developers.google.com/youtube/v3/determine_quota_cost
Is there any means that I can get the overall daily usage of from any API provided by youtube.
Yes. Go to here, click on the menu in the top left corner, IAM & Admin and then Quotas.
Recently I had this requirement too. But then I moved on as it was not a blocker for me.
Alternatively I would suggest keeping track of quota units consumed. You can easily calculate how many quota units are consumed from the chart in the link you provided. You can get the number of quota units left by subtracting the sum of units consumed from 10000 (Current default limit, or any number assigned to your account if you requested for more).
The quota gets reset every midnight PST.
FYI, the api does respond with an HTTP 403 and error code 403 with reason = dailyLimitExceeded. Once you encounter this then you can stop sending out more api calls till midnight.
If you ever get to know of an API endpoint please update this question so that it helps people like us.
I've been working with Google Analytics for 2 months now. I created a custom dashboard with NodeJS (express/serverless), out of it with requesting data from the Core Reporting API and the Real Time Reporting API. I've managed to put it as a Lambda Function on AWS. While I'm very pleased about this, I have some issues I'm facing right now.
I get the following errors:
{
"error":{
"errors":[
{
"domain":"global",
"reason":"dailyLimitExceeded",
"message":"Quota Error: profileId ga:NNNNN has exceeded the daily request limit."
}
],
"code":403,
"message":"Quota Error: profileId ga:NNNNN has exceeded the daily request limit."
}
}
and
{
"error":{
"errors":[
{
"domain":"usageLimits",
"reason":"userRateLimitExceeded",
"message":"User Rate Limit Exceeded"
}
],
"code":403,
"message":"User Rate Limit Exceeded"
}
}
My dashboard looks like this:
When the dashboard get visited, it calls the realtime api 9 times (each block in the image is a querycall). I think I could combine the 'Online users', 'Users today' and 'pageviews today' call into one call. The search today, and orders today are specified by filters for searching for a specific event.
I have a build in a timechecker, which allows the dashboard to be viewed between 07:00 and 19:00. When it's earlier then 07:00 or later then 19:00 a variable checkTime is set to false, which makes the dashboard shows a div with text something like "dashboard offline". When someone has visited the dashboard in the allowed timerange, a variable checkTime is set to true and calls to the Google API's can be made.
The dashboard is running on a tv screen between 07:00 and 19:00. This means that the dashboard is up on a TV screen for 12 hours long. Every 20 seconds there is a function call to update all the data (so again 9 requests are being made).
So let's say there are
60 minutes x 3 = 180 x 12 = 2160 x 9(requests) = 19440 requests for a
day.
I don't think I should reach the 50.000 quota. But I am reaching the profile quota from 10.000.
However when I view the Developers console I can see the following:
I think my options are the following:
Increase the interval to 1 minute ( (60 x 12) x 9 requests each view = 6480), that way the profile quota shouldn't be exceeded. But this doesn't really make the dashboard realtime anymore.
Make a server, which runs the queries(with the increased interval of 1 minute), save the results to a database. The dashboard makes a GET request to the database. This way multiple tv screens should be able to request data.
QUESTION: Could I also make multiple service accounts, and switch to other service account when limit has been reached, or doesn't this fix the profileid limit?
DailylimitExceded can mean one of two things.
You can only make 10000 request against a single view a day. This quota you are sharing with other developers. So if i install your app and Someone elses app in total there can only be made 10000 requests a day against my Google analytics view and then both apps will get that error. If you are making these requests you should be storing the data in the database so that you don't need to request the same information again. Even though its a different user who is trying to view data on the same view. You are probably not going to be able to track this quota hit in the Google Developer console.
The second issue is that by default an application can make a max of 50000 requests a day across all views. That means that if you have 5 users and you are making 10000 requests a day for each of them you have reached the limit of your requests. I dont think this is what you are hitting.
The first quota the user based one there is nothing you can do about that you cant extend it. You need to limit your requests so that you dont block a users account. The second one you can apply for an extension in the Google Developer console it can take a while to get the extension you should apply for it when you have reached around 80% of your current daily quota.
The main thing here is that you should not be requesting the same data twice. If you have made a request you should be saving it and displaying stored data to your users rather than just requesting it again. That and the real time api you should not be trying to request from that more then every 5 minutes as you will be eating our quota.
I have suggested to Google several times that the realtime api should be on its own quota and not the same as the reporting api. I am still waiting for them to add this feature.
We make GET requests to the /users/self/media/recent and /media/media-id/comments
endpoints.
For this we use user authentication with access_token.
According to the rate limit documentation of instagram we should have 5000 requests / access_token / hour available.
logging the number of our requests on average we do about 600 - 800 requests for a user of us but still receive an api limit reached error in the instagram response.
not only that but according to the error we do ~70K request/hour
You have exceeded the maximum number of requests per hour. You have performed a total of 68100 requests in the last hour. Our general maximum limit is set at 5000 requests per hour.
Am I missing something? Only a few customers of us are affected by this problem.
Are the limits per user global and all apps the user uses have to share the 5000 requests / hour? That is the only explanation I can come up with but found no documentation of this behavior.
Post the code, may be you are doing something wrong and its making multiple calls.
The API response header shows how many remaining calls after each API call:
x-ratelimit-limit:5000
x-ratelimit-remaining:4998
check this value after each call from your code and analyze.
I'm posting a comment to a content on Instagram using Instagram API.
My app is registered and approved, so I was supposed to have 60 comments per hour (or at least 30, in case it is still in Sandbox mode).
I keep getting this message:
The maximum number of requests per hour has been exceeded. You
have made 23 requests of the 15 allowed in the last hour
I can't understand where does the 15 request allowed per hour came from.
Couldn't find it anywhere in the documentation as well.
Well, I would suggest you to go to the developer dashboard(MANAGE CLIENTS) page and report this issue. Its an option there. After that wait for a day and then check your mail. You might find a reply from them. As you have transitioned from the sandbox mode to active, the limit should increase and I hope they fix it for you
Just some ToC I found.
Instagram may rate limit or block apps that make a large number of
calls to the API that are not primarily in response to direct user
actions. Details Here
And also here
Display more than 30 Instagram photos or videos per page in your
application or use an unreasonable amount of bandwidth.Found Here
It sounds like they could acutely intent to limit your requests to preserve their bandwidth. 15 requests seems like a reasonable amount, if you contact them with a reason why you'd necessarily require more they might up this limit.
Also interestingly, they can change this if they see fit
Instagram may elect to provide you with support or modifications for
the Instagram APIs (collectively, "Support"), in its sole discretion,
and may terminate such Support at any time without notice to you.
Instagram may change, suspend, or discontinue any aspect of the
Instagram APIs at any time, including the availability of any
Instagram APIs. Instagram may also impose limits on certain features
and services or restrict your access to parts or all of the Instagram
APIs or the Instagram Web site without notice or liability.Details Here
Hope this helps