I've done a fair bit of searching on the Instagram API docs and can't find a way to determine whether or not a user has a public or protected profile?
This also has to be done without an access_token. I have a client_id to use.
Just for a bit of context, I'm just building a small practice app which reads a csv of usernames in PHP and then makes a call to the API to determine whether it is public or private.
Use the GET relationship endpoint.
https://api.instagram.com/v1/users/user-id/relationship
This endpoint returns a BOOL value "target_user_is_private".
You can use the User Media endpoint with client_id:
https://api.instagram.com/v1/users/USER_ID/media/recent/?client_id=YOUR-CLIENT_ID
If the user is private you will get a response like this:
{"meta":{"error_type":"APINotAllowedError","code":400,"error_message":"you cannot view this resource"}}
If the user is public, then you will get API response with "code":200
with user recent media data - "data":[...]
If you click
to unfollow them and it tells you,
"If you change your mind, you'll have to request ____ again."
then they are private
and if it says,
"unfollow ____" then they are not.
来源:https://stackoverflow.com/questions/21101650/find-out-whether-a-user-has-a-public-or-private-profile-on-instagram-using-api