Developers usually arrive at this question after a frustrating afternoon with the official Instagram Graph API: it requires a Facebook app, business verification, app review, and a token tied to an account you manage. It is excellent for publishing to and reading your own account, and nearly useless for reading anyone else's. This guide explains what you can and can't get without any of that.
What's public on Instagram
Anything visible to a logged-out visitor on the web is public data:
- Profiles: name, bio, links, follower and following counts, post count, verification, profile picture
- Posts and reels of public accounts: captions, media, like and comment counts, reel views, dates
- Comments on public posts: text, dates, likes, commenter usernames
What is not public, and no API can honestly give you: follower lists, private accounts' content, stories after they expire, direct messages, reach and impressions, or the owner's insights.
The endpoints
socialgraph.dev exposes the public set as plain GET endpoints, with one API key and consistent field names:
| Need | Endpoint | Credits |
|---|---|---|
| A profile by username | /instagram/profile | 2 |
| A profile by user ID | /instagram/profile-by-id | 2 |
| Follower and following counts | /instagram/follow-counts | 2 |
| Latest 12 posts and reels | /instagram/latest-posts | 2 |
| Up to 120 recent posts | /instagram/posts | 2 |
| Reels by username | /instagram/reels | 2 |
| One post by shortcode | /instagram/post-details | 2 |
| A reel with its view count | /instagram/reel-details-with-views | 2 |
| Comments on a post | /instagram/comments-by-shortcode | 2 |
Example:
curl "https://socialgraph.dev/api/v1/instagram/latest-posts?username=nike" \
-H "Authorization: Bearer YOUR_API_KEY"
When you still need the Graph API
If you are building for account owners, for example a scheduler that publishes posts or a dashboard of someone's own insights, you need the official Graph API and the owner's permission. Public-data APIs and the Graph API solve different problems, and many products use both: the Graph API for the user's own account, a public-data API for everyone else.
Staying on the right side of the rules
Public data is still subject to law and to Instagram's terms. Practical guidance:
- Use the data for analysis, research and business intelligence; don't republish people's content as your own.
- Don't store more than you need, and honour deletion requests.
- Respect that private means private; the API won't return it anyway.
See the terms for how socialgraph.dev handles this on its side.
Getting started
Create a free account for 100 credits, create an API key, and make your first call from the docs. Every endpoint page has a live demo you can run before signing up.