API rate limiting issue - instagram

I am always and constantly getting the following error when trying to follow a user via instagram although the 5000 request limit hasn't been exceeded. Why is this?
{"meta":{"error_type":"APIError","code":400,"error_message":"Client request limit reached"}}

While API request with access token is 5000 (any API call), certain API like follow, unfollow, like, comment are limited to 350 an hour.

I had the same problem. In my case I sent post requets from server side (google app engine) and now I am sending post requests from client (with js) and it works well.

It depends on your request. Instagram has a new API limit, 100 likes/hr, 60 follow/unfollow/hr IF you authenticate server side and sign your headers, check out the Instragram authentication for developers.
I'm currently running a website: http://instapromobiz.com that automates likes/follows/unfollows using these restrictions. It works great, check it out.

Related

Sending response to a single request in batch mern

I have like /1000+ users and want to send them in response to a single get request to show these users in admin panel table
Is these any way so that I can return response to a Single request in batch of 100 users per batch
Hi I would have explained more, but it is summarized pretty good here:
Processing Batch REST API requests in NodeJS Express framework
see swateek comment.
If you don't understand comment here and I will help.

More than one call at a time at Softlayer API

I am using Node.js to call the Softlayer API. The problem is, when I make two API call at softlayer client, only the first call gets response objects. Rest face an error. Can anyone help me with the information about how many requests can be processed at a time over SoftLayer API?
The limit is 50 request for second for each user. See:
Is there a rate limit on Softlayer API
What is the 'rate limit' exceeded of SoftLayer API endpoint?
I recommend to post the error you got and/or part of your code in order to get more further help from node.js or softlayer community.

Exceeding Instagram API request limit

How can I possibly exceed the Instagram API limit of 500 requests per hour if I have code in place that caches every 15 seconds (240 requests per hour)?
UPDATE: We ended up creating a new client, generating a new access token and using that in in our app. So far so good. Our code is making 1 call per minute, caching it and displaying the cached data for most visitors. The only thing I can think of is maybe something else was using our access token - leaking our bank of requests. I wish Instagram kept a log or something so we could see if requests were coming from an unauthorized source.
which API is it?
Instagram POST APIs have different limits (30/hr in sandbox and 60/hr in live mode):
/media/media-id/likes
/media/media-id/comments
/users/user-id/relationships
combined all API calls have 5000/hour.
https://www.instagram.com/developer/limits/

Receiving "400 Bad Request" for /oauth/access_token

I have approved for public_content clientId. To get access token, I send a request to www.instagram.com:
GET /oauth/authorize?client_id=MyClientId&redirect_uri=MyRedirectURL&response_type=code&scope=likes+comments+public_content HTTP/1.1`
After authentication, the browser redirects me to MyRedirectURL and I can get the code from the URL.
With this code I send a request to api.instagram.com:
/oauth/access_token HTTP/1.1
client_id=MyClientId&client_secret=MyClientSecret&grant_type=authorization_code&redirect_uri=MyRedirectURL&code=CodeFromURL`
But sometimes I get response HTTP/1.1 400 Bad Request.
This situation continues for a few hours, and sometimes for a day. It is interesting that the problem is very unstable. I may have two client apps that make identical requests, and one app will work fine, while the other will fail at the same time. Looks like it is a problem somewhere in the Instagram infrastructure.
Instagram is no longer supporting custom schemas for your callback urls. That was my problem, I changed it to https and the problem was solved.
I think you should prefer this document of Instagram.
You may also receive responses with an HTTP response code of 400 (Bad
Request) if we detect spammy behavior by a person using your app.
These errors are unrelated to rate limiting.
It seems like , we can not use http://localhost/... in call back url. Instagram may have restricted it.
It worked for me, when I have added live Ip of my aws server. for example http://xx.xx.xx.xx/.. instead of localhost.

How to prevent 3rd part services from using my API?

I have developed a front-end interface using Aja(AngularJS) and HTML5. Right now, I send an HTTP get request to my backend server which returns some data based on the GET parameters.
Since the URL is exposed in the Javascript file, I believe anyone could just use the URL to create there own API to fetch the data. How can I prevent such things ?
One way I could think of is that now instead of directly sending the request to the backend server, an application server could be used (hosting the HTML as well). The Ajax request would then be sent to this server (PHP script ?) which would in turn forward the request to the backend server and return the result to the UI. To prevent 3rd party services, I can disable cross origin requests on my application server.
Is this the correct way to solve my problem or are there better ways to do this? I am concerned that this would unnecessarily create another hop (internal though) for requests.
Note: The backend is running Apache Tomcat
In APIs that are not open to the world the user has to authenticate first in order to use it, see for example https://stripe.com/docs/api#authentication or http://dev.maxmind.com/geoip/geoip2/web-services/ -> Authorization

Resources