logoPandorLabs
social data api

Instagram logoInstagram

Profiles, posts, reels, transcripts, comments, highlights and hashtag or keyword search.

Account profile1 request
Lightweight profile by user ID1 request
Posts by an account1 request
Posts an account is tagged in1 request
Reels by an account1 request
Post or reel details1 request
Video transcript1 request
Search Instagram1 request
Popular posts for a topic1 request
Posts for a hashtag1 request
Find accounts1 request
Find reels1 request
Reels using an audio track1 request
Trending reels1 request
Post comments1 request+
Replies to a comment1 request
Story highlights of an account1 request
Items in a highlight1 request
Number of posts1 request
Profile embed markup1 request
GET/v1/instagram/profile

Account profile

1 request

Returns the full public picture of an Instagram account: bio text and its links, how many followers it has and how many accounts it follows, whether it is verified, and profile picture URLs. Recent timeline posts come with their engagement (likes, comments, video views), along with a set of related profiles, which helps with account reviews, audience research, and finding similar creators. Instagram sometimes sends media_count as null, or puts only the size of the current batch in edge_owner_to_timeline_media.count. Call Profile Post Count when you need the true total number of posts.

Query parameters

handle
stringrequired
The account's Instagram handle.
trim
boolean
When true, returns a slimmer response.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/instagram/profile?handle=jane" \  -H "Authorization: Bearer $PANDORLABS_KEY"
GET/v1/instagram/basic-profile

Lightweight profile by user ID

1 request

Returns a compact Instagram profile for a numeric user ID: username and full name, bio, the URL of the profile picture, verification flag, follower, following, and media counts, and whether the account is private and what type it is. Use it for fast lookups or enrichment when the ID is already known.

Query parameters

userId
string
Numeric Instagram user id.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/instagram/basic-profile" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "friendship_status": null,
  "gating": null,
  "is_memorialized": false,
  "is_private": false,
  "has_story_archive": null,
  "supervision_info": null,
  "is_regulated_c18": false,
  "regulated_news_in_locations": [],
  "bio_links": [],
  "linked_fb_info": null,
  "text_post_app_badge_label": "zuck",
  "show_text_post_app_badge": true,
  "username": "zuck",
  "text_post_new_post_count": null,
  "pk": "314216",
  "live_broadcast_visibility": null,
  "live_broadcast_id": null,
  "profile_pic_url": "https://instagram.fpoz4-1.fna.fbcdn.net/v/t51.2885-19/550234512_18532404670058217_8758519395071163708_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=instagram.fpoz4-1.fna.fbcdn.net&_nc_…",
  "hd_profile_pic_url_info": {
    "url": "https://instagram.fpoz4-1.fna.fbcdn.net/v/t51.2885-19/550234512_18532404670058217_8758519395071163708_n.jpg?efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=instagram.fpoz4-1.fna.fbcdn.net&_nc_cat=1&_nc_oc=Q6cZ2QENWmro…"
  },
  "is_unpublished": false,
  "latest_reel_media": 0,
  "has_profile_pic": null,
  "profile_pic_genai_tool_info": [],
  "biography": "I build stuff",
  "full_name": "Mark Zuckerberg",
  "is_verified": true,
  "show_account_transparency_details": true,
  "account_type": 3,
  "follower_count": 16101999,
  "mutual_followers_count": null,
  "profile_context_links_with_user_ids": null,
  "address_street": null,
  "city_name": null,
  "is_business": false,
  "zip": null,
  "biography_with_entities": {
    "entities": []
  },
  "category": null
}
GET/v2/instagram/user/posts

Posts by an account

1 request

Pages through an account's public Instagram posts: reels, photos, videos, and carousels. Every item carries its media type, shortcode, caption, like, comment, and play counts, tagged users, video and image URLs, and the publish time as an ISO 8601 UTC string in items[].created_at; the raw Unix timestamp is kept in items[].taken_at. Play counts cover Instagram views only and leave out views from cross-posting to Facebook. Pass next_max_id to keep walking back through the timeline.

Query parameters

handle
stringrequired
The account's Instagram handle.
next_max_id
string
Pagination cursor for the next page of results.
trim
boolean
When true, returns a slimmer response.
curl "https://api.pandorlabs.com/v2/instagram/user/posts?handle=<handle>" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "items": [
    {
      "id": "3644028144127958689_59042353222",
      "code": "DKSMEpKRd6h",
      "media_type": 2,
      "taken_at": 1748622051,
      "caption": {
        "bit_flags": 0,
        "created_at": 1748622053,
        "created_at_utc": 1748622053,
        "did_report_as_spam": false,
        "is_ranked_comment": false,
        "pk": "17916912093071427",
        "share_enabled": false,
        "content_type": "comment",
        "media_id": "3644028144127958689",
        "status": "Active",
        "type": 1,
        "user_id": "59042353222",
        "strong_id__": "17916912093071427",
        "text": "5 best college baseball regional plays for day 1",
        "user": {
          "pk": "59042353222",
          "pk_id": "59042353222",
          "id": "59042353222",
          "full_name": "Carson Szeder",
          "is_private": false,
          "is_unpublished": false,
          "strong_id__": "59042353222",
          "fbid_v2": "17841459076660294",
          "username": "carsoncantcode",
          "is_verified": true,
          "profile_pic_id": "3318246086567523250_59042353222",
          "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…"
        },
        "is_covered": false,
        "private_reply_status": 0
      },
      "play_count": 2647,
      "ig_play_count": 2643,
      "comment_count": 7,
      "like_count": 29,
      "display_uri": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/502710192_1957567931446141_1822523212661288021_n.jpg?stp=c0.248.640.640a_dst-jpg_e15_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=101&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzM…",
      "user": {
        "fbid_v2": "17841459076660294",
        "feed_post_reshare_disabled": false,
        "full_name": "Carson Szeder",
        "id": "59042353222",
        "is_private": false,
        "is_unpublished": false,
        "pk": "59042353222",
        "pk_id": "59042353222",
        "show_account_transparency_details": true,
        "strong_id__": "59042353222",
        "third_party_downloads_enabled": 1,
        "account_type": 3,
        "account_badges": [],
        "fan_club_info": {
          "autosave_to_exclusive_highlight": null,
          "connected_member_count": null,
          "fan_club_id": null,
          "fan_club_name": null,
          "has_created_ssc": null,
          "has_enough_subscribers_for_ssc": null,
          "is_fan_club_gifting_eligible": null,
          "is_fan_club_referral_eligible": null,
          "is_free_trial_eligible": null,
          "largest_public_bc_id": null,
          "subscriber_count": null,
          "fan_consideration_page_revamp_eligiblity": null
        },
        "has_anonymous_profile_picture": false,
        "hd_profile_pic_url_info": {
          "height": 633,
          "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2RgZ46phuoYGRHEiGNrkRFOg&_n…",
          "width": 633
        },
        "hd_profile_pic_versions": [
          {
            "height": 320,
            "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s320x320_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…",
            "width": 320
          }
        ],
        "is_verified": true,
        "profile_pic_id": "3318246086567523250_59042353222",
        "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…",
        "transparency_product_enabled": false,
        "username": "carsoncantcode",
        "is_embeds_disabled": false,
        "eligible_for_text_app_activation_badge": false
      },
      "owner": {
        "fbid_v2": "17841459076660294",
        "feed_post_reshare_disabled": false,
        "full_name": "Carson Szeder",
        "id": "59042353222",
        "is_private": false,
        "is_unpublished": false,
        "pk": "59042353222",
        "pk_id": "59042353222",
        "show_account_transparency_details": true,
        "strong_id__": "59042353222",
        "third_party_downloads_enabled": 1,
        "can_see_quiet_post_attribution": true,
        "account_type": 3,
        "account_badges": [],
        "fan_club_info": {
          "autosave_to_exclusive_highlight": null,
          "connected_member_count": null,
          "fan_club_id": null,
          "fan_club_name": null,
          "has_created_ssc": null,
          "has_enough_subscribers_for_ssc": null,
          "is_fan_club_gifting_eligible": null,
          "is_fan_club_referral_eligible": null,
          "is_free_trial_eligible": null,
          "largest_public_bc_id": null,
          "subscriber_count": null,
          "fan_consideration_page_revamp_eligiblity": null
        },
        "has_anonymous_profile_picture": false,
        "hd_profile_pic_url_info": {
          "height": 633,
          "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2RgZ46phuoYGRHEiGNrkRFOg&_n…",
          "width": 633
        },
        "hd_profile_pic_versions": [
          {
            "height": 320,
            "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s320x320_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…",
            "width": 320
          }
        ],
        "is_verified": true,
        "profile_pic_id": "3318246086567523250_59042353222",
        "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…",
        "transparency_product_enabled": false,
        "username": "carsoncantcode",
        "is_embeds_disabled": false,
        "eligible_for_text_app_activation_badge": false
      },
      "image_versions2": {
        "additional_candidates": {
          "first_frame": {
            "height": 1136,
            "url": "https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/502608920_587032841104047_520039248454188749_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi42NDB4MTEzNi5zZHIuZjcxODc4LmFkZGl0aW9uYWxfY292ZXJfZnJhbWUifQ&_nc…",
            "width": 640
          },
          "igtv_first_frame": {
            "height": 1136,
            "url": "https://scontent-lga3-1.cdninstagram.com/v/t51.2885-15/502608920_587032841104047_520039248454188749_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi42NDB4MTEzNi5zZHIuZjcxODc4LmFkZGl0aW9uYWxfY292ZXJfZnJhbWUifQ&_nc…",
            "width": 640
          },
          "smart_frame": null
        },
        "candidates": [
          {
            "height": 1136,
            "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/502710192_1957567931446141_1822523212661288021_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi42NDB4MTEzNi5zZHIuZjcxODc4Lm5mcmFtZV9jb3Zlcl9mcmFtZSJ9&_nc_ht=…",
            "width": 640
          }
        ],
        "scrubber_spritesheet_info_candidates": {
          "default": {
            "file_size_kb": 388,
            "max_thumbnails_per_sprite": 105,
            "rendered_width": 96,
            "sprite_height": 1246,
            "sprite_urls": [
              "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-15/502708871_1436358334024784_3923116580658609450_n.jpg?_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=108&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2RgZ46phuoYGRHEiGNrkRFOg&_…"
            ],
            "sprite_width": 1500,
            "thumbnail_duration": 0.6866666666666666,
            "thumbnail_height": 178,
            "thumbnail_width": 100,
            "thumbnails_per_row": 15,
            "total_thumbnail_num_per_sprite": 105,
            "video_length": 72.1
          }
        }
      },
      "product_type": "clips",
      "music_metadata": null,
      "is_paid_partnership": false,
      "video_sticker_locales": [
        "en"
      ],
      "video_versions": [
        {
          "bandwidth": null,
          "height": 852,
          "type": 101,
          "url": "https://scontent-lga3-1.cdninstagram.com/o1/v/t16/f2/m86/AQMBOiKBGQDTEPcTzw51q2K7ixLiwkfCual2hfLfJ11K3C6bAOlgqWAEIP4284QXb_Uk-TXekJvIUeAfv--ZX6PWX0s1LbCaDn13iD0.mp4?stp=dst-mp4&efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSI…",
          "width": 480
        }
      ],
      "video_duration": 72.1,
      "has_audio": true,
      "url": "https://www.instagram.com/p/DKSMEpKRd6h/"
    }
  ],
  "next_max_id": "3639831059405682409_59042353222",
  "num_results": 12,
  "more_available": true,
  "user": {
    "pk": "59042353222",
    "pk_id": "59042353222",
    "full_name": "Carson Szeder",
    "is_private": false,
    "is_active_on_text_post_app": true,
    "strong_id__": "59042353222",
    "profile_grid_display_type": "default",
    "id": "59042353222",
    "username": "carsoncantcode",
    "is_verified": true,
    "profile_pic_id": "3318246086567523250_59042353222",
    "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/431903885_797859762202050_7017850157267325892_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2QHiEom3hMdlCt1UvbqMoAi8AVMa_QCzMo8Z3JyyueN2R…"
  }
}
GET/v1/instagram/user/tagged-posts

Posts an account is tagged in

1 request

Reads an account's public Tagged tab on Instagram, at most 10 posts per page. Posts come back as flat objects holding owner details, shortcode, caption, media type, media URLs, and engagement counts. Continue sending the returned cursor until has_more becomes false.

Query parameters

user_id
stringrequired
Numeric Instagram user ID.
cursor
string
Cursor from the prior response.
curl "https://api.pandorlabs.com/v1/instagram/user/tagged-posts?user_id=325734299" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "posts": [
    {
      "pk": "3953402310668919030",
      "code": "DbdTnSdoSD2",
      "media_type": 1,
      "caption": {
        "pk": "18139631029604360",
        "text": "You get the best of both worlds ig"
      },
      "comment_count": 0,
      "like_count": 3,
      "view_count": null,
      "user": {
        "pk": "13320148665",
        "id": "13320148665",
        "username": "oceanecosplay"
      },
      "url": "https://www.instagram.com/p/DbdTnSdoSD2/"
    }
  ],
  "cursor": "3953374600788032611",
  "has_more": true
}
GET/v1/instagram/user/reels

Reels by an account

1 request

Pages through an account's public Instagram reels. Each reel has its shortcode, play, like, and comment counts, video versions with download URLs, a thumbnail, owner details, and the publish time as an ISO 8601 UTC string in items[].media.created_at (or items[].created_at when trim=true); the raw Unix timestamp is kept as taken_at. Captions are not part of this response. Play counts cover Instagram views only and leave out views from cross-posting to Facebook. Pass max_id to get the next page, and supply user_id rather than handle for quicker responses.

Query parameters

user_id
string
The account's Instagram user id; responses are quicker when you supply it.
handle
string
The account's Instagram handle. user_id gives quicker responses.
max_id
string
Pagination cursor; use max_id from the prior response.
trim
boolean
When true, returns a slimmer response.
curl "https://api.pandorlabs.com/v1/instagram/user/reels" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "items": [
    {
      "id": "3641924023820356866_21393171",
      "code": "DKKtpqaxg0C",
      "taken_at": 1748371310,
      "created_at": "2025-05-27T18:41:50.000Z",
      "caption": {
        "bit_flags": 0,
        "created_at": 1748371312,
        "created_at_utc": 1748371312,
        "did_report_as_spam": false,
        "is_ranked_comment": false,
        "pk": "18079986955772842",
        "share_enabled": false,
        "content_type": "comment",
        "media_id": "3641924023820356866",
        "status": "Active",
        "type": 1,
        "user_id": "21393171",
        "strong_id__": "18079986955772842",
        "text": "Summer brings out all the girlies, soda, and global warming!!!🤗☀️\n\n#states #utah #idaho #california #oregon #newyork #minnesota #arizona #alaska #girlies #jane #janeinsane #eastcoast #westcoast #drama",
        "user": {
          "pk": "21393171",
          "pk_id": "21393171",
          "id": "21393171",
          "full_name": "Jane Williamson",
          "is_private": false,
          "is_unpublished": false,
          "strong_id__": "21393171",
          "fbid_v2": "17841400515130334",
          "username": "jane",
          "is_verified": true,
          "profile_pic_id": "3583980709961915639_21393171",
          "profile_pic_url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HV…"
        },
        "is_covered": false,
        "private_reply_status": 0
      },
      "play_count": 1685367,
      "ig_play_count": 1685367,
      "comment_count": 1096,
      "like_count": 71768,
      "display_uri": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/501064973_18499642795017172_3156358348692457402_n.jpg?stp=c0.469.1206.1206a_dst-jpg_e35_s1080x1080_sh0.08_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_…",
      "user": {
        "fbid_v2": "17841400515130334",
        "feed_post_reshare_disabled": false,
        "full_name": "Jane Williamson",
        "id": "21393171",
        "is_private": false,
        "is_unpublished": false,
        "pk": "21393171",
        "pk_id": "21393171",
        "show_account_transparency_details": true,
        "strong_id__": "21393171",
        "third_party_downloads_enabled": 2,
        "account_type": 3,
        "account_badges": [],
        "fan_club_info": {
          "autosave_to_exclusive_highlight": null,
          "connected_member_count": null,
          "fan_club_id": null,
          "fan_club_name": null,
          "has_created_ssc": null,
          "has_enough_subscribers_for_ssc": null,
          "is_fan_club_gifting_eligible": null,
          "is_fan_club_referral_eligible": null,
          "is_free_trial_eligible": null,
          "largest_public_bc_id": null,
          "subscriber_count": null,
          "fan_consideration_page_revamp_eligiblity": null
        },
        "has_anonymous_profile_picture": false,
        "hd_profile_pic_url_info": {
          "height": 1024,
          "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HVH1k09gFjEGZGaaanoHrw&_nc_…",
          "width": 1024
        },
        "hd_profile_pic_versions": [
          {
            "height": 320,
            "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s320x320_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HV…",
            "width": 320
          }
        ],
        "is_verified": true,
        "profile_pic_id": "3583980709961915639_21393171",
        "profile_pic_url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HV…",
        "transparency_product_enabled": false,
        "username": "jane",
        "is_embeds_disabled": false,
        "eligible_for_text_app_activation_badge": false
      },
      "owner": {
        "fbid_v2": "17841400515130334",
        "feed_post_reshare_disabled": false,
        "full_name": "Jane Williamson",
        "id": "21393171",
        "is_private": false,
        "is_unpublished": false,
        "pk": "21393171",
        "pk_id": "21393171",
        "show_account_transparency_details": true,
        "strong_id__": "21393171",
        "third_party_downloads_enabled": 2,
        "account_type": 3,
        "account_badges": [],
        "fan_club_info": {
          "autosave_to_exclusive_highlight": null,
          "connected_member_count": null,
          "fan_club_id": null,
          "fan_club_name": null,
          "has_created_ssc": null,
          "has_enough_subscribers_for_ssc": null,
          "is_fan_club_gifting_eligible": null,
          "is_fan_club_referral_eligible": null,
          "is_free_trial_eligible": null,
          "largest_public_bc_id": null,
          "subscriber_count": null,
          "fan_consideration_page_revamp_eligiblity": null
        },
        "has_anonymous_profile_picture": false,
        "hd_profile_pic_url_info": {
          "height": 1024,
          "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HVH1k09gFjEGZGaaanoHrw&_nc_…",
          "width": 1024
        },
        "hd_profile_pic_versions": [
          {
            "height": 320,
            "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s320x320_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HV…",
            "width": 320
          }
        ],
        "is_verified": true,
        "profile_pic_id": "3583980709961915639_21393171",
        "profile_pic_url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HV…",
        "transparency_product_enabled": false,
        "username": "jane",
        "is_embeds_disabled": false,
        "eligible_for_text_app_activation_badge": false
      },
      "image_versions2": {
        "additional_candidates": {
          "first_frame": {
            "height": 1136,
            "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-15/501249811_1047509020812730_1368766689877144056_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi42NDB4MTEzNi5zZHIuZjcxODc4LmFkZGl0aW9uYWxfY292ZXJfZnJhbWUifQ&_…",
            "width": 640
          },
          "igtv_first_frame": {
            "height": 1136,
            "url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-15/501249811_1047509020812730_1368766689877144056_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi42NDB4MTEzNi5zZHIuZjcxODc4LmFkZGl0aW9uYWxfY292ZXJfZnJhbWUifQ&_…",
            "width": 640
          },
          "smart_frame": {
            "height": 1920,
            "url": "https://scontent-lga3-2.cdninstagram.com/v/t15.5256-10/502085875_1788049852055333_7728247084856383096_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi4xMDgweDE5MjAuc2RyLmY1MjU2LnN0YXRpY19zbWFydF90aHVtYm5haWxzOjpB…",
            "width": 1080
          }
        },
        "candidates": [
          {
            "height": 2144,
            "url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/501064973_18499642795017172_3156358348692457402_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLmltYWdlX3VybGdlbi4xMjA2eDIxNDQuc2RyLmY3NTc2MS5kZWZhdWx0X2NvdmVyX2ZyYW1lIn0&_nc…",
            "width": 1206
          }
        ],
        "scrubber_spritesheet_info_candidates": {
          "default": {
            "file_size_kb": 467,
            "max_thumbnails_per_sprite": 105,
            "rendered_width": 96,
            "sprite_height": 1246,
            "sprite_urls": [
              "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/501930551_1739874873569815_2195383679016609522_n.jpg?_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=107&_nc_oc=Q6cZ2QHH_AuDym1_h_Gt35CeYD9UUv5wiBJykWgz0pzbdkl_7HVH1k09gFjEGZGaaanoHrw&_…"
            ],
            "sprite_width": 1500,
            "thumbnail_duration": 0.8703142857142857,
            "thumbnail_height": 178,
            "thumbnail_width": 100,
            "thumbnails_per_row": 15,
            "total_thumbnail_num_per_sprite": 105,
            "video_length": 91.383
          }
        }
      },
      "url": "https://www.instagram.com/reel/DKKtpqaxg0C/"
    }
  ],
  "max_id": "QVFEWFlDdGNOamdwbVdNM2pLY1NJRndSZ2tCbWp6WDV0TWxaYl9WNVktZU1BTUxWMlg1c2JFenNDanJVZ2NudWFjR28zRG93a3ByTExXaHJMbTA0aVJBZg=="
}
GET/v1/instagram/post

Post or reel details

1 request

Returns the details of one Instagram post or reel, given its shortcode or URL: caption, like and comment counts, the video URL with its duration and play count, display images, owner details, tagged users, carousel sidecar children where relevant, and the publish time as an ISO 8601 UTC string in data.xdt_shortcode_media.created_at. The raw Unix timestamp is kept in data.xdt_shortcode_media.taken_at_timestamp. Play counts cover Instagram views only and leave out views from cross-posting to Facebook. Set include_play_count=false to drop the play count, which skips an extra fetch and speeds up the response.

Query parameters

url
stringrequired
URL of the Instagram post or reel.
region
string
Two-letter country code to localise results.
trim
boolean
When true, returns a slimmer response.
include_play_count
boolean
On unless set to false. Turning it off drops video_play_count and the extra lookup behind it, so the call returns faster.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/instagram/post?url=<url>" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "data": {
    "xdt_shortcode_media": {
      "id": "3657869083548472514",
      "shortcode": "DLDXI0fylTC",
      "__typename": "XDTGraphVideo",
      "thumbnail_src": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/509601086_18503874985017172_8563682873145552176_n.jpg?stp=c0.469.1206.1206a_dst-jpg_e35_s640x640_sh0.08_tt6&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2QE_dnPQQ4wu9m…",
      "display_url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/509601086_18503874985017172_8563682873145552176_n.jpg?stp=dst-jpg_e35_p1080x1080_sh0.08_tt6&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2QE_dnPQQ4wu9mDyMWXNHRAYOB8jcO…",
      "video_url": "https://scontent-iad3-2.cdninstagram.com/o1/v/t16/f2/m86/AQPIiBLJBqG6YM9FzeabZmQkGTo94LpWkFoXGZJKZzy1TmBaeQneYOCvLLIE9oatPQwWEFvodXRGHTKQmyBOxJfo3UbjavdoyajuoZA.mp4?stp=dst-mp4&efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSI…",
      "has_audio": true,
      "accessibility_caption": null,
      "video_view_count": 0,
      "video_play_count": 425901,
      "product_type": "clips",
      "video_duration": 84.666,
      "clips_music_attribution_info": {
        "artist_name": "jane",
        "song_name": "Original audio",
        "uses_original_audio": true,
        "should_mute_audio": false,
        "should_mute_audio_reason": "",
        "audio_id": "3011705342342322"
      },
      "is_video": true,
      "owner": {
        "id": "21393171",
        "username": "jane",
        "is_verified": true,
        "profile_pic_url": "https://scontent-iad3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QE_dnPQQ4wu9mDyMWXNHRAYOB8jcOQ_TxJE9VRReZUTgEU…",
        "blocked_by_viewer": false,
        "restricted_by_viewer": null,
        "followed_by_viewer": false,
        "full_name": "Jane Williamson",
        "has_blocked_viewer": false,
        "is_embeds_disabled": false,
        "is_private": false,
        "is_unpublished": false,
        "requested_by_viewer": false,
        "pass_tiering_recommendation": true,
        "edge_owner_to_timeline_media": {
          "count": 1599
        },
        "edge_followed_by": {
          "count": 1565363
        }
      },
      "edge_media_to_caption": {
        "edges": [
          {
            "node": {
              "created_at": "1750272153",
              "text": "I think I like this goosey life🪿☺️🍃\n\n#crunchy #crunchymom #dayinthelife #holistic #nontoxic #homeschool #crunchymoms #momhumor #momlife #jane #janeinsane",
              "id": "17894844171126505"
            }
          }
        ]
      },
      "edge_media_to_parent_comment": {
        "count": 299,
        "page_info": {
          "has_next_page": true,
          "end_cursor": "{\"server_cursor\": \"QVFBbUdFZ185QlVSSVF4S1ZwTjV0SUZidGp6ZDNGeDV2eWQwbTY0bkw4U3pQLWVFaXU0MUI3UnRJMGJxOF96S3hYWVBHZmpyaFB5VlkwSV9aLUFNMTROeQ==\", \"is_server_cursor_inverse\": true}"
        },
        "edges": [
          {
            "node": {
              "id": "18347526892092420",
              "text": "HAHAHAAHAHAHHA gonna read your TESIS! 😂",
              "created_at": 1750359820,
              "did_report_as_spam": false,
              "owner": {},
              "viewer_has_liked": false,
              "edge_liked_by": {},
              "is_restricted_pending": false,
              "edge_threaded_comments": {}
            }
          }
        ]
      },
      "edge_media_preview_comment": {
        "count": 299,
        "edges": [
          {
            "node": {
              "id": "18086391994676491",
              "text": "Best one to date lol 😂",
              "created_at": 1750359443,
              "did_report_as_spam": false,
              "owner": {},
              "viewer_has_liked": false,
              "edge_liked_by": {},
              "is_restricted_pending": false
            }
          }
        ]
      },
      "taken_at_timestamp": 1750272151,
      "is_ad": false,
      "edge_media_preview_like": {
        "count": 22926,
        "edges": []
      },
      "is_affiliate": false,
      "is_paid_partnership": false,
      "location": null
    }
  }
}
GET/v2/instagram/media/transcript

Video transcript

1 request

Uses AI to transcribe the speech in a reel or video post on Instagram. Videos must be shorter than 2 minutes. The transcripts array lists each item's shortcode with its text, and a carousel yields one entry per video slide. Responses typically take 10 to 30 seconds, and the transcript is null if no speech is found.

Query parameters

url
stringrequired
URL of the Instagram post or reel.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v2/instagram/media/transcript?url=<url>" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "transcripts": [
    {
      "id": "3597267389859272809",
      "shortcode": "DHsD6HGqJhp",
      "text": "Let's fry up the perfect bunzel. Beautiful.  Everybody, shh. The perfect bunzel. Let me show you my bunzel. When it comes down to bunzel, we make it the crispiest, get the crunch. Heaven."
    }
  ]
}
GET/v1/instagram/search/hashtag

Posts for a hashtag

1 request

Looks up public Instagram posts and reels tagged with one exact hashtag. You can filter by date and page through results. Each item has the caption, engagement, owner and posting time. For Instagram's curated topic page, with generated context and suggested terms, use /v1/instagram/search/popular. Set media_type=reels to keep reels only. Cursor values go from 1 to 11; 12 or more returns 400.

Query parameters

hashtag
stringrequired
Hashtag to look up, with or without the #.
date_posted
string
Restricts results to posts from this recent period.

last-hourlast-daylast-weeklast-monthlast-year

media_type
string
all for both posts and reels, or reels for reels only. Defaults to all.

allreels

cursor
string
Cursor from the prior response; it is the next results page to fetch. Maximum is 11; 12 or higher returns a 400 response.
curl "https://api.pandorlabs.com/v1/instagram/search/hashtag?hashtag=makeup" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "hashtag": "funnydogs",
  "media_type": "all",
  "posts": [
    {
      "id": "3714950709444987377",
      "__typename": "XDTGraphVideo",
      "shortcode": "DOOJ_zSjcnx",
      "url": "https://www.instagram.com/reel/DOOJ_zSjcnx/",
      "caption": "Well we tried to be subtle…  #funnydogs #funny #whiteboxer #australianshepherd",
      "thumbnail_src": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/542212527_18130644664455761_8262846918103190683_n.jpg?stp=c0.509.1312.1312a_dst-jpg_e35_s640x640_sh2.08_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&_nc_oc=Q6cZ2gGAVcFN0K6Mo…",
      "display_url": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/542212527_18130644664455761_8262846918103190683_n.jpg?stp=dst-jpg_e35_p1080x1080_sh2.08_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=105&_nc_oc=Q6cZ2gGAVcFN0K6MoOopK41K4dWjOeZZa…",
      "video_url": "https://scontent-ord5-2.cdninstagram.com/o1/v/t2/f2/m86/AQNG_gCzevxl8xiNB2lVRlcV8c3o3r2ZyeLeWfaY4eaHdyRX3_Z1mty2jrHuH5Z66vTC5SXrhmpdG5re9MNyf1jCtWVyPKAWQFQ037o.mp4?_nc_cat=104&_nc_sid=5e9851&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_ohc=B…",
      "has_audio": false,
      "accessibility_caption": null,
      "product_type": "clips",
      "video_duration": 65.733,
      "clips_music_attribution_info": {
        "artist_name": "_layla_the_boxer",
        "song_name": "Original audio",
        "uses_original_audio": true,
        "should_mute_audio": false,
        "should_mute_audio_reason": "",
        "audio_id": "1303301604923923"
      },
      "is_video": true,
      "owner": {
        "id": "13582495760",
        "username": "_layla_the_boxer",
        "is_verified": true,
        "profile_pic_url": "https://scontent-ord5-3.cdninstagram.com/v/t51.2885-19/420493539_1460561894498614_4791883467164866946_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-ord5-3.cdninstagram.com&_nc…",
        "full_name": "Layla the Boxer",
        "is_private": false,
        "is_unpublished": false,
        "follower_count": 1369176,
        "post_count": 1184
      },
      "taken_at": "2025-09-05T12:51:42.000Z",
      "is_ad": false,
      "like_count": 35854,
      "is_affiliate": false,
      "is_paid_partnership": false,
      "location": null,
      "comment_count": 1263,
      "comments": [
        {
          "id": "18099897668494530",
          "text": "😂😅🤣😍❤️🥰",
          "owner": {
            "id": "70821489119",
            "is_verified": false,
            "profile_pic_url": "https://scontent-ord5-3.cdninstagram.com/v/t51.2885-19/466368394_545365701466258_2087161965910224562_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-ord5-3.cdninstagram.com&_nc_…",
            "username": "jesshman66"
          },
          "like_count": 0,
          "created_at": "2026-01-25T13:33:43.000Z"
        }
      ]
    }
  ],
  "cursor": "2"
}
GET/v1/instagram/search/profiles

Find accounts

1 request

Searches Instagram profiles and returns every account in the first ranked result set. The first 10 accounts are enriched with biography, links in bio, account flags, and follower, following, and media counts. Accounts beyond the first 10 carry their username, full name, native ID, URL, profile photo, and verification status, with detail fields set to null or empty. Results come in a single page. To get accounts, hashtags, places, and suggested keywords in one call, use /v1/instagram/search.

Query parameters

query
stringrequired
Profile name or username to look up.
curl "https://api.pandorlabs.com/v1/instagram/search/profiles?query=fitness+coach" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "query": "hormozi",
  "profiles": [
    {
      "id": "7547682342",
      "username": "hormozi",
      "full_name": "Alex Hormozi",
      "biography": null,
      "bio_links": [],
      "external_url": null,
      "is_private": null,
      "is_verified": true,
      "is_business_account": null,
      "is_professional_account": null,
      "category_name": null,
      "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.82787-19/example.jpg",
      "follower_count": null,
      "following_count": null,
      "media_count": null,
      "url": "https://www.instagram.com/hormozi/",
      "matched_from": "profile",
      "google_title": null,
      "google_description": null
    }
  ],
  "cursor": null
}
GET/v1/instagram/audio/reels

Reels using an audio track

1 request

Returns the reels Instagram lists on an audio page such as instagram.com/reels/audio/{audio_id}/. Supply the audio_id taken from that URL. When Instagram provides another page, send the cursor from the prior response to load it.

Query parameters

audio_id
stringrequired
The audio_id segment of the audio page's URL.
cursor
string
Cursor Instagram returned in the prior response.
curl "https://api.pandorlabs.com/v1/instagram/audio/reels?audio_id=1392969992841787" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "reels": [
    {
      "gen_ai_chat_with_ai_cta_info": null,
      "collaborator_edit_eligibility": false,
      "number_of_qualities": 6,
      "related_ads_pivots_media_info": "USER_NOT_IN_TEST_GROUP",
      "is_artist_pick": false,
      "translated_langs_for_autodub": [],
      "subtype_name_for_REST__": "XDTClipsMedia",
      "is_eligible_for_poe": false,
      "original_lang_for_translations": "en",
      "eligible_insights_entrypoints": "NONE",
      "igbio_product": null,
      "hidden_likes_string_variant": -1,
      "is_social_ufi_disabled": false,
      "boost_unavailable_reason": null,
      "boost_unavailable_identifier": null,
      "boost_unavailable_reason_v2": [],
      "client_cache_key": "MzkxNDQ4MzYyNDQ0NjgzOTU0NQ==.3",
      "can_reply": false,
      "photo_of_you": false,
      "media_attributions_data": [],
      "can_view_more_preview_comments": false,
      "mezql_token": "",
      "has_tagged_users": false,
      "is_eligible_content_for_post_roll_ad": false,
      "is_cutout_sticker_allowed": false,
      "is_photo_comments_composer_enabled_for_author": false,
      "hide_view_all_comment_entrypoint": false,
      "has_liked": false,
      "is_organic_product_tagging_eligible": false,
      "view_state_item_type": 128,
      "video_sticker_locales": [],
      "is_paid_partnership": false,
      "is_in_profile_grid": false,
      "is_tagged_media_shared_to_viewer_profile_grid": false,
      "should_show_author_pog_for_tagged_media_shared_to_profile_grid": false,
      "inventory_source": "recommended_clips_chaining_model",
      "integrity_review_decision": "pending",
      "has_delayed_metadata": false,
      "filter_type": 0,
      "deleted_reason": 0
    }
  ],
  "cursor": "Gsbyq....",
  "has_more": true
}
GET/v2/instagram/post/comments

Post comments

1 request15 requests with include_replies, charged even when no replies come back

Lists the comments left under an Instagram post or reel that is public. For every comment you get its text, creation time, the reply count if Instagram exposes it, and the author's username, user ID, verified flag and avatar URL. child_comment_count is null whenever Instagram hides that number. Pass include_replies=true to attach the first page of replies to each comment as replies, replies_cursor and has_more_replies. Because that triggers one extra Instagram replies lookup per comment, the request is billed a flat 15 requests even if no replies come back, runs far slower than a plain comments call, and can exceed the 29-second timeout. Page through more comments with the cursor.

Query parameters

url
stringrequired
Link to the Instagram post or reel.
cursor
string
Pagination cursor taken from the cursor field of the previous response.
include_replies
boolean
When true, adds the first page of replies to every comment. Billed at a flat 15 requests even with zero replies, far slower, and can exceed the 29-second timeout.
curl "https://api.pandorlabs.com/v2/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDOq6eV6iIgD" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "comments": [
    {
      "id": "18051843701642870",
      "text": "\"...but who wants to know people who don't love animals anyway?\". ❤️",
      "created_at": "2025-09-16T17:03:04.000Z",
      "comment_like_count": 0,
      "child_comment_count": 0,
      "replies": [],
      "replies_cursor": null,
      "has_more_replies": false,
      "user": {
        "is_verified": false,
        "id": "46773599357",
        "pk": "46773599357",
        "is_unpublished": null,
        "profile_pic_url": "https://scontent-dfw5-1.cdninstagram.com/v/t51.2885-19/542013919_18051324464559358_4060586438619554592_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-dfw5-1.cdninstagram.com&_n…",
        "username": "catherina_thijs",
        "fbid_v2": "17841446780736699"
      }
    }
  ],
  "cursor": "AQHSpoi6HyDbzYRMzrD........."
}
GET/v1/instagram/post/comment/replies

Replies to a comment

1 request

Returns the public replies under one Instagram comment. Supply the post or reel URL together with the parent comment id you got from the Comments endpoint. Each reply carries its text, timestamps, engagement counts, the parent comment ID and the author's details. While has_more is true, send cursor to load the next page.

Query parameters

url
stringrequired
Link to the Instagram post or reel.
comment_id
stringrequired
ID of the parent comment, as returned by the Comments endpoint.
cursor
string
Pagination cursor taken from cursor in the previous response.
curl "https://api.pandorlabs.com/v1/instagram/post/comment/replies?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FC8rKmYvsrck&comment_id=18038110327814211" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "comments": [
    {
      "id": "18277034998224667",
      "text": "@username Thanks for the reply!",
      "comment_like_count": null,
      "child_comment_count": 0,
      "created_at": "2024-06-28T06:20:32.000Z",
      "parent_comment_id": "18038110327814211",
      "user": {
        "id": "25621023419",
        "pk": "25621023419",
        "username": "username",
        "is_verified": false,
        "profile_pic_url": "https://instagram.fosu2-2.fna.fbcdn.net/....jpg"
      }
    }
  ],
  "cursor": null,
  "has_more": false
}
GET/v1/instagram/user/highlights

Story highlights of an account

1 request

Lists every story highlight album on an Instagram account. Each entry has the highlight ID, title, owner info (username and avatar) and the URL of its cover thumbnail. Identify the account by user_id or handle; user_id responds faster.

Query parameters

user_id
string
Numeric Instagram user ID. Faster than a handle.
handle
string
Instagram username. Prefer user_id for speed.
curl "https://api.pandorlabs.com/v1/instagram/user/highlights" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "highlights": [
    {
      "__typename": "GraphHighlightReel",
      "id": "18067016518767507",
      "cover_media": {
        "thumbnail_src": "https://scontent-atl3-1.cdninstagram.com/v/t51.2885-15/479737232_1405856350793820_7928432152706230890_n.jpg?stp=c0.248.640.640a_dst-jpg_e15_tt6&_nc_ht=scontent-atl3-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2QFp33CnPIjTITbJL483a_ZGgbaCZ_M2C…"
      },
      "cover_media_cropped_thumbnail": {
        "url": "https://scontent-atl3-1.cdninstagram.com/v/t51.2885-15/479737232_1405856350793820_7928432152706230890_n.jpg?stp=c0.202.640.640a_dst-jpg_e15_s150x150_tt6&_nc_ht=scontent-atl3-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2QFp33CnPIjTITbJL483a_ZG…"
      },
      "owner": {
        "__typename": "GraphUser",
        "id": "21393171",
        "profile_pic_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QFp33CnPIjTITbJL483a_ZGgbaCZ_M2CLjXKDaTtNtjnH0…",
        "username": "jane"
      },
      "title": "GRWM chats"
    }
  ]
}
GET/v1/instagram/user/highlight/detail

Items in a highlight

1 request

Returns everything inside one Instagram story highlight, looked up by its ID. The response holds the cover image, title, owner info, and an items array where each story lists its timestamp, media type, dimensions, image or video URLs, and any sticker or interactive element data. Handy for archiving or analysing a single highlight.

Query parameters

id
string
ID of the highlight album to expand.
curl "https://api.pandorlabs.com/v1/instagram/user/highlight/detail" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "id": "highlight:18067016518767507",
  "latest_reel_media": 1745272279,
  "seen": null,
  "can_reply": false,
  "can_gif_quick_reply": true,
  "can_reshare": true,
  "reel_type": "highlight_reel",
  "ad_expiry_timestamp_in_millis": null,
  "is_cta_sticker_available": null,
  "app_sticker_info": null,
  "should_treat_link_sticker_as_cta": null,
  "pool_refresh_ttl_in_sec": null,
  "can_react_with_avatar": false,
  "cover_media": {
    "cropped_image_version": {
      "width": 150,
      "height": 150,
      "url": "https://scontent-dub4-1.cdninstagram.com/v/t51.2885-15/479737232_1405856350793820_7928432152706230890_n.jpg?stp=c0.202.640.640a_dst-jpg_e15_s150x150_tt6&_nc_ht=scontent-dub4-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2QGmly2VJEPPnYd3yasHydMc…",
      "scans_profile": ""
    },
    "crop_rect": [
      0
    ],
    "media_id": "3574665805209826888_21393171",
    "full_image_version": null,
    "upload_id": null
  },
  "user": {
    "pk": "21393171",
    "pk_id": "21393171",
    "full_name": "Jane Williamson",
    "is_private": false,
    "strong_id__": "21393171",
    "id": "21393171",
    "username": "jane",
    "is_verified": true,
    "profile_pic_id": "3583980709961915639_21393171",
    "profile_pic_url": "https://scontent-dub4-1.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-dub4-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QGmly2VJEPPnYd3yasHydMcSwfCazUKlRXiU5HUJ-zQVPr…",
    "interop_messaging_user_fbid": 119713162748634,
    "transparency_product_enabled": false
  },
  "items": [
    {
      "pk": "3565907942018983442",
      "id": "3565907942018983442_21393171",
      "is_visual_reply_commenter_notice_enabled": true,
      "like_and_view_counts_disabled": false,
      "is_post_live_clips_media": false,
      "is_reshare_of_text_post_app_media_in_ig": false,
      "is_reel_media": true,
      "fbid": "17968033766718273",
      "device_timestamp": 1739309362129426,
      "caption_is_edited": false,
      "strong_id__": "3565907942018983442_21393171",
      "is_quicksnap_recap": false,
      "deleted_reason": 0,
      "mezql_token": "",
      "imported_taken_at": 1739305646,
      "should_request_ads": false,
      "is_terminal_video_segment": false,
      "integrity_review_decision": "pending",
      "client_cache_key": "MzU2NTkwNzk0MjAxODk4MzQ0Mg==.3",
      "comment_threading_enabled": true,
      "is_unified_video": false,
      "commerciality_status": "not_commercial",
      "caption_position": 0,
      "has_privately_liked": false,
      "filter_type": 0,
      "taken_at": 1739309361,
      "hide_view_all_comment_entrypoint": false,
      "is_comments_gif_composer_enabled": false,
      "video_sticker_locales": [],
      "is_dash_eligible": 1,
      "video_dash_manifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on…",
      "number_of_qualities": 4,
      "video_versions": [
        {
          "bandwidth": null,
          "height": 852,
          "type": 101,
          "url": "https://scontent-dub4-1.cdninstagram.com/o1/v/t16/f2/m78/AQN5lthB7AgZeog8GcsUwAQtYg4PrP5y41v_bUs-ydLXFkg6cTCxlHYvYO9pyOGdbZ_h0iB8TpaRmEFn7KAjENMlWQGfsqMod9-9hpU.mp4?stp=dst-mp4&efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSI…",
          "width": 480
        }
      ],
      "video_duration": 55.85,
      "has_audio": true,
      "can_viewer_save": false,
      "shop_routing_user_id": null,
      "is_organic_product_tagging_eligible": false,
      "product_suggestions": [],
      "photo_of_you": false
    }
  ],
  "is_nux": false,
  "title": "GRWM chats",
  "created_at": 1743889595,
  "is_pinned_highlight": false,
  "prefetch_count": 0,
  "media_count": 25,
  "media_ids": [
    "3565907942018983442"
  ],
  "is_converted_to_clips": false,
  "disabled_reply_types": [
    "story_remix_reply"
  ],
  "highlight_reel_type": "DEFAULT",
  "is_added_to_main_grid": false,
  "is_archived": false,
  "is_fit_green": true
}
GET/v1/instagram/profile/post-count

Number of posts

1 request

Reads the post total displayed on a public Instagram profile. Reach for it when Profile gives a null media_count or when edge_owner_to_timeline_media.count only reflects the current batch. It runs separately, so the main Profile endpoint stays fast. A full figure such as 12,345 Posts comes back as that exact integer with is_estimated false. Above 10,000 posts Instagram may only show an abbreviated figure (for example 12K or 1.2M Posts); with allow_estimated=true you receive the scaled integer and is_estimated true. Without that opt-in (omitted or false), an abbreviated count yields a 422 explaining exact precision is unavailable, and you are not charged. If Instagram shows no count at all, you get an error and nothing is deducted.

Query parameters

handle
stringrequired
Instagram username.
allow_estimated
boolean
Opt in to scaled values when Instagram shortens the count for accounts above 10,000 posts. False by default, in which case an estimate-only profile returns an uncharged 422.
curl "https://api.pandorlabs.com/v1/instagram/profile/post-count?handle=lifestyleperfume" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "handle": "lifestyleperfume",
  "media_count": 2774,
  "is_estimated": false
}
GET/v1/instagram/user/embed

Profile embed markup

1 request

Returns the raw HTML for an Instagram profile embed widget. The response is a single html string you can drop into a web page to render the profile card. Takes the account handle as input.

Query parameters

handle
stringrequired
Instagram username.
curl "https://api.pandorlabs.com/v1/instagram/user/embed?handle=jane" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "html": "<!DOCTYPE html>\n<html lang=\"en\" id=\"facebook\" class=\"no_js\">\n<head><meta charset=\"utf-8....."
}