Instagram API: The access_token provided is invalid

You need to check for requirements Scope for API you are using and if it's need and Authentications "Valid access Token". where also had some changes.

  • basic - to read a user’s profile info and media
  • public_content to read any public profile info and media on a user’s behalf
  • follower_list to read the list of followers and followed-by users
  • comments - to post and delete comments on a user’s behalf
  • relationships - to follow and unfollow accounts on a user’s behalf
  • likes - to like and unlike media on a user’s behalf

And take look about **Sandbox API behavior of your application not life yet :**

API Behavior

The behavior of the API when you are in sandbox mode is the same as when your app is live, but comes with the following restrictions:

Data is restricted to sandbox users and the 20 most recent media from each sandbox user Reduced API rate limits The first point is important and it means that the API behaves as if the only users on Instagram were your sandbox users, and the only media ever posted were the last 20 for each of these users.

For example, if you query the /users/{user-id}/ endpoint and the {user-id} is a sandbox user, then you will get the normal API response; but if the {user-id} is not a sandbox user, you will get a APINotFound error.

Good luck


For me the access token Instagram generate is too short: they gave me something like this:

d2c387d768ec4d619306807c53bbf92b

it should be:

2940736713.1677ed0.31bb22b2b0f84befacc79c6afd025134

I used this site to generate it: http://instagram.pixelunion.net


I found it when solving the same problem with access by access_token

Here is official faq how to get access_token

You just should go through following steps (link to Instagram API documentation https://www.instagram.com/developer/authentication/):

1.Request the CODE

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

change CLIENT_ID to you client id (you could get it here https://www.instagram.com/developer/clients/manage/ )

change REDIRECT-URI to your redirect_uri from tab security in client settings(open link above and tap to 'manage' button). I Used this one https://meyerweb.com/eric/tools/dencoder/ Encode url here and paste te result instead REDIRECT-URI

After you prepared it cope ready link to adress bar in your browser and run

2. Get the CODE

Browser ask you a premissons and redirect you to callback url with the code in the end. It will be look like this in adress bar:

http://yoursite.some/?code=d8af5619af6853d4ad11b4dd5f1ef17e

In this example your code is d8af5619af6853d4ad11b4dd5f1ef17e Save it. You should use it in access_token request below

3. Make an access_token request

Open terminal and use curl:

curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token 

Change CLIENT_ID, CLIENT_SECRET, AUTHORIZATION_REDIRECT_URI and CODE to your own data and run it.

Curl return you JSON with access_token like this:

{
    "access_token": "fb2e77d.47a0473320504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1576583",
        "username": "some",
        "full_name": "Some",
        "profile_picture": "..."
    }
}

Well done! In this example fb2e77d.47a0473320504cb3ab4a1f626d174d2d is your access_token. Copy access_token value, use it in your app and enjoy you coding! :)