Getting User Profiles and User Media

This guide explains how to get an Instagram user’s profile and media.

Get a User’s Profile

Perform the following steps to get an Instagram user’s profile data (fields) on the User.

Step 1: Get An Access token and Permissions

Follow our Getting Access Tokens guide to get the user’s Instagram User Access Token. You will need the instagram_graph_user_profile permission, so request the user_profile scope when authenticating the user.

Step 2: Query the User node

Send a request to the following endpoint:

GET /me?fields={fields}&access_token={access-token}

Replace {fields} with a comma-separated list of User fields you want returned and {access-token} with the user’s access token. The GET /me endpoint will determine the user’s ID from the token and redirect the request to the User node.

Sample Request

curl -X GET \
  'https://graph.instagram.com/me?fields=id,username&access_token=IGQVJ...'

Sample Response

{
  "id": "17841405793187218",
  "username": "jayposiris"
}

Get a User’s Media

Perform the following steps to get a collection of Media on an Instagram User.

Step 1: Get An Access token and Permissions

Follow our Getting Access Tokens guide to get the user’s Instagram User Access Token. You will need the instagram_graph_user_profile and instagram_graph_user_media permissions, so request the user_profile and user_media scopes when authenticating the user.

Step 2: Query the User Media Edge

Send a request to the following endpoint:

GET /me/media?fields={fields}&access_token={access-token}

Replace {fields} with a comma-separated list of Media fields you want returned for each Media included in the response (or omit the fields parameter entirely if you just want IDs), and {access-token} with the user’s access token. The GET /me endpoint will determine the user’s ID from the token and redirect the request to the User node.

Sample Request

curl -X GET \
  'https://graph.instagram.com/me/media?fields=id,caption&access_token=IGQVJ...'

Sample Response

{
  "data": [
    {
      "id": "17895695668004550",
      "caption": ""
    },
    {
      "id": "17899305451014820",
      "caption": ""
    },
    {
      "id": "17896450804038745",
      "caption": ""
    },
    {
      "id": "17881042411086627",
      "caption": ""
    }
  ],
  "paging": {
    "cursors": {
      "after": "MTAxN...",
      "before": "NDMyN..."
      },
    "next": "https://graph.faceb..."
  }
}

Get Media Data

Perform the following steps to get data (fields) on an image, video, or album.

Step 1: Get An Access token and Permissions

Follow our Getting Access Tokens guide to get the user’s Instagram User Access Token. You will need the instagram_graph_user_media permission, so request the user_media scope when authenticating the user.

Step 2: Query the Media node

Send a request to the following endpoint:

GET /{media-id}?fields={fields}&access_token={access-token}

Replace {media-id} with the ID of the image, video, or album you want to query, {fields} with a comma-separated list of Media fields you want returned, and {access-token} with the user’s access token.

Sample Request

curl -X GET \
  'https://graph.instagram.com/17895695668004550?fields=id,media_type,media_url,username,timestamp&access_token=IGQVJ...'

Sample Response

{
  "id": "17895695668004550",
  "media_type": "IMAGE",
  "media_url": "https://fb-s-b-a.akamaihd.net/...",
  "username": "jayposiris"
  "timestamp": "2017-08-31T18:10:00+0000"
}

Step 2 (Alternate): Query The User Media Edge

You can query the User Media edge to get a collection of Media on the User and use field expansion to have the response include Media fields on each Media in the collection. To do this, send a request to the following endpoint:

GET /me/media?fields={fields}&access_token={access-token}

Replace {fields} with a comma-separated list of Media fields you want returned for each Media in the collection, and {access-token} with the user’s access token. The GET /me endpoint will determine the user’s ID from the token and redirect the request to the User node.

Sample Request

curl -X GET \
  'https://graph.instagram.com/me/media?fields=id,caption&access_token=IGQVJ...'

Sample Response

{
  "data": [
    {
      "id": "17895695668004550",
      "caption": ""
    },
    {
      "id": "17899305451014820",
      "caption": ""
    },
    {
      "id": "17896450804038745",
      "caption": ""
    },
    {
      "id": "17881042411086627",
      "caption": ""
    }
  ],
  "paging": {
    "cursors": {
      "after": "MTAxN...",
      "before": "NDMyN..."
      },
    "next": "https://graph.faceb..."
  }
}

Get Album Contents

Perform the following steps to get a collection of image and video Media on an album Media.

Step 1: Get An Access token and Permissions

Follow our Getting Access Tokens guide to get the user’s Instagram User Access Token. You will need the instagram_graph_user_media permission, so request the user_media scope when authenticating the user.

Step 2: Query the Media Children Edge

Send a request to the following endpoint:

GET /{media-id}/children?fields={fields}&access_token={access-token}

Replace {media-id} with the ID of the album you want to query, {fields} with a comma-separated list of Media fields you want returned for each image and video Media in the collection (or omit the fields parameter entirely if you just want their IDs), and {access-token} with the user’s access token.

Sample Request

curl -X GET \
  'https://graph.instagram.com/17896450804038745/children?access_token=IGQVJ...'

Sample Response

{
  "data": [
    {
      "id": "17880997618081620"
    },
    {
      "id": "17871527143187462"
    }
  ],
  "paging": {
    "cursors": {
      "after": "MTAxN...",
      "before": "NDMyN..."
      },
    "previous": "https://graph.faceb...",
    "next": "https://graph.faceb..."
  }
}