The error#
PleaseWaitFewMinutes is raised when the private API message contains:
Please wait a few minutesThe exception's message becomes that JSON message, because private_request spreads last_json into the constructor after the HTTP error. The class is a subclass of PrivateError.
This is not HTTP 429. Status 429 logs Status 429: Too many requests and raises ClientThrottledError. The docstring on that class says it is raised due to a HTTP 429 response.
What triggers it#
A 400 response whose message contains that substring. It is checked before the 403 and 400 branches that look at login_required and challenge_required.
How to confirm#
The class is PleaseWaitFewMinutes and the text contains Please wait a few minutes. ClientThrottledError is the 429 class. RateLimitError is error_type == "rate_limit_error".
Fixes#
The message is Instagram's. The library does not sleep inside this raise. Wait, then send the next call. Immediate retries are what produced the message. Switching proxies in the same minute often keeps the same Please wait response if Instagram is limiting the account rather than the IP.
SocialScrape#
Instagram profile is GET /v1/instagram/profile. A private account comes back with is_private true. Posts are GET /v1/instagram/profile/posts, and one post is GET /v1/instagram/post.
Failed requests cost 0 credits. New accounts get 100 credits on signup, no card. Codes are on errors.