FetchPI
Log in
← Browse all APIs

Instagram Data API

Instagram profiles, posts, stories and highlights, comment threads and follower graphs through one REST interface that returns normalized JSON.

  • 12 capability families
  • 12 documented endpoints

Endpoints by capability family

profile

1 documented endpointsOpen the profile capability page →

Account identity: profile lookups with bio, verification and audience fields as normalized JSON.

MethodPathCapability
GET/v1/ig/users/{username}ig.profile

user_posts

1 documented endpointsOpen the user_posts capability page →

Publishing and activity feeds: what an account, hashtag or music page has posted, in order.

MethodPathCapability
GET/v1/ig/users/{username}/postsig.user_posts

post

1 documented endpointsOpen the post capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/posts/{id}ig.post

comments

1 documented endpointsOpen the comments capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/posts/{id}/commentsig.comments

search_posts

1 documented endpointsOpen the search_posts capability page →

Search and trends: keyword search over posts and accounts, hot lists and trending topics.

MethodPathCapability
GET/v1/ig/search/postsig.search_posts

comment_replies

1 documented endpointsOpen the comment_replies capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/posts/{id}/comments/{comment_id}/repliesig.comment_replies

user_followers

1 documented endpointsOpen the user_followers capability page →

Relationship graphs: follower and following lists as paginated, normalized JSON.

MethodPathCapability
GET/v1/ig/users/{username}/followersig.user_followers

user_following

1 documented endpointsOpen the user_following capability page →

Relationship graphs: follower and following lists as paginated, normalized JSON.

MethodPathCapability
GET/v1/ig/users/{username}/followingig.user_following

search_users

1 documented endpointsOpen the search_users capability page →

Search and trends: keyword search over posts and accounts, hot lists and trending topics.

MethodPathCapability
GET/v1/ig/search/usersig.search_users

stories

1 documented endpointsOpen the stories capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/users/{username}/storiesig.stories

highlights

1 documented endpointsOpen the highlights capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/users/{username}/highlightsig.highlights

post_likers

1 documented endpointsOpen the post_likers capability page →

Single-content lookups: one post and what is attached to it — comments, likers, media — normalized.

MethodPathCapability
GET/v1/ig/posts/{id}/likersig.post_likers

Frequently asked questions

Profiles, single posts with their likers, comment threads with replies, creator feeds, stories and highlights, the follower and following graphs, and post/account search — 12 documented endpoints in all.

About the Instagram Data API

What is the Instagram Data API?

The Instagram Data API is FetchPI's read interface for Instagram: documented REST endpoints that return publicly available Instagram data as structured JSON. Instead of parsing pages or maintaining a per-platform scraper, you call an endpoint and read a normalized response with stable field names — the same schema shape every FetchPI platform uses. All 12 documented endpoints belong to capability families, each with its own reference page, parameter table and examples.

What data can the Instagram Data API retrieve?

The API covers the Instagram capability families listed in the table above: 12 families and 12 endpoints, each documented with its parameters and response schema. Typical workloads include profile enrichment, post and comment collection, follower-graph analysis, keyword monitoring and trend tracking. The exact fields a family returns are documented on its capability page — the API does not promise any data type that is not in the contract.

Capability families published for Instagram today:

  • profile
  • user_posts
  • post
  • comments
  • search_posts
  • comment_replies
  • user_followers
  • user_following
  • search_users
  • stories
  • highlights
  • post_likers

How to use the Instagram Data API

Three steps from zero to the first response:

Step 1 — Create a free account

Register in the console. A workspace is provisioned automatically and sign-up includes free Credits for your first calls.

Step 2 — Grab your API key

Create a key in the console and send it as a standard Authorization: Bearer header on every request.

Step 3 — Call an endpoint

Start with a documented endpoint such as GET /v1/ig/users/{username} and read the normalized JSON from the response. The copy-paste example below uses the contract's demo values:

curl -H "Authorization: Bearer $MESHDATA_API_KEY" \
  "https://api.fetchpi.com/v1/ig/users/newdev"

How data freshness works

Every endpoint accepts the freshness parameters the whole Data API shares: cache answers from the stored snapshot without touching the upstream, live queries fresher data and may cost extra credits, and max_age caps the acceptable data age in seconds. The response meta block reports the mode, age and serving layer that produced each answer, so downstream systems can act on freshness instead of guessing it. What the API does not promise is real-time upstream state — the meta block is the honest report of what you got.

The Instagram Data API compared with building your own scraper

A self-built Instagram scraper owns the happy path and everything after it: page layouts change, anti-bot measures tighten, and every parser fix lands on your roadmap. The Data API turns that maintenance into a contract — documented request and response schemas, published error codes for the not-found and rate-limited cases, and one integration shape reused across every FetchPI platform. The scope stays honest on both sides: the API serves publicly available data only, never asks for your account credentials, and is not an official Instagram product.

Why teams use FetchPI for Instagram data

Three reasons that show up in the integration, not just the pitch:

  • One normalized schema — Instagram responses use the same field structure as every other FetchPI platform, so a multi-platform pipeline parses once.
  • Transparent freshness — every response reports its freshness mode, age and serving layer; you choose cache or live per request and pay accordingly.
  • Usage-based billing — per-request Credits with published per-capability prices, no seats and no flat plans; the meta block reports what each call consumed.

Costs and limits

Billing is per request in Credits: each capability has a published per-call price, cache answers cost less than live fetches, and top-ups are self-serve. Endpoints are rate-limited — a throttled call returns the documented RATE_LIMIT_EXCEEDED error rather than a silent failure — and every response's meta block reports the credits it consumed. Current per-capability prices live on the pricing page; the docs carry the full error-code and rate-limit reference.

View pricing →