Instagram Graph API Explorer: Test Calls Step by Step
To test the Instagram Graph API in Meta's Graph API Explorer, pick your app, add instagram_basic and pages_show_list, generate a User token, call me/accounts to get your Page ID, then query the Page for instagram_business_account to get the IG user ID. The Explorer covers the Facebook Login flavor of the API, only for people with a role on your app. Adeli replaces it in production with one API key.
The Instagram Graph API Explorer is Meta's Graph API Explorer pointed at Instagram: a browser console where you generate a token for your own Meta app, find your Instagram user ID, and run real calls before you write code. Use it to see what the Instagram API returns. Only people with a role on your app can use it, so it stays a testing tool.
Below is the exact sequence from Meta's docs: the token, the two lookups that get you the IG user ID, a test publish, and where the Explorer stops being useful.
What is the Graph API Explorer?
It's a Meta tool that builds and runs Graph API queries and shows the responses. Meta's Explorer guide says it works for any app on which you have an admin, developer, or tester role, and you need a Facebook developer account to use it.
The controls you'll use for Instagram:
| Control | What it does |
|---|---|
| Meta App dropdown | Picks which app's settings and permissions the calls use |
| User or Page dropdown | Gets App, User, and Page access tokens for that app |
| Permissions dropdown | Adds the permissions you want to grant |
| Generate Access Token | Creates a token with the chosen permissions and shows it in the token field |
| Method and version | Switches the HTTP method and picks the API version |
| Get Code | Turns the current query into sample code |
For a broader tour of the Explorer on Facebook Pages, see our Facebook Graph API guide.
Which Instagram API does the Explorer test?
The Instagram API with Facebook Login. Meta's Explorer guide describes App, User, and Page tokens, which are Facebook tokens for graph.facebook.com. That matches the Facebook Login version of the Instagram API, where the Instagram account is linked to a Facebook Page.
| Instagram API with Facebook Login | Instagram API with Instagram Login | |
|---|---|---|
| Host | graph.facebook.com |
graph.instagram.com |
| Test token from | Graph API Explorer | App Dashboard, Instagram API setup page |
| Read permissions | instagram_basic, pages_show_list |
instagram_business_basic |
| Publish permissions | instagram_content_publish, pages_read_engagement |
instagram_business_content_publish |
| Publishing token | Page access token | Instagram User access token |
Sources: Meta's Facebook Login getting-started guide, Instagram Login getting-started guide, and content publishing.
If your app uses Instagram Login, skip the Explorer. Click Generate token next to the account on the Instagram API setup page in the App Dashboard. Meta says those dashboard tokens are long-lived, valid for 60 days. Then call graph.instagram.com with curl, or follow our Instagram API Python guide.
What do you need before you start?
Meta's getting-started guide lists these:
- A professional Instagram account. Business or Creator. Personal accounts don't work.
- A Facebook Page connected to it. The Explorer finds the Instagram account through the Page.
- A Facebook developer account that can perform tasks on that Page. Without a task on the Page, the lookups come back empty.
- A role on the Meta app you select in the Explorer: admin, developer, or tester.
You don't strictly need your own app for the first read calls. Meta says you "can use the Graph API Explorer instead" of registering and configuring an app.
Step 1: Get a token with the right permissions
Pick your app, add the two read permissions, and generate a User token.
- Open the Graph API Explorer and choose your app in the Meta App dropdown.
- Keep a User token selected in the User or Page dropdown.
- In Permissions, add
instagram_basicandpages_show_list. - Click Generate Access Token and approve the dialog. Select the Page linked to your Instagram account.
The Explorer puts the token in the Access Token field. Click the info icon next to it to see which app it belongs to and which permissions it carries.
Unapproved permissions behave differently in live apps. In development mode you can grant your app any permission and queries respect it. Meta's guide says that in a live app, a permission that hasn't been approved through App Review makes the query fail.
Step 2: Find your Facebook Page ID
Run me/accounts. It returns the Pages you can act on:
GET https://graph.facebook.com/v25.0/me/accountsIn the Explorer, type me/accounts in the query field and click Submit. Meta says the response lists Pages where you have the MANAGE, CREATE_CONTENT, MODERATE, or ADVERTISE task. Copy the id of the Page connected to your Instagram account. Each entry also carries that Page's own access_token, which you need for publishing in Step 5.
Step 3: Find the Instagram user ID
Ask the Page for its instagram_business_account field.
GET https://graph.facebook.com/v25.0/<PAGE_ID>?fields=instagram_business_accountThe response holds instagram_business_account.id. That number is the IG user ID every Instagram endpoint takes. If the field is missing, the Instagram account isn't a professional account or isn't linked to this Page.
Step 4: Read the account's media
Query the IG user's media edge to confirm the token and the ID work together:
GET https://graph.facebook.com/v25.0/<IG_USER_ID>/media?fields=id,media_type,permalink,timestampYou get media IDs in data and cursors in paging. Click a field in the Explorer's field viewer to add or remove it without retyping the query. The full field list is in Meta's IG Media reference.
Step 5: Test a publish
Publishing in the Explorer posts for real, so use a test account. It takes a Page token and two more permissions.
- Add the publish permissions. Add
instagram_content_publishandpages_read_engagement, then generate a new token. Meta says you can regenerate a token whenever you add permissions. - Switch to the Page token. Pick your Page in the User or Page dropdown. Meta's content publishing guide says Facebook Login publishing uses a Page access token.
- Create a container. Set the method to POST and send a public JPEG URL:
POST https://graph.facebook.com/v25.0/<IG_USER_ID>/media?image_url=https://www.example.com/photo.jpg&caption=Test%20from%20the%20Explorer- Check its status. Switch back to GET and query
<CONTAINER_ID>?fields=status_codeuntil it readsFINISHED. Meta recommends checking once per minute, for no more than 5 minutes. - Publish it. POST to
<IG_USER_ID>/media_publishwithcreation_id=<CONTAINER_ID>. The response is the new media ID.
Every format and error code is in our guide to posting to Instagram via API.
What are the Graph API Explorer's limits?
It's a test console for people with a role on your app. These are the limits that matter:
- Role-only access. Meta's guide limits the Explorer to people with a role on the app. Your customers can't use it, so it can't show whether Advanced Access works.
- Short-lived tokens. The Explorer hands you a Facebook User token. Meta's access token docs say short-lived tokens "typically last about one to two hours".
- Facebook Login only. Meta's Explorer guide describes App, User, and Page tokens and doesn't mention Instagram User tokens for
graph.instagram.com. - Sample code needs work. Meta says you typically can't paste Get Code output straight into your codebase.
- No storage, refresh, or queue. Saved sessions keep the query but not the token. Production needs token exchange and refresh, which our access token guide covers.
Does the Explorer help with Meta App Review?
Yes, for one requirement. Meta's App Review submission guide asks for at least one successful API call with each permission you request at Advanced Access, made within 30 days of submitting. Meta says those calls can be made with your app or the Graph API Explorer.
It does nothing for the screencast, which is where most of the rejections we saw during Meta's review came from. Reviewers wanted the full login, the consent screen, and the feature working end to end in the product. A call in the Explorer doesn't show any of those. Our Meta app review guide covers the timeline, and the permissions guide lists what each scope unlocks.
How does the Explorer workflow map to Adeli?
Each Explorer step maps to one Adeli call, and you don't manage tokens. Adeli holds the Meta developer app, carried Meta's review, and refreshes every connected account's tokens. You send one API key as a bearer header.
| In the Graph API Explorer | In Adeli |
|---|---|
| Generate a User or Page token | Create an API key once in the dashboard |
me/accounts, then instagram_business_account |
GET /api/v1/profiles/{profileId}/accounts |
<IG_USER_ID>/media |
GET /api/v1/posts?accountId={accountId} |
Container, status check, media_publish |
One POST /api/v1/posts |
| Regenerate the token when it expires | Adeli refreshes it |
The publish takes the account's accountId and the image as base64. Adeli stages the file where Instagram can fetch it, so you don't host a public URL:
curl -X POST "https://app.tryadeli.com/api/v1/posts" \
-H "Authorization: Bearer $ADELI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"instagram","accountId":"<ACCOUNT_ID>","caption":"Hello","image":{"contentType":"image/png","base64":"<BASE64_PNG>"}}'Field details are in the Publish to Instagram docs. The same endpoint in Adeli's posting API publishes to TikTok, YouTube, Facebook, X, and Bluesky, and your first 3 connected accounts are free on Adeli's pricing.