# Instagram Graph API Explorer: Test Calls Step by Step

How to use Meta's Graph API Explorer for Instagram: get a token with the right permissions, find the IG user ID, test a publish, and know its limits.

Canonical page: https://www.tryadeli.com/blog/instagram-graph-api-explorer
Last updated: 2026-10-12

By Mika Reyes, Co-founder, Adeli. Published 2026-10-12.

## The short answer

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](https://developers.facebook.com/tools/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](https://www.tryadeli.com/blog/instagram-api-guide) 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](https://developers.facebook.com/docs/graph-api/guides/explorer) 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](https://www.tryadeli.com/blog/facebook-graph-api).

## 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](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-facebook-login/get-started), [Instagram Login getting-started guide](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/get-started), and [content publishing](https://developers.facebook.com/docs/instagram-platform/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](https://www.tryadeli.com/blog/instagram-api-python).

## What do you need before you start?

Meta's [getting-started guide](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-facebook-login/get-started) 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.**

1. Open the [Graph API Explorer](https://developers.facebook.com/tools/explorer/) and choose your app in the **Meta App** dropdown.
2. Keep a **User** token selected in the **User or Page** dropdown.
3. In **Permissions**, add `instagram_basic` and `pages_show_list`.
4. 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:

```http
GET https://graph.facebook.com/v25.0/me/accounts
```

In 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.**

```http
GET https://graph.facebook.com/v25.0/<PAGE_ID>?fields=instagram_business_account
```

The 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:

```http
GET https://graph.facebook.com/v25.0/<IG_USER_ID>/media?fields=id,media_type,permalink,timestamp
```

You 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](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-media).

## 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.

1. **Add the publish permissions.** Add `instagram_content_publish` and `pages_read_engagement`, then generate a new token. Meta says you can regenerate a token whenever you add permissions.
2. **Switch to the Page token.** Pick your Page in the **User or Page** dropdown. Meta's [content publishing guide](https://developers.facebook.com/docs/instagram-platform/content-publishing) says Facebook Login publishing uses a **Page access token**.
3. **Create a container.** Set the method to POST and send a public JPEG URL:

```http
POST https://graph.facebook.com/v25.0/<IG_USER_ID>/media?image_url=https://www.example.com/photo.jpg&caption=Test%20from%20the%20Explorer
```

4. **Check its status.** Switch back to GET and query `<CONTAINER_ID>?fields=status_code` until it reads `FINISHED`. Meta recommends checking once per minute, for no more than 5 minutes.
5. **Publish it.** POST to `<IG_USER_ID>/media_publish` with `creation_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](https://www.tryadeli.com/blog/post-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](https://developers.facebook.com/docs/facebook-login/guides/access-tokens) 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](https://www.tryadeli.com/blog/instagram-api-access-token) covers.

## Does the Explorer help with Meta App Review?

**Yes, for one requirement.** Meta's [App Review submission guide](https://developers.facebook.com/docs/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](https://www.tryadeli.com/blog/meta-app-review-time) covers the timeline, and the [permissions guide](https://www.tryadeli.com/blog/instagram-api-permissions) 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](https://www.tryadeli.com/product/instagram) 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:

```bash
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](https://www.tryadeli.com/docs/api/posts/publish-instagram). The same endpoint in [Adeli's posting API](https://www.tryadeli.com/social-media-posting-api) publishes to TikTok, YouTube, Facebook, X, and Bluesky, and **your first 3 connected accounts are free** on [Adeli's pricing](https://www.tryadeli.com/pricing).

## Frequently asked questions

### Can I use the Graph API Explorer without creating an app?

Partly. Meta's Instagram getting-started guide says you can use the Graph API Explorer instead of registering and configuring an app for those first test calls. To ship anything, or to request permissions through App Review, you still need your own Meta app.

### Does the Graph API Explorer work with Instagram Login?

Meta's Explorer guide describes App, User, and Page tokens, which come from Facebook Login and call graph.facebook.com. For the Instagram API with Instagram Login, generate a token on the Instagram API setup page in the App Dashboard and send requests to graph.instagram.com with curl or code instead.

### Do Graph API Explorer calls count toward App Review?

Yes. Meta asks for at least one successful API call with each permission you request at Advanced Access, made within 30 days of submitting, and says those calls can be made with your app or the Graph API Explorer.

### Why does the Explorer return no Instagram account for my Page?

The Instagram account is usually not a Business or Creator account, or it isn't connected to that Facebook Page. Your Facebook account also needs a task on the Page, such as manage or create content, or me/accounts won't list it.

## Related Adeli pages

- [Instagram API for Developers](https://www.tryadeli.com/product/instagram.md): Publish, schedule, and read analytics for Instagram through one API. Adeli owns the Instagram developer app, token refresh, and Meta review. Free to start.
- [Social Media Posting & Scheduling API](https://www.tryadeli.com/social-media-posting-api.md): Adeli's social media posting and scheduling API publishes to Instagram, TikTok, YouTube, Facebook, X, and Bluesky in one request, now or at a set time. Free to start.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Mika Reyes is the CEO behind Adeli and a tech and AI content creator. She was previously co-founder and CEO of Parallax, which was acquired by Phantom, and a product lead at LinkedIn. She is a Forbes 30 Under 30 honoree.
