> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram.mdx>

---

# Instagram scraper API. Skip the Graph API.

The Graph API only covers accounts you own. Social Fetch returns followers, posts, Reels, stories and comments for any public account, as JSON in one request.

- No login or Meta app
- Stories, highlights and audio
- Engagement metrics included

Look up any public Instagram account by username and get its profile, posts, Reels with play counts, comments, story highlights, and transcripts of spoken audio as JSON. Search covers accounts, hashtags, locations, audio, and Reels.

The v2 API (`/v2/instagram/...`) is the one to build on: a single profile route that takes a handle, profile URL or user id, one media route for posts and Reels, cursor-paged media lists, and the same media object everywhere.

Meta's Instagram Graph API is built for managing accounts you own, and access goes through Meta App Review and a linked Facebook Page. Social Fetch needs no app review, no Business account, and no OAuth, and you never patch a scraper or rotate proxies when Instagram changes its markup.

Each call reads the public page live and comes back in one schema shared across all 25 platforms, under a single API key. Billing is per lookup in credits: 100 free to start, no credit card required, then pay-as-you-go packs that never expire.

## What you can get

- Profile (`/v2/instagram/profiles/{profile}`) — one lookup by handle, profile URL or user id; `include=recentMedia` adds the latest grid posts and `include=about` the country and month joined (+1 credit each).
- Profile media (`/v2/instagram/profiles/{profile}/media`) — a profile's posts, Reels or tagged posts as the shared v2 media object, selected with `tab`, cursor-paginated. By handle, profile URL or user id.
- Media (`/v2/instagram/media/{media}`) — one post or Reel in full detail by shortcode, URL or media id, with tagged users, co-authors, audio and location (1 credit). `include=files` also hosts the post's original files on our media CDN (+10 credits, 11 in total).
- Live stories from the last 24 hours (`/v2/instagram/profiles/{profile}/stories`), and v2 highlights (`/v2/instagram/profiles/{profile}/highlights`, `/v2/instagram/highlights/{highlightId}`), as the shared v2 media object with `kind: story`.
- The accounts a profile follows (`/v2/instagram/profiles/{profile}/following`) — id, handle, display name, avatar, verified and private flags, cursor-paginated to the end of the list. By handle, profile URL or user id.
- Engagement audit (`/v2/instagram/profiles/{profile}/engagement`) — engagement rate of a profile's recent posts: 5 credits for an audited profile, 1 credit for a private or missing one.
- Comments (`/v2/instagram/media/{media}/comments`) — a post or Reel's top-level comments by shortcode, URL or media id, ranked (`sort=top`, the default) or `sort=newest`, cursor-paginated, and the replies below a comment (`.../comments/{commentId}/replies`), each page 1 credit.
- Media transcript (`/v2/instagram/media/{media}/transcript`) — the spoken text of a post or Reel video by shortcode, URL or media id (1 credit); a video with no speech is `found` with a null `text`.
- Hashtags (`/v2/instagram/hashtags/{hashtag}`) with id, post count and trending flag, their live `top`, `recent` and `reels` feeds as the shared v2 media object (`.../{hashtag}/media`, cursor-paginated), and a hashtag search by keyword (`/v2/instagram/hashtags/search`). By name, `#name` or an instagram.com tag link.
- Locations (`/v2/instagram/locations/{locationId}`) with name, coordinates and category, the posts and Reels tagged there (`.../{locationId}/media`) on `top` and `recent` tabs, and a place search by name (`/v2/instagram/locations/search`) that returns the location ids.
- Trending and topics: a fresh batch of trending Reels (`/v2/instagram/reels/trending`, no parameters) and Instagram's Popular page for a topic (`/v2/instagram/topics/{topic}`) with its title, description, post count, related searches and curated posts, both as the shared v2 media object.
- Audio: a song or original sound by audio id (`/v2/instagram/audio/{audioId}`) with title, artist, length, exact Reel count and trending flag; the Reels that use it as shared v2 media (`.../{audioId}/media`, cursor-paginated); and a keyword search (`/v2/instagram/audio/search`) that returns the audio ids.

## Instagram endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Profile | GET /v2/instagram/profiles/{profile} | 1 credit +1 credit for recentMedia +1 credit for about Max 3 credits You're only charged for what's returned | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/get) |
| Profile media | GET /v2/instagram/profiles/{profile}/media | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/media/get) |
| Profile highlights | GET /v2/instagram/profiles/{profile}/highlights | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/highlights/get) |
| Profile stories | GET /v2/instagram/profiles/{profile}/stories | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/stories/get) |
| Profile following | GET /v2/instagram/profiles/{profile}/following | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/following/get) |
| Highlight | GET /v2/instagram/highlights/{highlightId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/highlights/highlightid/get) |
| Profile engagement | GET /v2/instagram/profiles/{profile}/engagement | 5 credits for an audited profile 1 credit when the profile is private or not found | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/engagement/get) |
| Search reels | GET /v2/instagram/reels/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/reels/search/get) |
| Search profiles | GET /v2/instagram/profiles/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/search/get) |
| Hashtag search | GET /v2/instagram/hashtags/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/hashtags/search/get) |
| Search locations | GET /v2/instagram/locations/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/locations/search/get) |
| Audio search | GET /v2/instagram/audio/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/audio/search/get) |
| Topic | GET /v2/instagram/topics/{topic} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/topics/topic/get) |
| Trending reels | GET /v2/instagram/reels/trending | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/reels/trending/get) |
| Media | GET /v2/instagram/media/{media} | 1 credit per lookup, found or not found +10 credits per 16 MB of files, max 60 (most posts: 10) Files that aren't hosted are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/get) |
| Media comments | GET /v2/instagram/media/{media}/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/comments/get) |
| Comment replies | GET /v2/instagram/media/{media}/comments/{commentId}/replies | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/comments/commentid/replies/get) |
| Media transcript | GET /v2/instagram/media/{media}/transcript | 1 credit +10 credits per started minute of transcribed video, up to 60 minutes (allowLongTranscription) Max 601 credits Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/transcript/get) |
| Audio | GET /v2/instagram/audio/{audioId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/audio/audioid/get) |
| Audio media | GET /v2/instagram/audio/{audioId}/media | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/audio/audioid/media/get) |
| Hashtag | GET /v2/instagram/hashtags/{hashtag} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/hashtags/hashtag/get) |
| Hashtag media | GET /v2/instagram/hashtags/{hashtag}/media | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/hashtags/hashtag/media/get) |
| Location | GET /v2/instagram/locations/{locationId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/locations/locationid/get) |
| Location media | GET /v2/instagram/locations/{locationId}/media | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v2/instagram/locations/locationid/media/get) |
| Profile | GET /v1/instagram/profiles/{handle} | see docs |  |
| Basic profile | GET /v1/instagram/profiles/{userId}/basic | see docs |  |
| Profile posts | GET /v1/instagram/profiles/{handle}/posts | see docs |  |
| Profile reels | GET /v1/instagram/profiles/{handle}/reels | see docs |  |
| Profile highlights | GET /v1/instagram/profiles/{handle}/highlights | see docs |  |
| Tagged posts | GET /v1/instagram/profiles/{userId}/tagged-posts | see docs |  |
| Highlight | GET /v1/instagram/highlights/{highlightId} | see docs |  |
| Profile engagement | GET /v1/instagram/profiles/{handle}/engagement | see docs |  |
| Search | GET /v1/instagram/search | see docs |  |
| Search profiles | GET /v1/instagram/search/profiles | see docs |  |
| Search reels | GET /v1/instagram/search/reels | see docs |  |
| Hashtag search | GET /v1/instagram/search/hashtags | see docs |  |
| Popular search | GET /v1/instagram/search/popular | see docs |  |
| Post or reel | GET /v1/instagram/posts | see docs |  |
| Comments | GET /v1/instagram/posts/comments | see docs |  |
| Comment replies | GET /v1/instagram/posts/comments/replies | see docs |  |
| Download | GET /v1/instagram/posts/download | see docs |  |
| Transcript | GET /v1/instagram/posts/transcript | see docs |  |
| Trending reels | GET /v1/instagram/reels/trending | see docs |  |
| Audio reels | GET /v1/instagram/audio/{audioId}/reels | see docs |  |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_…`). New accounts get 100 free credits — enough to resolve a profile, page a few posts, and run one transcript against live data.
2. **Call an Instagram route.** Start with `GET /v2/instagram/profiles/{profile}` for the profile card (a handle, profile URL or user id), then page its posts, Reels or tagged posts with `GET /v2/instagram/profiles/{profile}/media?tab=posts|reels|tagged`. Pass `x-api-key` on every request. Use the playground for one-off checks; use curl or the TypeScript SDK for scheduled jobs.
3. **Read the shared envelope.** Branch on `data.lookupStatus` before writing rows — the set of values differs slightly by route (stories use `found`/`private`/`not_found`, with no `restricted`). Log `meta.requestId` for support. Bill from `meta.creditsCharged`, not a spreadsheet estimate.

## Pricing

Instagram operations in the OpenAPI registry are 1 credit per completed lookup, with paginated list routes billing per page. The exceptions are the engagement audit (5 credits; on `GET /v2/instagram/profiles/{profile}/engagement` a private or missing profile costs 1), `GET /v2/instagram/media/{media}?include=files` (a 10-credit hosted-files surcharge, 11 credits total for that call) and the `include` extras on `GET /v2/instagram/profiles/{profile}` (1 credit each). Credits never expire on pay-as-you-go packs. Always confirm the actual charge with `meta.creditsCharged` on the response.

## Compared with the official API

Meta Instagram Graph API manages accounts you own — publishing, moderation, insights — after Meta App Review and Facebook Page linkage. It won't return a competitor's follower count, Reels tab, or hashtag search. Social Fetch covers public-web lookups for any public handle, post URL, or hashtag with a Social Fetch API key — no app review, no Business account, no OAuth.

## FAQ

### Is there an Instagram scraper API that doesn't need Graph API access?

Yes. Social Fetch's Instagram routes read public profile, post, Reel, highlight, and search data over REST. You authenticate with a Social Fetch API key only — no Meta App Review, no linked Business or Creator account, no Facebook Page, and no OAuth consent screen for the account you're looking up.

### What Instagram data can I pull with Social Fetch?

Profiles by handle or numeric user id, an engagement audit of a profile's recent posts, profile posts, Reels and tagged posts (separate cursor-paginated lists), live stories, saved highlight albums and the story items inside one, the accounts a profile follows, where an account is based and when it joined, single posts and Reels by URL with comments, replies, transcripts and media downloads, hashtags and locations with their live post feeds, Reels that reuse an audio id, and search (accounts, hashtags, profiles, Reels, Popular topics, audio) plus a trending-Reels sample. Exact paths, params, and response fields are on this hub's endpoint list and under /docs/api.

### How do I look up an Instagram profile by handle or user id?

Use `GET /v2/instagram/profiles/{profile}`: it takes a username (with or without the leading `@`), a profile URL or a numeric user id, and uses `found`, `private` or `not_found` on `data.lookupStatus` (`restricted` is rare). Add `include=recentMedia` for the latest grid posts and `include=about` for where the account is based and when it joined.

### What's the difference between profile posts and profile Reels?

`GET /v2/instagram/profiles/{profile}/media` pages one tab of a profile at a time: `tab=posts` is the mixed public grid (images, carousels and in-feed video), `tab=reels` the Reels tab with play counts, and `tab=tagged` the posts other accounts tagged it in. Every item is the shared v2 media object, and each tab paginates with its own `cursor`/`nextCursor`.

### How do I list posts a user is tagged in?

`GET /v2/instagram/profiles/{profile}/media?tab=tagged` pages the public Tagged tab by handle, profile URL or user id; each item is the shared v2 media object.

### Does Social Fetch return Instagram Stories and highlights?

Yes, both. `GET /v2/instagram/profiles/{profile}/stories` lists a public profile's live stories from the last 24 hours, oldest first, in one response (an empty array when none are live), by handle, profile URL or user id. `GET /v2/instagram/profiles/{profile}/highlights` and `GET /v2/instagram/highlights/{highlightId}` list a profile's saved highlight albums (title, cover thumbnail) and open one album into its stories, with each story as the shared media object. Story items carry media URLs, timestamps, mentions, and link stickers when present.

### Can I list the accounts an Instagram profile follows?

Yes. `GET /v2/instagram/profiles/{profile}/following` lists the accounts a public profile follows, in the order Instagram lists them. Each account is the shared v2 profile summary: `id`, `handle`, `displayName`, `avatarUrl`, `verified` and `privateAccount`. Keep passing `data.page.nextCursor` while `data.page.hasMore` is true to reach the end of the list. A private profile returns `lookupStatus: private` with no accounts. Follower lists aren't offered: Instagram only shows a small sample of an account's followers.

### Can I get comments on an Instagram post or Reel?

Yes. `GET /v2/instagram/media/{media}/comments` takes a shortcode, URL or media id and returns top-level comments — text, author handle, like count, reply count — in Instagram's ranked order (`sort=top`, the default) or `sort=newest`, paginated with an opaque `cursor` while `data.page.hasMore` is true. Replies below a top-level comment are `GET /v2/instagram/media/{media}/comments/{commentId}/replies`.

### How do I get a transcript for an Instagram Reel or post?

Call `GET /v2/instagram/media/{media}/transcript` with a shortcode, a `/p/`, `/reel/` or `/tv/` URL, or a media id — there is no separate Reel-only transcript path. It returns one `transcript` with `text` and `durationSec`; a video with no speech is `found` with a null `text`.

### How do I discover accounts, hashtags, or trending Reels without a known handle?

`GET /v2/instagram/hashtags/search` finds hashtags by keyword (one ranked set with post counts, no cursor); pass a name to `GET /v2/instagram/hashtags/{hashtag}` or its `/media` for the tag's posts. `GET /v2/instagram/profiles/search` finds accounts by keyword, cursor-paginated. `GET /v2/instagram/reels/search` runs a keyword search scoped to Reels and pages with a cursor (`data.page.nextCursor`). `GET /v2/instagram/locations/search` finds places by name and returns each place's location id, name and coordinates (one set, no cursor); pass an id to `GET /v2/instagram/locations/{locationId}` or its `/media`. `GET /v2/instagram/reels/trending` takes no query params and returns one fresh sample batch of Reels as shared v2 media objects (call it again for another), and `GET /v2/instagram/topics/{topic}` is the Popular topic page in v2 (the topic's details on the first page, then its curated posts as media, cursor-paginated). `GET /v2/instagram/audio/search` finds songs and original sounds by keyword (one ranked set, no cursor) and returns each result's `id`. Pass an audio id (from search, a Reel's `audio.id`, or the numeric id in an `instagram.com/reels/audio/{audioId}/` URL) to `GET /v2/instagram/audio/{audioId}` for the audio's details (an id from search can occasionally resolve to `not_found`; then try that result's `assetId`), or to `GET /v2/instagram/audio/{audioId}/media` to page the Reels that use it.

### How much does the Instagram API cost?

Almost every Instagram operation is a flat 1 credit per completed lookup, including each page of a paginated list (a list that ends on an empty page still bills that page). The exceptions are `GET /v2/instagram/media/{media}?include=files`, which adds a 10-credit surcharge (11 total) when the files are hosted, `GET /v2/instagram/profiles/{profile}`, where `include=recentMedia` and `include=about` add 1 credit each when served, and the engagement audit, which is 5 credits for an audited profile (on the v2 route, 1 credit for a private or missing one). Signup includes 100 free credits and pay-as-you-go packs don't expire. Confirm every call with `meta.creditsCharged`.

### What happens for private or missing Instagram accounts, and is this legal?

Every profile route (profile, basic, engagement, posts, reels, highlights, stories, tagged posts) uses the same `data.lookupStatus` values: `private` for private accounts and `not_found` for unknown ones (stories have no `restricted`). Age-gated accounts return `found` with their public data; `restricted` is rare and means Instagram withholds the account from public view. The v2 profile's `include=about` is served for private accounts too, because Instagram shows that panel for them. Post detail uses `restricted` only for posts Instagram withholds from public view. None of these routes invent placeholder data for content that isn't public. Social Fetch only returns publicly visible Instagram data; you're responsible for using it in line with Instagram's terms and applicable law, and we don't provide legal advice.

## Related

- [Instagram profile API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile): Profile by handle, URL or user id, with optional latest posts and account details.
- [Instagram profile media API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-media): Page a profile's posts, Reels or tagged posts as shared v2 media, cursor-paginated.
- [Instagram stories API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-stories): Live stories from the last 24 hours, with media, expiry, mentions and link stickers.
- [Instagram following API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-following): List the accounts a profile follows — id, handle, avatar, verified flag, cursor-paginated.
- [Instagram profile search API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-search): Find accounts by keyword — id, handle, avatar, verified flag, cursor-paginated.
- [Instagram Reels search API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-reels-search): Search public Reels by keyword as media objects, cursor-paginated.
- [Instagram trending Reels API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-reels-trending): A fresh batch of the Reels Instagram is trending right now, as media objects.
- [Instagram Popular topics API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-topics-topic): A topic's title, description and post count, plus its curated posts as media, cursor-paginated.
- [Instagram engagement rate API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-engagement): Audit a profile's latest posts: engagement rate, outliers, content mix and a written summary.
- [Instagram audio search API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-audio-search): Find songs and original sounds by keyword — audio id, artist, trending flag.
- [Instagram audio API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-audio-audioid): A song or original sound by audio id — title, artist, length, exact Reel count.
- [Instagram audio media API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-audio-audioid-media): Page the Reels that use an audio as shared v2 media, cursor-paginated.
- [Instagram media API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media): One post or Reel in full detail by shortcode, URL or media id; add include=files to host the original files.
- [Instagram transcript API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media-transcript): The spoken text of a post or Reel video by shortcode, URL or media id.
- [Instagram media comments API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media-comments): Page a post or Reel's comments, ranked or newest first, with reply counts, as the shared comment object.
- [Instagram comment replies API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media-comments-commentid-replies): Page the replies in a comment thread, oldest first, cursor-paginated.
- [Instagram hashtag API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-hashtags-hashtag): A hashtag's id, post count and trending flag by name or tag link.
- [Instagram hashtag media API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-hashtags-hashtag-media): Page a hashtag's top, recent or Reels view as shared v2 media, cursor-paginated.
- [Instagram hashtag search API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-hashtags-search): Find hashtags by keyword, with their ids and post counts.
- [Instagram location search API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-locations-search): Find places by name — location id, name, coordinates, address or city.
- [Instagram location API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-locations-locationid): A location's name, coordinates, and category by location id or URL.
- [Instagram location media API](https://www.socialfetch.dev/platforms/instagram/v2-instagram-locations-locationid-media): Page the top or recent posts and Reels tagged at a location, cursor-paginated.
- [Free Instagram Reel transcript tool](https://www.socialfetch.dev/tools/instagram-reel-transcript): Get an Instagram transcript from a public Reel URL — plain text, no signup.
- [Instagram profile API](https://www.socialfetch.dev/platforms/instagram/profiles-handle): Public profile card by handle — bio, avatar, verification, counts.
- [Instagram profile posts API](https://www.socialfetch.dev/platforms/instagram/profiles-handle-posts): Page a handle's mixed feed — images, carousels, and in-feed video.
- [Instagram tagged posts API](https://www.socialfetch.dev/platforms/instagram/profiles-userid-tagged-posts): Page a user's Tagged tab by numeric user id — posts other accounts tagged them in.
- [Instagram profile Reels API](https://www.socialfetch.dev/platforms/instagram/profiles-handle-reels): Page a handle's Reels tab with play counts, separately from the feed.
- [Instagram audio Reels API](https://www.socialfetch.dev/platforms/instagram/audio-audioid-reels): Page public Reels that reuse a specific audio id from an audio page URL.
- [Instagram post/Reel by URL](https://www.socialfetch.dev/platforms/instagram/posts): Hydrate one post or Reel URL into caption, metrics, and media.
- [Instagram transcript API](https://www.socialfetch.dev/platforms/instagram/posts-transcript): Spoken-text rows for a post or Reel URL, including carousels.
- [Instagram hashtag search API](https://www.socialfetch.dev/platforms/instagram/search-hashtags): Posts under a tag with date and media-type filters, cursor-paginated.
- [Instagram Popular search API](https://www.socialfetch.dev/platforms/instagram/search-popular): Curated Popular topic page for a query — posts, topic context, cursor-paginated.
- [How to scrape Instagram data](https://www.socialfetch.dev/guides/how-to-scrape-instagram-data): DIY vs Graph API vs Social Fetch — runnable GETs for profiles and posts.
- [Creator intelligence use case](https://www.socialfetch.dev/use-cases/creator-intelligence-api)
- [Monitor accounts → webhook](https://www.socialfetch.dev/monitoring): Watch an Instagram profile or hashtag and get a signed webhook when something new posts.
- [Instagram engagement rate tool](https://www.socialfetch.dev/tools/instagram-engagement-rate)
- [Hosted MCP server](https://www.socialfetch.dev/mcp): Call the same Instagram tools from Cursor, VS Code, or Claude with OAuth — same credits as REST.
