Instagram hub

Instagram profile Reels API

Page a creator's public Instagram Reels tab by handle — shortcodes, captions, play counts, and video URLs when available — without GraphQL scrapers or creator OAuth.

GET /v1/instagram/profiles/{handle}/reels

1 credit base. With `hostMedia`, +2 credits per hosted asset (up to 24 assets, 49 credits max).

About this endpoint

`GET /v1/instagram/profiles/{handle}/reels` lists the public Reels tab by username (with or without `@`). On a completed call, branch on `data.lookupStatus` (`found` or `not_found`), then read `data.reels` and `data.page`. Each reel can include id, shortcode, caption, `createdAt` (ISO-8601), public URL, display and thumbnail URLs, `videoUrl` when present, likeCount, commentCount, playCount, dimensions, and optional `owner` fields (platformUserId, handle, displayName, avatarUrl, verified). When `data.page.hasMore` is true, pass `data.page.nextCursor` as the opaque `cursor` query param. Bill from `meta.creditsCharged`.

`displayUrl`, `thumbnailUrl`, and `videoUrl` are source-platform CDN links when Instagram exposes them. They can expire or be rejected outside the original retrieval context and are not SocialFetch-hosted assets. Syntactically unusable values are omitted. For SocialFetch-hosted copies on this list page, pass `hostMedia=true` (up to 24 assets / 90-day retention; +2 credits per successfully stored asset).

This route is Reels-only. The mixed profile feed is `GET /v1/instagram/profiles/{handle}/posts`. Keyword Reel discovery is `GET /v1/instagram/search/reels`. A single Reel by URL is `GET /v1/instagram/posts`; spoken text for that URL is `GET /v1/instagram/posts/transcript`.

Instagram profile Reels API FAQ

How do I list Instagram Reels for a profile via API?

Call `GET /v1/instagram/profiles/{handle}/reels` with your Social Fetch API key (`x-api-key`) and the Instagram username in the path. Read `data.lookupStatus`, then `data.reels` and `data.page`. See the API docs for parameters and examples.

How much does the Instagram profile Reels endpoint cost?

1 credit per successful list page by default. With `hostMedia`, +2 credits per hosted asset (up to 24 assets, 49 credits max). Always bill from `meta.creditsCharged` on the response. Each paginated page is a separate billed request.

What fields are in each Instagram profile Reel?

Items can include id, shortcode, caption, createdAt (ISO-8601), public URL, displayUrl, thumbnailUrl, videoUrl when available, likeCount, commentCount, playCount, dimensions, and optional owner metadata (platformUserId, handle, displayName, avatarUrl, verified) when Instagram exposes them.

How do play counts help on Instagram profile Reels?

`playCount` is the view/play signal Instagram exposes on the Reel when available. Use it to rank recent clips for outreach or to decide which shortcodes deserve a transcript or full post fetch. It is not present on every row; treat missing counts as unknown, not zero.

How does pagination work on Instagram profile Reels?

Each response includes `data.page.nextCursor` and `data.page.hasMore`. When `hasMore` is true, pass `nextCursor` as the `cursor` query param on the next request. The cursor is opaque.

Profile Reels vs profile posts vs Reels search?

Use this route when you already know the creator and want that account's Reels tab. Use `GET /v1/instagram/profiles/{handle}/posts` for the mixed feed (images, sidecars, in-feed video). Use `GET /v1/instagram/search/reels` when you have a keyword and no handle yet.

What happens for private or missing Instagram accounts?

Branch on `data.lookupStatus`. This Reels list uses `found` or `not_found` — private accounts surface as `not_found`, same as unknown handles. Do not invent a Reels grid. Keep `meta.requestId` if you need support on a failed list call.

Do I need Instagram Graph API access to list a creator's Reels?

No. Social Fetch returns publicly visible Reels for enrichment-style lookups. Meta's Instagram Graph API is for accounts you manage or that grant your app access — not arbitrary public creator Reels tabs.