# Instagram profiles and reels without the Meta Graph API

2026-08-06

> Public profiles, posts, reels, and stories as JSON. Not the Meta Graph API, not a Facebook developer app.

- Index: https://fetcher.sh/blog.md
- This page (HTML): https://fetcher.sh/blog/instagram-public-profiles-reels-without-graph-api

![A 3D render of the Instagram camera logo](https://images.unsplash.com/photo-1611162616305-c69b3fa7fbe0?auto=format&fit=crop&w=1600&q=80)

Photo by Alexander Shatov on [Unsplash](https://unsplash.com/?utm_source=fetcher_sh&utm_medium=referral).

The official way to read Instagram in software is the Meta Graph API: a Facebook developer app, permissions, review. That is the path if you run ads or ship an official integration. It is a long path if you only need a public profile, a reel, or a hashtag’s public posts as JSON.

[instagram.fetcher.sh](https://instagram.fetcher.sh) returns public profiles, posts, reels, stories, comments, hashtags, and locations without a Meta app. Also known as IG. Public objects only.

“Graph” in Meta’s product name is not a follower list. [Who follows whom](/blog/follower-following-graphs-x-instagram-tiktok) is a different note. Private accounts are out. This is not Ads Manager and not a growth course. TikTok and YouTube Shorts are other hosts.

## What the host returns

Resolve a handle to a profile and a numeric id. List posts, reels, stories, tagged posts, followers, and followings. Fetch a post by shortcode. Read comments. Hashtag posts and reels, location posts, audio posts.

`curl -H 'Authorization: Bearer bby_live_…' 'https://instagram.fetcher.sh/api/user/handle/nasa'`

[Creator lookup](/blog/creator-influencer-lookup-public-profiles) is the job on top of a public profile. [Hashtags and sounds](/blog/hashtags-sounds-trending-topics-as-data) are topic objects, not accounts. Stories, reels, and feed posts are different paths. If you only have a handle, resolve it first and keep the numeric id.

Stories that are public-enough to appear here are still not a substitute for Insights. Ads Manager numbers stay in Ads Manager. A location post is not a [Maps listing](/blog/google-maps-places-reviews-without-places-api-key). Pretty plates on IG are not a Yelp rating.

## Graph API vs public JSON

Meta’s Graph API remains the partner product for insights, publishing, and anything that acts as the account. We do not return private accounts. We do not publish. We do not give you campaign spend.

If your workflow is “size this public creator before a brief,” you do not need Graph. If your workflow is “boost this post,” you do. Mixing those in one sentence is how a talent team waits on app review to look at a public grid.

Reels are Instagram. Shorts are YouTube. TikTok is TikTok. The ids do not transfer. Fetch the host that matches the URL you were handed.

## A case: sizing a public creator before a brief

A brand team is considering @natgeo for a brief. They do not have Graph API access. They need follower count, a handful of recent reels, and whether the account is clearly public.

They resolve the handle. They read the profile. They list recent reels. They optionally walk a page of followers if they are sizing overlap with another public account. None of that is Ads Manager insights. None of it is a private story. If the account were private, it would not be in this catalog.

That is enough to decide “worth a conversation” versus “we guessed the follower count from a screenshot.” Campaign APIs stay with Meta.

## A case: a hashtag that is not a person

A newsroom wants public posts under a hashtag after a TV moment. They fetch hashtag posts and hashtag reels, then pull comments on the top few. They do not treat the hashtag as a user id. They do not download audio files; a sound entity is JSON ([sounds as data](/blog/hashtags-sounds-trending-topics-as-data)).

If the next question is the cafe in the background, they have left Instagram and they want Maps. If the next question is the creator, they resolve that handle and stop.

Stories, when they appear in this catalog, expire in the product the way stories expire. Do not build a warehouse that assumes a story id is durable like a post shortcode. Feed posts and reels are the durable public objects. Tagged posts are a third list: useful for “who is tagging this public brand,” useless as a complete mention graph.

Location posts are still Instagram objects. They will not join cleanly onto a Maps fid. If you need a rating, change hosts.

A talent or newsroom weekly that stays on this host: resolve handles you already care about, list new reels, optionally hashtag posts for one tag. Stories, if you fetch them, get a short TTL in your own store. Do not build a warehouse of story ids. Graph API would add insights; we will not fake them.

Private accounts still 404. That is the product working. Ads Manager is next door when the brief is spend.

## What we will not return

Meta’s Graph API remains the partner product for insights and publishing. We do not return private accounts. We do not publish, boost, or read inbox threads. Pay per call or prepaid credits, same as the rest of the catalog. Docs: [instagram.fetcher.sh](https://instagram.fetcher.sh). If the URL you were handed is a TikTok or a Short, this host will not magically translate it.
