Instagram Data API — Try the interactive demo
A guided live test. Prefer the raw endpoints? See the API reference & playground →
Enter an API key from your Dashboard to enable the examples below. Requests send it to this platform for authentication.
Log in / Sign up · Dashboard →
Please paste your API key first.
Endpoints
Your API key is attached automatically to each call.
/api/project/instagram/user-info Get Instagram Profile by Username or ID
Details
Resolve a public Instagram account by username or numeric user ID. Pass username_or_id, e.g. the handle instagram or the ID 25025320; both forms resolve to the same record. The live-verified response wraps the profile in data: id, username, full_name, biography, follower_count, following_count, media_count, is_verified, is_private, profile_pic_url and profile_pic_url_hd, plus external_url, bio_links and account-category fields when present. Set include_about=true to add an about object with country and date_joined where the profile exposes them. A miss returns HTTP 200 with exactly {"detail":"Not found"} — treat it as a business-level not-found, not as a profile.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/user-search Search Instagram Accounts by Keyword
Details
Find public Instagram accounts matching a name or keyword. Pass keyword, e.g. instagram. The live-verified response returns data.count and data.items[], where each candidate carries id, username, full_name, is_verified, is_private, profile_pic_url and profile_pic_id; a search for instagram returned 47 accounts led by the verified official account (id 25025320). Results are relevance-ranked candidates — a search match is not proof of identity, so confirm a chosen account with the user info endpoint. An unmatched keyword returns an empty items list.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/user-followers Get Instagram Follower List by Username or ID
Details
Page through the accessible follower list of a public account. Pass username_or_id; leave pagination_token empty on the first request, then pass the top-level pagination_token from the previous response to continue. The live-verified response contains data.count (records in this page), data.total (the account's reported follower total) and data.items[] with id, username, full_name, is_private, is_verified, profile_pic_url and latest_story_ts per follower. A page for instagram returned 50 records against a reported total in the hundreds of millions. Treat each page as a sample: page count, reported total and collected records are three different numbers, and private accounts in the list do not expose their content.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-following Get Accounts an Instagram User Follows
Details
List the accounts a public Instagram user follows. Pass username_or_id and optionally count (default and maximum 50 per page); continue with the pagination_token returned by the previous response. Records mirror the follower-list shape: id, username, full_name, is_private, is_verified and profile_pic_url. This is the outgoing-follow direction — a brand's following list is often a curated map of partners, sister accounts and organizations it endorses, complementing the follower list for relationship research.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/similar-users Find Similar Instagram Accounts
Details
Suggest accounts similar to a given public Instagram username or user ID. Pass username_or_id, e.g. mrbeast or 2278169415. The documented response returns a list of related account records with the usual identity fields: id, username, full_name, verification flag and profile picture. Treat suggestions as discovery leads to review, not as a measured similarity score — the endpoint does not expose why two accounts were linked, so validate each suggestion with a profile lookup before shortlisting.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/user-posts Get Instagram User Posts by Username or ID
Details
Fetch the recent post feed of a public Instagram account. Pass username_or_id; leave pagination_token empty on the first request and pass the returned top-level pagination_token to continue. The live-verified response contains data.count, data.items[] and a data.user summary of the author (id, username, full_name, is_verified, is_private, profile_pic_url). Each item exposes id, code (the shortcode), taken_at (Unix seconds), caption.text with extracted hashtags and mentions, media_type (1=photo, 2=video, 8=carousel), like_count, comment_count, play_count on videos, plus image_versions2 / video_versions media URLs and carousel_media for albums. A call for instagram returned 12 recent posts, all owned by the account, with current timestamps. Treat page size as observed behavior rather than a contract, and deduplicate by media id when merging pages.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/post-detail Get Instagram Post or Reel Details
Details
Resolve a single post, Reel or IGTV item by shortcode or URL. Pass code_or_url — the segment after /p/, /reel/ or /tv/ (e.g. DeM-xDCA2W5) or a full instagram.com URL. The live-verified response returns data with id, code, taken_at, caption (text plus extracted hashtags and mentions), user (owner id, username and verification), media_type, like_count, comment_count, image_versions2 / video_versions media URLs, carousel_media for albums, location when tagged, and clips_metadata (audio_canonical_id, audio_type, reuse flags) for Reels. A lookup of shortcode DeM-xDCA2W5 returned media id 4002850218218579385 owned by instagram with matching caption and timestamp. Keep the returned numeric media id as your join key across endpoints.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-reels Get Instagram Reels by Username or ID
Details
Fetch only the Reels (short-form videos) published by a public account. Pass username_or_id; continue with the pagination_token from the previous response. Items follow the post shape — id, code, taken_at, caption, media_type=2 with video_versions and clips_metadata, like_count, comment_count and play_count — but are restricted to the account's Reels tab, so you do not need to filter mixed feed items yourself.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/user-tagged-posts Get Posts Tagging an Instagram User
Details
List public posts that tag a given Instagram account. Pass username_or_id; continue with the pagination_token from the previous response. Items follow the standard post shape — id, code, taken_at, caption, author user object, media_type and engagement counts — but the authors are other accounts that tagged the subject, which is a different signal from caption mentions or hashtags. Use it to review user-generated content involving a brand or creator.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/hashtag-posts Get Instagram Hashtag Posts
Details
Collect public posts tagged with a hashtag. Pass keyword without the leading '#', e.g. travel. feed_type selects top (the default), recent or reels; paginate the recent and reels feeds with pagination_token, and the top feed with the next_page value from the previous response. The live-verified response returns data.count and data.items[] in the standard post shape — id, code, taken_at, caption with hashtags, author user object, media_type, like_count and comment_count — plus a top-level continuation token. A call for travel with feed_type=recent returned 24 current posts whose captions all contained #travel. Deduplicate by media id, because successive collection windows overlap.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
/api/project/instagram/search-hashtag Search Instagram Hashtags by Keyword
Details
Discover hashtag names matching a keyword. Pass keyword, e.g. travel. The documented response returns candidate tags with their names and media-use metadata where available, so you can expand a seed topic into a reviewed tag vocabulary before collecting posts. Hashtag discovery is a naming step — pair each chosen tag with the hashtag posts endpoint for content.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/search-reels Search Instagram Reels by Keyword
Details
Search public Reels by keyword. Pass keyword, e.g. travel; continue with the pagination_token from the previous response. Items follow the Reel post shape: id, code, taken_at, caption, author user object, video renditions, clips_metadata audio fields and engagement counts. Keyword matching only finds candidates — verify a Reel's author and fit with a profile lookup instead of assuming relevance from the match alone.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/post-comments Get Instagram Post Comments
Details
Read comments on a public post, Reel or IGTV item. Pass code_or_url (shortcode or URL); optionally sort_by recent (default) or popular; continue with the pagination_token from the previous response. The documented response returns the post's caption record, comment_count and comments[], where each comment carries pk (the comment id), text, created_at, comment_like_count, child_comment_count and a user object with id, username, verification and privacy flags, and profile picture. Keep each comment's pk — it is the comment_id input for the comment replies endpoint.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query |
/api/project/instagram/post-comment-replies Get Replies to an Instagram Comment
Details
Expand the reply thread under one comment. Pass code_or_url for the post plus comment_id — the pk of a comment returned by the post comments endpoint; continue with the pagination_token from the previous response. The documented response returns child_comment_count and child_comments[], where each reply carries pk, text, created_at, comment_like_count and an author user object. This is retrieval for analysis, not automated replying.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/post-likes Get Instagram Post Liker List
Details
Sample the visible likers of a public post or Reel. Pass code_or_url; count selects up to 50 records per page (default 50); continue with the end_cursor value from the previous response. The documented response returns data.count (the post's total like count), an end_cursor and likes[], where each record carries id, username, full_name, is_private, is_verified and profile_pic_url. The accessible sample is not the complete liker list — compare samples by account id and avoid completeness claims.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/instagram/search-location Search Instagram Locations by Name
Details
Resolve a place name to candidate Instagram location records. Pass keyword, e.g. paris. The live-verified response returns data.count and data.items[] with id, name, short_name, address, city, latitude, longitude and facebook_places_id where available. A search for paris returned 30 locations including the Louvre Museum, the Eiffel Tower and Notre-Dame with plausible coordinates. Disambiguate same-name venues with the returned city, address and coordinates instead of picking the first result blindly.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/search-coordinates Find Instagram Places Near Coordinates
Details
Discover Instagram place records near a geographic point. Pass latitude (positive = north) and longitude (positive = east) as decimal strings, e.g. 40.7 and -74. The documented response returns nearby place candidates with the usual location fields, ready to resolve through the location info and location posts endpoints. Use it to find the place record for a venue whose coordinates you already know; the endpoint locates places, not people.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/location-info Get Instagram Location Details by ID
Details
Resolve an Instagram location ID to its place record. Pass location_id — found in search results or in a post's location data. The documented response returns data with id, name, slug, category, media_count and location_data (address_street, city_name, latitude, longitude, facebook_places_id); some venues also return hours, phone, price_range and website. Address or coordinate fields can be empty, so tolerate missing values when labeling a dataset.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/posts-location Get Instagram Posts at a Location
Details
Collect public posts tagged at an Instagram location. Pass location_id; continue with the pagination_token from the previous response. The documented response returns media items in the standard post shape — id, code, taken_at, caption, author user object, media_type and engagement counts — associated with the place. Geotags are content labels chosen by authors: treat them as claimed context, not proof of physical presence.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-stories Get Instagram Stories by Username or ID
Details
Fetch the currently available Stories of a public Instagram account. Pass username_or_id. Stories are ephemeral: the response reflects what is visible at collection time, items carry their own media URLs and timestamps, and expired or deleted Stories are not recoverable through this endpoint. Set url_embed_safe=true if returned media URLs must tolerate cross-origin embedding; media links are time-limited either way.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-highlights List Instagram Highlights by Username or ID
Details
List the highlight collections pinned on a public Instagram profile. Pass username_or_id. The documented response returns highlight records with id (in highlight:... form), title, cover media and item counts — the inventory step before fetching an individual highlight's contents. Pass a returned id to the highlight detail endpoint to read its media.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-highlight-detail Get Instagram Highlight Contents by ID
Details
Read the media inside one highlight collection. Pass highlight_id — an id from the highlights list (the numeric part, e.g. 17951474176899044). The documented response returns the highlight record with its items[]: each item carries media id, shortcode, timestamps and image or video renditions, alongside the collection's cover and title metadata. Item media URLs are time-limited; re-fetch when links expire.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/instagram/search-music-audio Search Instagram Audio by Keyword
Details
Find audio records — licensed songs and original sounds — by keyword. Pass keyword, e.g. a song title or artist name. The documented response returns candidate audio records with title, artist and identifier fields. Confirm the intended record through the audio info endpoint, then list Reels using it via the audio posts endpoint. Discovery does not grant reuse rights for the underlying music.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/music-audio-info Get Instagram Audio Details by ID
Details
Resolve an audio canonical ID to its metadata record. Pass audio_canonical_id — found in a Reel's clips_metadata or through audio search. The documented response returns data with title, artist (id, username, verification, profile picture), duration_in_ms, audio_id, time_created, is_original_audio, is_reuse_disabled, total_reels and a download_url where exposed. Use the canonical ID, not the track title, as the dataset key — titles are ambiguous.
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/instagram/posts-music Get Instagram Reels Using an Audio
Details
List public Reels that use a given audio record. Pass audio_canonical_id; continue with the pagination_token from the previous response. The documented response returns the audio page context (formatted_media_count and available tabs) plus items[] of Reels in the standard post shape: id, code, taken_at, caption, author user object, video renditions and engagement counts. Repeat collection for selected audio IDs to study creator participation over time — a page is a sample, not every use of the sound.
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |