Profile enrichment
Use Instagram endpoints to turn profile enrichment into repeatable API requests with documented inputs and JSON responses.
Turn Instagram public data into structured inputs for social listening and creator research.
Fetch Instagram profile, post, and search signals with documented web scraping API endpoints.
Endpoint families
4
Documented params
14
Examples
5
Live catalog snapshot
Active endpoints
5
Methods
GET
Required params
11
Schema refs
5
{
"platform": "Instagram",
"endpoint": "instagram-post",
"method": "GET",
"path": "/instagram/post/{id}/{post_id}",
"auth": "apiKey"
}Use cases
Fetch Instagram profile, post, and search signals with documented web scraping API endpoints.
Use Instagram endpoints to turn profile enrichment into repeatable API requests with documented inputs and JSON responses.
Use Instagram endpoints to turn post metadata collection into repeatable API requests with documented inputs and JSON responses.
Use Instagram endpoints to turn social search workflows into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Instagram endpoint catalog — 5 endpoints, 14 documented request parameters, and 5 published response schemas — the same catalog Docs and Playground run against.
5 documented Instagram endpoints, grouped into 4 request families — Post, Profile and Reels, plus 1 more.
14 request parameters are documented across those Instagram endpoints, 11 of them required — the full input contract is public before you write any integration code.
5 of the 5 Instagram endpoints ship a recorded example response, and 5 carry a documented response schema — you can code against the real JSON before the first request.
Instagram endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
5 hosted MCP tools back the Instagram endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
/instagram/post/{id}/{post_id}
/instagram/profile/{username}
/instagram/reels/{id}
/instagram/user/{username}/posts
Endpoint catalog
/instagram/post/{id}/{post_id}Returns media details for an Instagram URL shortcode. Use media.code from the reels response or shortcode from a public post URL; numeric media IDs are rejected.
Response notes
- `404`: no publicly retrievable post found for the supplied shortcode. - `503`: the upstream request failed or access was denied.
Sampled 14 Oct 2026: 1 item, 3 fields filled in every item. url: scontent-iad3-1.cdninstagram.com.
MCP tool instagram_post
/instagram/post/commentsReturns top-level comments for a public Instagram post or Reel. `reply_count` is included when the logged-out source exposes it; reply bodies are not available on this anonymous surface. Pass `paging_info.max_id` back as `max_id` for the next comment page.
Sampled 25 Oct 2026: 14 items, 4 fields filled in every item, 1 not. created_at: 2026-10-24 to 2026-10-25; comment_like_count: 0 to 1, median 0.
MCP tool instagram_comments
/instagram/profile/{username}Returns the public profile of an Instagram account by `username`. The response has the user id, full name, biography, bio links, external URL, category, follower, following and post counts, verified and private flags, location, profile picture, recent posts with captions and like counts, and related profiles.
Sampled 14 Oct 2026: 6 items, 7 fields filled in every item. media_url: scontent-iad3-2.cdninstagram.com and 2 other hosts; is_video: true in 3 of 6.
MCP tool instagram_profile
/instagram/reels/{id}Returns up to 12 public Reels via anonymous proxied HTTP for the numeric Instagram user ID. Supports opaque `max_id` pagination. Captions, timestamps and original image dimensions are omitted when the public source does not expose them.
Response notes
- Uses Instagram's logged-out public feed through proxied HTTP, without browser rendering or account credentials. The numeric ID resolves through Instagram's own profile redirect; the returned feed must match that numeric ID. - `max_id` is opaque: pass the returned `paging_info.max_id` unchanged. Cursors issued by the earlier clips-API source are not interchangeable with the new feed; restart from the first page after the source migration. - `media.id` is the source media PK. `media.code` is the URL shortcode. - The public grid supplies thumbnails and engagement counters. Captions, `taken_at`, and original image dimensions are unavailable on this surface; those fields are omitted. Thumbnail candidate `width` and `height` are omitted when unknown. A clip may have another author while appearing in this feed. - Reels use anonymous Instagram access. An explicit upstream login denial returns `503` with `Retry-After: 30`; this does not indicate an invalid Crawlora API key. - Cold upstream failures may be served from a brief cache (30 seconds by default). Back off rather than repeatedly requesting a failing page. - A successful stale snapshot takes priority over an error. Check `X-Availability-Mode: stale` to distinguish cached data from a fresh response. A cached first page does not guarantee the next pagination page is available. - For post lookups, pass an item's `media.code` as `post_id`, not `media.id`.
Sampled 14 Oct 2026: 12 items, 1 field filled in every item.
MCP tool instagram_reels
/instagram/user/{username}/postsReturns public posts and Reels from the logged-out Posts tab for an Instagram username. Each item exposes the fields available in Instagram's public grid; source-omitted metrics and dimensions are not inferred. Pass `paging_info.max_id` back as `max_id` for the next page.
Sampled 25 Oct 2026: 12 items, 8 fields filled in every item, 1 not. media_type: 2 to 8, median 2; display_uri: scontent-ams2-1.cdninstagram.com.
MCP tool instagram_user_posts
Related APIs
Social & Creator Platforms
Build creator intelligence, video research, transcript, and audience-comment workflows without maintaining YouTube scrapers.
Social & Creator Platforms
Turn Twitch's public channel, stream, clip, and team data into structured JSON — live status and viewer counts, top games, clips, VODs, and team rosters — as normalized JSON. Credential-free.
Social & Creator Platforms
Track creator and video activity, discover sounds and LIVE streams, and study public ad creatives through documented TikTok API routes.
How to scrape Instagram
Instagram is login-gated and rate-limited, so scraping it reliably is hard. Crawlora's Instagram endpoints return public profile, post, and reels data as structured JSON. A pull on 2026-10-27 of the official @instagram account showed 686,425,944 followers, 8,625 posts and six posts embedded in the profile response.
/instagram/profile/openai returned followers_count 6,699,088, following_count 0, posts_count 1,906, is_verified true and 6 inline posts on 2026-10-30. Check counts before trusting them: a verified account reporting zero following may be a field the page does not expose.
/instagram/user/google/posts returned 12 items with a paging_info max_id and more_available true, and /instagram/reels/45374573700 returned 12 reels the same way. Pass max_id back to continue; reels take the numeric user id, not the username.
/instagram/post/openai/DVHLZU9Emy6 returned media_type 1 at 1440 by 1920 with a caption, but taken_at 0 and an empty user object, so read the timestamp and author from the profile or posts routes. Comments by post URL returned 14 rows with a max_id cursor and more_available true.
Re-run to monitor follower growth, posting cadence, and engagement over time.
The profile returned id 25025320, followers_count 686,425,944, posts_count 8,625, is_verified true and a following_count of 0. Counters are point-in-time, so store the retrieval time.
location came back with blank strings and zero coordinates, so treat zeros as unset, not as a real place.
The profile carried 6 recent posts; use the user-posts route with max_id to page further.
Agent skills
Install a Crawlora agent skill and your agent can pull Instagram data as JSON through the documented API, without writing a scraper. These skills cover Instagram:
Researches Instagram profiles, posts, and Reels via the Crawlora API, returning clean JSON. Use when the user wants a public Instagram profile's…
npx skills add github.com/Crawlora-org/crawlora-skills --skill instagram-researchFind and shortlist TikTok, Instagram, YouTube, and Substack creators for a campaign using Crawlora's creator datasets and live profile/content…
npx skills add github.com/Crawlora-org/crawlora-skills --skill influencer-discoveryResearches public profiles, posts, trends, and Facebook Marketplace listings across Instagram, TikTok, Threads, Bluesky, X, Pinterest, LinkedIn…
npx skills add github.com/Crawlora-org/crawlora-skills --skill social-media-researchFAQ
Send a public Instagram username or post shortcode to Crawlora's Instagram endpoint and get structured JSON — followers, bio, captions, likes, comments, media URLs — without maintaining browser automation. Collect public data and respect Instagram's terms.
Yes — Crawlora returns public profile and post data through managed execution, with no login required. It does not access private accounts, DMs, or any authentication-gated content.
Collecting publicly accessible profile and post data is generally permissible if you respect Instagram's terms of use, robots directives, rate limits, and applicable law. This is for public data you're authorized to collect.
Yes. Meta's Graph API only manages Business or Creator accounts you own and connect via OAuth — it can't return another account's posts, followers, or public profile data at all. Crawlora's Instagram endpoints read public profile and post data for any public account, no Meta app review or connected account required.
No. The @instagram profile on 2026-10-27 returned empty location strings and 0 for latitude and longitude.