Instagram Platform

Instagram User Profile API

Updated: Jan 21, 2025
Copy for LLM
The User Profile API allows your app to get an Instagram user’s profile information using the user’s Instagram-scoped ID received from an Instagram messaging webhook notification. Your app can use this information to create a personalized messaging experience for Instagram users who are interacting with your app users.
User consent is required to access an Instagram user’s profile.
User consent is set only when an Instagram user sends a message to your app user, or clicks an icebreaker or persistent menu. If an Instagram user comments on a post or comment but has not sent a message to your app user, and your app tries to send the Instagram user a message, your app will receive an error, User consent is required to access user profile.

Requirements

This guide assumes you have read the Instagram Platform Overview and implemented the needed components for using this API, such as a Meta login flow and a webhooks server to receive notifications.
You will need the following:

Access Level

  • Advanced Access if your app serves Instagram professional accounts you don’t own or manage
  • Standard Access if your app serves Instagram professional accounts you own or manage and have added to your app in the App Dashboard

Access tokens

  • An Instagram user access token requested from your app user who received the webhook notification and who can manage messages on the Instagram professional account

Base URL

All endpoints can be accessed via the graph.instagram.com host.

Endpoints

  • /<IGSID>

IDs

Permissions

  • instagram_business_basic
  • instagram_business_manage_messages

Webhook event subscriptions

  • messages
  • messaging_optins
  • messaging_postbacks
  • messaging_referral

Limitations

  • If the Instagram user has blocked your app user, your app will not be able to view the Instagram user’s information.

Webhook notification

In order to get profile information for an Instagram user who has messaged your app user’s Instagram professional account, you need the Instagram-scoped ID for the Instagram user that was sent in a message notification, the value of the messages.sender.id property.
{
  "object": "instagram",
  "entry": [
    {
      "id": "<YOUR_APP_USERS_IG_ID>",  // Your app user's Instagram Professional account ID
      "time": <UNIX_TIMESTAMP>,
      "messaging": [
        {
"sender": { "id": "<INSTAGRAM_SCOPED_ID>" },    // Instagram-scoped ID for the Instagram user who sent the message
...

Get profile information

To get an the Instagram user’s profile information, send a GET request to the /<INSTAGRAM_SCOPED_ID> endpoint, where <INSTAGRAM_SCOPED_ID> is the Instagram-scoped ID received in a messaging webhook notification, with the fields parameter set to a comma separated list of information you would like to view.

Sample Request

Formatted for readability.
curl -X GET "https://graph.instagram.com/v26.0/<INSTAGRAM_SCOPED_ID> \
  ?fields=name,username,profile_pic,follower_count,is_user_follow_business,is_business_follow_user \
  &access_token=<INSTAGRAM_ACCESS_TOKEN>"
On success, your app will receive the following JSON response:
{
  "name": "Peter Chang",
  "username": "peter_chang_live",
  "profile_pic": "https://fbcdn-profile-...",
  "follower_count": 1234
  "is_user_follow_business": false,
  "is_business_follow_user": true,
}

Reference

Field Name Description
access_tokenstring
The Instagram user access token from your app user who can manage messages on the Instagram professional account who received the webhook notification
follower_countint
The number of followers the Instagram user has
<IGSID>  int
The Instagram-scoped ID returned in a webhook notification that represents the Instagram user who interacted with your app user’s Instagram professional account and triggered the notification
is_business_follow_user  boolean
Indicates whether your app user follows the Instagram user (true) or not (false)
is_user_follow_business boolean
Indicates whether the Instagram user follows your app user (true) or not (false)
is_verified_userboolean
Indicates whether the Instagram user has a verified Instagram account (true) or not (false)
namestring
The Instagram user’s name (can be null if name not set)
profile_picurl
The URL for the Instagram user’s profile picture (can be null if profile pic not set). The URL will expire in a few days
usernamestring
The Instagram user’s username

Next steps

Use this information to send a quick reply.