{"id":"18cae41e-bd58-4adb-9e85-553a0c333a65","slug":"instagram-com-api","name":"instagram.com API","description":"Discover trending Instagram Reels and explore detailed information about specific reels and public creator profiles in real-time. Build applications that showcase viral content, analyze reel performance, and access creator insights without needing authentication.","front_facing_description":"Discover trending Instagram Reels and explore detailed information about specific reels and public creator profiles in real-time. Build applications that showcase viral content, analyze reel performance, and access creator insights without needing authentication.","source_url":"https://www.instagram.com","is_authenticated":false,"canonical_scraper_id":"83bac21b-efd3-4274-a70d-f8c54a03ae0b","apis":[{"method":"GET","endpoint_name":"get_trending_reels","description":"Get currently trending/viral reels from Instagram's Reels tab. Returns a short list of popular reels with engagement metrics, user info, captions, and audio details. No parameters required — returns whatever Instagram is currently featuring. The set rotates frequently; expect 5–10 reels per call. Optional filters can narrow results by hashtag or time range; these are applied locally after fetching from Instagram, so an empty result is possible when no trending reel matches the filter.","input_params":{"hashtag":{"type":"string","required":false,"description":"Filter reels whose caption contains this hashtag (without the # prefix, e.g. 'fitness', 'cooking'). Case-insensitive match against #<value> in the caption text. Omitting returns all trending reels unfiltered."},"end_time":{"type":"string","required":false,"description":"Include only reels posted at or before this time. Accepts a unix timestamp (e.g. '1787600000') or an ISO 8601 date string (e.g. '2025-06-22T00:00:00'). Omitting applies no upper time bound."},"start_time":{"type":"string","required":false,"description":"Include only reels posted at or after this time. Accepts a unix timestamp (e.g. '1787400000') or an ISO 8601 date string (e.g. '2025-06-20T00:00:00'). Omitting applies no lower time bound."}},"return_schema":{"type":"object","fields":{"count":"integer — number of reels returned","reels":"array of reel objects each containing shortcode, id, taken_at, username, user_id, full_name, is_verified, caption, like_count, comment_count, view_count, play_count, audio (object with title/artist/is_original or null), thumbnail_url, original_width, original_height, and video_versions (array of objects with width, height, url)"},"sample":{"data":{"count":3,"reels":[{"id":"3911448041335602393","url":"https://www.instagram.com/reel/DZIQUUVNLzZ/","audio":{"title":"Original audio","artist":"eva.pepaj","is_original":true},"caption":"The most peaceful moments of a man’s life…","user_id":"221126320","taken_at":1780501022,"username":"eva.pepaj","full_name":"Evaandjavier","has_audio":true,"shortcode":"DZIQUUVNLzZ","like_count":1176254,"play_count":null,"view_count":null,"is_verified":true,"product_type":"clips","comment_count":18797,"thumbnail_url":"https://scontent-ams2-1.cdninstagram.com/v/...","original_width":1080,"original_height":1920}]},"status":"success"}},"initiates_session":false,"price":2,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.reels","op":"array_min_len","value":1},{"path":"$.data.reels[0].shortcode","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_reel_details","description":"Get detailed information about a specific Instagram Reel by its shortcode. Returns engagement metrics, video version URLs, user info, caption, audio details, location if available, the reel's canonical url, and its embed_code: the ready-to-paste HTML snippet Instagram's Embed feature produces for a reel (a captioned <blockquote class=\"instagram-media\"> pointing at the reel permalink plus the Instagram embed.js script tag), along with embed_url, the public embeddable page for the reel. One page fetch per call. The shortcode is the alphanumeric identifier visible in reel URLs. A shortcode Instagram does not recognize yields a not-found input error.","input_params":{"shortcode":{"type":"string","required":true,"description":"The reel's shortcode identifier, found in the reel URL path segment (e.g. 'DZPkGpgoceS' from https://www.instagram.com/reel/DZPkGpgoceS/).","domain":{"kind":"derived","generator":{"path":"$.data.recent_reels[0].shortcode","type":"derived","from_endpoint":"get_full_user_profile"}}}},"return_schema":{"type":"object","fields":{"id":"string — media pk","url":"string — canonical reel permalink","audio":"object with title, artist, is_original or null","caption":"string or null","user_id":"string","location":"object with name, city, pk or null","taken_at":"integer unix timestamp","username":"string","embed_url":"string — URL of the reel's public embeddable page (captioned variant), suitable as an iframe src","full_name":"string","shortcode":"string","embed_code":"string — HTML embed snippet for the reel (captioned instagram-media blockquote referencing the reel permalink, followed by the Instagram embed.js script tag), ready to paste into a web page","like_count":"integer","is_verified":"boolean","comment_count":"integer","video_versions":"array of objects with width, height, and url"},"sample":{"data":{"id":"3972372237689994734","url":"https://www.instagram.com/reel/Dcgs4DvIr3u/","audio":null,"caption":"More than a fragrance, a way of life. #CR7 #CR7FRAGRANCES","user_id":"1421738679","location":null,"taken_at":1787763732,"username":"cr7cristianoronaldo","embed_url":"https://www.instagram.com/reel/Dcgs4DvIr3u/embed/captioned/","full_name":"CR7","has_audio":true,"shortcode":"Dcgs4DvIr3u","embed_code":"<blockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https://www.instagram.com/reel/Dcgs4DvIr3u/?utm_source=ig_embed&amp;utm_campaign=loading\" data-instgrm-version=\"14\"><a href=\"https://www.instagram.com/reel/Dcgs4DvIr3u/?utm_source=ig_embed&amp;utm_campaign=loading\" target=\"_blank\">View this post on Instagram</a></blockquote><script async src=\"//www.instagram.com/embed.js\"></script>","like_count":1809208,"play_count":null,"view_count":null,"is_verified":true,"product_type":"clips","comment_count":24478,"thumbnail_url":"https://scontent-fra3-1.cdninstagram.com/v/t51.82787-15/787244122_n.jpg","original_width":1080,"video_versions":[{"url":"https://scontent-fra3-1.cdninstagram.com/o1/v/t2/f2/m86/example.mp4","width":1080,"height":1920}],"original_height":1920},"status":"success"}},"initiates_session":false,"price":2,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.shortcode","op":"not_null"},{"path":"$.data.like_count","op":"not_null"},{"path":"$.data.video_versions","op":"array_min_len","value":1},{"path":"$.data.embed_code","op":"not_null"}],"empty_is_valid":false,"recipe_version":2}},{"method":"GET","endpoint_name":"get_user_profile","description":"Get public profile information for an Instagram user. Returns biography, follower/following counts, media count, profile picture URL, verification status, and bio links. Works only for public profiles. Instagram intermittently throttles its logged-out profile API; when that happens the endpoint transparently reads the server-rendered profile page instead, in which case external_url and category_name are null while the core counts, bio, picture and bio_links remain populated. An unknown username yields a not-found input error.","input_params":{"username":{"type":"string","required":true,"description":"Instagram username without the @ prefix (e.g. 'instagram', 'natgeo').","domain":{"kind":"large_enum","sample":["instagram","cristiano"],"generator":{"type":"sample_pick"},"cardinality":"millions"}}},"return_schema":{"type":"object","fields":{"id":"string","username":"string","bio_links":"array of objects with title and url fields","biography":"string","full_name":"string","has_clips":"boolean","is_private":"boolean","is_verified":"boolean","media_count":"integer","external_url":"string or null (null when served from the profile page fallback)","follower_count":"integer","following_count":"integer","profile_pic_url":"string"},"sample":{"data":{"id":"25025320","fbid":"17841400039600391","username":"instagram","bio_links":[{"url":"http://help.instagram.com","title":""}],"biography":"Discover what's new on Instagram 🔎✨","full_name":"Instagram","has_clips":true,"is_private":false,"is_verified":true,"media_count":8480,"external_url":"http://help.instagram.com/","category_name":null,"follower_count":685908265,"following_count":219,"profile_pic_url":"https://scontent-ams2-1.cdninstagram.com/v/..."},"status":"success"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.username","op":"not_null"},{"path":"$.data.follower_count","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_full_user_profile","description":"Get comprehensive public profile data for an Instagram user including metadata, recent posts, and recent reels. Returns full profile information (bio, follower/following counts, verification status, business info), up to 12 recent timeline posts, and up to 12 recent reels. Total post and reel counts are included for reference but pagination beyond the initial batch is not available without authentication. Works only for public profiles. Instagram intermittently throttles its logged-out profile API; when that happens the endpoint transparently reads the server-rendered profile and reels pages instead (two page fetches). In that fallback mode post-level like_count, comment_count, taken_at_timestamp, video_url and dimensions are null, reel-level taken_at_timestamp, video_url, video_duration and caption are null, total_reels_count is null, and business/professional flags, category_name, external_url and highlight_reel_count are null; shortcodes, ids, display URLs, captions on posts, reel engagement counts and profile counts remain populated. When Instagram also rate-limits the profile page itself (it redirects to its login page), the call returns a retryable 503 blocked error rather than data; retrying later succeeds. An unknown username yields a not-found input error.","input_params":{"username":{"type":"string","required":true,"description":"Instagram username without the @ prefix (e.g. 'instagram', 'natgeo').","domain":{"kind":"large_enum","sample":["cristiano","instagram"],"generator":{"type":"sample_pick","strategy":"first"},"cardinality":"millions"}}},"return_schema":{"type":"object","fields":{"profile":"object containing full profile metadata (username, full_name, biography, follower_count, following_count, media_count, is_verified, is_private, profile_pic_url, bio_links, etc.)","recent_posts":"array of up to 12 recent post objects with id, shortcode, typename, is_video, taken_at_timestamp, display_url, video_url, like_count, comment_count, caption, location, product_type, dimensions (engagement/timestamp/video fields are null in the profile-page fallback mode)","recent_reels":"array of up to 12 recent reel objects with id, shortcode, taken_at_timestamp, display_url, video_url, video_view_count, video_duration, like_count, comment_count, caption, title (timestamp/video/caption fields are null in the profile-page fallback mode)","total_posts_count":"integer — total number of posts on the profile","total_reels_count":"integer or null — total number of reels on the profile (null in the profile-page fallback mode)","recent_posts_count":"integer — number of posts returned in this response","recent_reels_count":"integer — number of reels returned in this response"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.profile.username","op":"not_null"},{"path":"$.data.profile.follower_count","op":"not_null"},{"path":"$.data.recent_posts","op":"array_min_len","value":1}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_post_details","description":"Get detailed information about a specific Instagram post by its shortcode. Returns engagement metrics (like_count, comment_count), media details (display_url, video_url if applicable, dimensions, is_video), caption, taken_at timestamp, user info (username, full_name, is_verified), location if available, product_type, carousel_media for multi-slide posts, the post's canonical url, and its embed_code: the ready-to-paste HTML snippet Instagram's Embed feature produces for a post (a captioned <blockquote class=\"instagram-media\"> pointing at the post permalink plus the Instagram embed.js script tag), along with embed_url, the public embeddable page for the post. Works for photo posts, carousels, and video posts. One page fetch per call. The shortcode is the alphanumeric identifier from a post URL (e.g. 'C0xFHGOrBN7' from instagram.com/p/C0xFHGOrBN7/). A shortcode Instagram does not recognize yields a not-found input error.","input_params":{"shortcode":{"type":"string","required":true,"description":"The post's shortcode identifier, found in the post URL path segment (e.g. 'C0xFHGOrBN7' from https://www.instagram.com/p/C0xFHGOrBN7/).","domain":{"kind":"derived","generator":{"path":"$.data.recent_posts[0].shortcode","type":"derived","from_endpoint":"get_full_user_profile"}}}},"return_schema":{"type":"object","fields":{"id":"string — media pk","url":"string — canonical post permalink","caption":"string or null — post caption text","user_id":"string — post author's user pk","is_video":"boolean — whether the post contains video","location":"object with name, city, pk or null","taken_at":"integer unix timestamp","username":"string — post author's username","embed_url":"string — URL of the post's public embeddable page (captioned variant), suitable as an iframe src","full_name":"string — post author's display name","shortcode":"string — the post's shortcode","video_url":"string or null — video URL if the post is a video","dimensions":"object with width and height integers","embed_code":"string — HTML embed snippet for the post (captioned instagram-media blockquote referencing the post permalink, followed by the Instagram embed.js script tag), ready to paste into a web page","like_count":"integer — number of likes","display_url":"string — URL of the display image","is_verified":"boolean — whether the author is verified","product_type":"string — media product type (e.g. 'feed', 'carousel_container', 'clips')","comment_count":"integer — number of comments","carousel_media":"array of slide objects (each with display_url, video_url, dimensions, is_video) when the post is a carousel, or null for non-carousel posts"},"sample":{"data":{"id":"3988331385119482653","url":"https://www.instagram.com/p/DdZZkOAlqMd/","caption":"Big goals start with small daily habits. Stay focused. Be consistent. #FuelLikeRonaldo","user_id":"15890625","is_video":false,"location":null,"taken_at":1789666186,"username":"herbalife","embed_url":"https://www.instagram.com/p/DdZZkOAlqMd/embed/captioned/","full_name":"Herbalife","shortcode":"DdZZkOAlqMd","video_url":null,"dimensions":{"width":1080,"height":1350},"embed_code":"<blockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https://www.instagram.com/p/DdZZkOAlqMd/?utm_source=ig_embed&amp;utm_campaign=loading\" data-instgrm-version=\"14\"><a href=\"https://www.instagram.com/p/DdZZkOAlqMd/?utm_source=ig_embed&amp;utm_campaign=loading\" target=\"_blank\">View this post on Instagram</a></blockquote><script async src=\"//www.instagram.com/embed.js\"></script>","like_count":1686254,"display_url":"https://scontent-fra3-1.cdninstagram.com/v/t51.82787-15/813832242_n.jpg","is_verified":true,"product_type":"carousel_container","comment_count":18926,"carousel_media":[{"is_video":false,"video_url":null,"dimensions":{"width":1080,"height":1350},"display_url":"https://scontent-fra3-1.cdninstagram.com/v/t51.82787-15/813832242_n.jpg"}]},"status":"success"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.shortcode","op":"not_null"},{"path":"$.data.like_count","op":"not_null"},{"path":"$.data.display_url","op":"not_null"},{"path":"$.data.embed_code","op":"not_null"}],"empty_is_valid":false,"recipe_version":2}},{"method":"GET","endpoint_name":"search_content","description":"Search for public Instagram content by keyword. Returns up to 12 popular/trending media items matching the query, sourced from Instagram's popular search page. Results are predominantly reels (video content) with engagement metrics, user info, and thumbnail URLs. Fields like like_count, comment_count, view_count, and taken_at may be null in search results since Instagram's search surface provides limited metadata per item compared to individual detail endpoints.","input_params":{"query":{"type":"string","required":true,"description":"Search keyword or phrase (e.g. 'travel', 'fitness motivation', 'cooking recipes').","domain":{"kind":"large_enum","sample":["travel","food","fitness"],"generator":{"type":"sample_pick"},"cardinality":"millions"}}},"return_schema":{"type":"object","fields":{"count":"integer — number of items returned","items":"array of media objects each containing shortcode, id, media_type, username, is_verified, caption, like_count, comment_count, view_count, play_count, thumbnail_url, taken_at, url","query":"string — the search query that was used"},"sample":{"data":{"count":12,"items":[{"id":"3809847048594935553","caption":"Switzerland all the year","taken_at":null,"username":"life_samour_style","shortcode":"DTfS7SMEk8B","like_count":null,"media_type":"reel","play_count":30073400,"view_count":null,"is_verified":true,"comment_count":null,"thumbnail_url":"https://scontent-phx1-1.cdninstagram.com/v/t51.71878-15/example.jpg"}],"query":"travel"},"status":"success"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.items","op":"array_min_len","value":1},{"path":"$.data.items[0].shortcode","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}}],"sample_inputs":{"search_content":{"query":"travel"},"get_post_details":{"shortcode":"Ddr0pHIgJBi"},"get_reel_details":{"shortcode":"Dcgs4DvIr3u"},"get_user_profile":{"username":"instagram"},"get_trending_reels":{"start_time":"2025-06-20T00:00:00"},"get_full_user_profile":{"username":"cristiano"}},"prefill_inputs":{"get_user_profile":{"username":"instagram"},"get_full_user_profile":{"username":"cristiano"},"search_content":{"query":"travel"}},"last_verified_at":"2026-10-31T21:32:43.867055+00:00","endpoint_health":[{"endpoint_name":"get_full_user_profile","status":"healthy","last_checked_at":"2026-10-31T10:23:15.54009+00:00","last_verified_at":"2026-10-31T10:23:15.54009+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"healthy"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"healthy"}]},{"endpoint_name":"get_user_profile","status":"healthy","last_checked_at":"2026-10-31T21:32:43.867055+00:00","last_verified_at":"2026-10-31T21:32:43.867055+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"healthy"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"healthy"}]},{"endpoint_name":"get_reel_details","status":"healthy","last_checked_at":"2026-10-26T14:04:25.20956+00:00","last_verified_at":"2026-10-26T14:04:25.20956+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"healthy"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"healthy"}]},{"endpoint_name":"get_post_details","status":"healthy","last_checked_at":"2026-10-26T14:04:25.20956+00:00","last_verified_at":"2026-10-26T14:04:25.20956+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"healthy"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"healthy"}]},{"endpoint_name":"search_content","status":"healthy","last_checked_at":"2026-10-26T14:04:25.20956+00:00","last_verified_at":"2026-10-26T14:04:25.20956+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"healthy"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"healthy"}]},{"endpoint_name":"get_trending_reels","status":"healthy","last_checked_at":"2026-10-30T11:13:38.302229+00:00","last_verified_at":"2026-10-30T11:13:38.302229+00:00","recent_runs":[{"at":"2026-10-26T14:04:25.209560+00:00","status":"healthy"},{"at":"2026-10-19T14:00:25.405128+00:00","status":"healthy"},{"at":"2026-10-16T02:04:52.908131+00:00","status":"healthy"},{"at":"2026-10-15T19:03:52.965196+00:00","status":"ambiguous"},{"at":"2026-10-15T13:03:52.943855+00:00","status":"ambiguous"}]}],"sdk_usage_example":null,"sdk_delivery_state":"absent","summary":"Access trending Instagram Reels, individual reel details, and public user profiles without authentication.","updated_at":"2026-09-25T16:15:05.562086+00:00","user_variants":[],"latest_version":16,"user_status":null,"user_scraper_id":null,"contributes_to_marketplace":true,"pinned_version":null,"seo_content":{"faqs":[{"a":"Yes. Meta offers the Instagram Graph API (developers.facebook.com/docs/instagram-api) and the Instagram Basic Display API. Both require app review, approved permissions, and — in most cases — user OAuth tokens. They do not expose trending Reels or unauthenticated public profile lookups in the same way this API does.","q":"Does Instagram have an official developer API?"},{"a":"`get_user_profile` returns a flat profile object: biography, follower/following counts, media count, bio_links, is_verified, is_private, and external_url. `get_full_user_profile` returns all of that inside a `profile` sub-object, plus two arrays — `recent_posts` and `recent_reels` — each capped at 12 items, along with aggregate counts (`total_posts_count`, `total_reels_count`) for the account.","q":"What does `get_full_user_profile` return compared to `get_user_profile`?"},{"a":"Not currently. `get_post_details` and `get_reel_details` return `comment_count` as an integer but do not return the comment text or commenter data. You can fork this API on Parse and revise it to add a comment-fetching endpoint.","q":"Can I retrieve comments on a post or reel?"},{"a":"No. `get_user_profile` and `get_full_user_profile` only return data for public profiles; the `is_private` flag in the response will indicate when an account is private. Posts and reels from private accounts are not accessible. You can fork this API on Parse and revise it if your use case requires detecting private-account states in bulk.","q":"Does the API cover private Instagram accounts?"},{"a":"The endpoint returns whatever Instagram is currently featuring at the moment of the request — there is no cache TTL you control. The set of returned reels rotates frequently, so two calls made minutes apart may return partially different results. The response includes a `count` field and typically returns 5–12 items per call.","q":"How fresh is the trending Reels data from `get_trending_reels`?"}],"keywords":["instagram reels api","instagram trending reels api","instagram public profile api","instagram post details api","instagram follower count api","instagram search content api","instagram reel engagement metrics api","instagram no auth api","instagram bio links api","instagram shortcode lookup api","instagram media count api","instagram reel audio details api","instagram location tagged reels api"],"use_cases":["Track which Reels are trending in real time using `get_trending_reels` for a viral content dashboard.","Monitor a public creator's follower growth over time by polling `get_user_profile` for `follower_count` and `media_count`.","Build a competitor analysis tool by comparing recent post engagement from `get_full_user_profile` across multiple accounts.","Populate a content discovery feed by running keyword queries through `search_content` and displaying matching thumbnails and captions.","Detect location-tagged Reels by extracting the `location.city` and `location.name` fields from `get_reel_details`.","Audit brand profiles by reading `bio_links`, `biography`, and `external_url` from `get_user_profile`.","Identify video posts within a profile by filtering the `recent_posts` array from `get_full_user_profile` on the `is_video` flag."],"meta_title":"Instagram API – Reels, Profiles & Posts","generated_at":"2026-08-06T21:37:39.998173+00:00","lead_paragraph":"This API covers 6 endpoints for reading public Instagram data: trending reels, individual reel and post details, public user profiles, full profile snapshots with recent content, and keyword-based content search. The `get_full_user_profile` endpoint alone returns up to 12 recent posts and 12 recent reels alongside follower counts, biography, verification status, and business metadata — all in a single call.","schema_version":2,"meta_description":"Access trending Instagram Reels, public profile data, post details, and keyword search results via a clean REST API. No authentication required.","primary_category":"social_media","long_description_md":"## Trending and Individual Reels\n\n`get_trending_reels` returns whatever Instagram is currently featuring on its Reels tab — no parameters required. Each item in the `reels` array includes `shortcode`, `like_count`, `username`, `is_verified`, `caption`, and audio details. The set rotates frequently, so polling this endpoint at regular intervals captures the current viral surface. To dig deeper into a specific reel, pass its `shortcode` to `get_reel_details`, which adds `video_version_urls`, `location` (with `name`, `city`, and `pk`), and a `taken_at` unix timestamp.\n\n## User Profiles\n\nTwo endpoints serve profile data at different depths. `get_user_profile` returns lightweight data — `biography`, `follower_count`, `following_count`, `media_count`, `bio_links`, `is_verified`, and `is_private` — useful for quick lookups. `get_full_user_profile` returns all of that plus `recent_posts` (up to 12 items with `display_url`, `video_url`, `like_count`, `comment_count`, and `taken_at_timestamp`) and `recent_reels` (up to 12 items with `video_view_count` and `video_duration`). Both endpoints accept a `username` string without the `@` prefix and only work for public profiles.\n\n## Posts and Search\n\n`get_post_details` accepts a post `shortcode` and returns `caption`, `is_video`, `like_count`, `comment_count`, `dimensions`, `display_url`, `video_url`, and an optional `location` object. `search_content` takes a free-text `query` (e.g. `'fitness motivation'`) and returns up to 12 popular media items matching that keyword, each with `media_type`, `shortcode`, `username`, `is_verified`, and thumbnail URLs. Results skew heavily toward video content. Note that fields like `like_count` may be null on some search result items.","generated_with_model":"global.anthropic.claude-sonnet-4-6","secondary_categories":["streaming_video","entertainment"]},"primary_category":"social_media","secondary_categories":["streaming_video","entertainment"],"access_requirements":[]}