SoonOne MCP server, all 49 APIs as agent tools. See how it works

Scrape any public profile, post or reel as clean JSON

Advanced Instagram API

The Advanced Instagram API turns any public Instagram profile, post or reel into structured JSON with a single GET request. Followers, bio, post counts, engagement, captions, likes, comment threads and reel views/plays/audio, scraped live with no login, session cookies or proxies on your side.

Unlike the official Graph API, which only exposes accounts you own, this Instagram scraper API works on any public account. Pull a competitor's follower count, list the latest posts of a creator, or read the comments under a viral reel. Most requests complete synchronously in 5-45 seconds.

Free tier included, no credit card required. One key works across all 49 APIs.

At a glance
Endpoints
6
Response Time
5-45s
Data Freshness
Live

Key features

  • Any public profile, post or reel, not just your own account
  • Live scraping on every request, no stale cached databases
  • No Instagram login, session cookies or proxies required
  • Profile data: followers, posts_count, engagement, business flags, bio
  • Reel-specific fields: views, plays and audio
  • Comments and recent-posts lists with limit, date and type filters
  • fields= selection to trim responses to just what you need

Built for

  • Influencer discovery and vetting tools
  • Competitor and brand monitoring dashboards
  • Social listening and comment analysis
  • Engagement analytics for agencies
  • Lead enrichment with follower and bio data

Try it

Build the request for your data

Edit the parameters below and see the exact curl command and JSON response you will get. No key required to preview.

GET/v1/profile
Open in Playground

Parameters

Request · HTTP
GET /instagram/v1/profile?username=instagram HTTP/1.1
Host: api.apicodex.io
Host: api.apicodex.io
X-Api-Key: YOUR_API_KEY
Response · JSON
200 OK
{
  "type": "profile",
  "url": "https://www.instagram.com/instagram/",
  "data": {
    "account": "instagram",
    "followers": 685821186,
    "posts_count": 8519,
    "is_verified": true,
    "is_business_account": false,
    "is_professional_account": true,
    "biography": "Discover what's new on Instagram",
    "avg_engagement": 0.0007
  }
}

Documentation

Advanced Instagram API Documentation

Pass an Instagram profile, post or reel URL (or just a username) and get a complete, structured JSON record back in a single request. All endpoints are GET. On list endpoints, limit accepts 1-50 (default 10), and fields= lets you keep only the top-level fields you need. If a scrape exceeds the sync window you get HTTP 202 with a snapshot_id to resolve via /v1/result.

Base URL

url
https://api.apicodex.io/instagram

Authentication

Create a key at dash.apicodex.io and send it as an X-Api-Key header (or an ?apikey= query parameter) on every request. No Instagram login or session cookie is ever involved.

headers
GET /v1/profile?username=instagram
X-Api-Key: YOUR_API_KEY

Request and response

Illustrative values. Confirm current endpoint behavior, quotas, and data freshness in the API documentation before production use.

request · http
GET /v1/profile?username=instagram HTTP/1.1
Host: api.apicodex.io
X-Api-Key: YOUR_API_KEY
response · json
{
  "type": "profile",
  "url": "https://www.instagram.com/instagram/",
  "data": {
    "account": "instagram",
    "followers": 685821186,
    "posts_count": 8519,
    "is_verified": true,
    "is_business_account": false,
    "is_professional_account": true,
    "biography": "Discover what's new on Instagram",
    "avg_engagement": 0.0007
  }
}

Code examples

cURL
curl --request GET \
  --url 'https://api.apicodex.io/instagram/v1/profile?username=instagram' \
  --header 'X-Api-Key: YOUR_API_KEY'

Available Endpoints

GET /v1/profile

Scrape a profile by url or username: followers, posts_count, engagement, business flags, bio.

/v1/profile?username=instagram

GET /v1/post

Scrape a post or reel by URL: caption, likes, comments count, media.

/v1/post?url=https://www.instagram.com/p/DZz4bjIjhdm

GET /v1/reel

Scrape a reel with reel-specific fields: views, plays, audio.

/v1/reel?url=https://www.instagram.com/reel/DZz4bjIjhdm

GET /v1/comments

List the comments of a post or reel as an array (comment_user, comment, likes, replies).

/v1/comments?url=https://www.instagram.com/p/DZz4bjIjhdm&limit=25

GET /v1/profile-posts

List the recent posts of a profile, with date and post-type filters.

/v1/profile-posts?username=natgeo&limit=10&post_type=reel

GET /v1/result

Fetch a pending result using the snapshot_id from a 202 response.

/v1/result?snapshot_id=s_abc123

Request Parameters

Required parameters

  • url Instagram URL to scrape. Required on /v1/post, /v1/reel and /v1/comments; on /v1/profile and /v1/profile-posts you can pass username instead.

Optional parameters

  • username Username instead of a URL on /v1/profile and /v1/profile-posts (with or without a leading @).
  • fields Comma-separated top-level fields to keep, e.g. fields=followers,posts_count,biography. Applies to every item on list endpoints.
  • limit Max items on /v1/comments and /v1/profile-posts (1-50, default 10).
  • start_date /v1/profile-posts only: keep posts on/after this date.
  • end_date /v1/profile-posts only: keep posts on/before this date.
  • post_type /v1/profile-posts only: filter by post type, e.g. reel.
  • snapshot_id /v1/result only: the id returned by a 202 response.

Responsible use

Use public social data carefully

Only request data that is publicly accessible, and make sure your collection, storage, and use comply with applicable privacy laws and the relevant platform terms. Do not use these APIs to bypass access controls or to make decisions that require consent or human review.

Pricing

Advanced Instagram API Pricing

One key, one subscription, all 49 APIs. Start free and upgrade when you grow. No minimums, no lock-in.

This API costs 25 credits per request. Credits are shared across every API on your plan.

Estimate your monthly cost

Drag the slider to match your expected request volume. We will recommend the cheapest plan that covers it.

10,000

Recommended plan

Pro

$99.99 /month

Credits used250,000
Credits included250,000
Cost per 1K requests$9.999
Choose Pro

Free

Free
1,000 credits · ~40 requests/mo · 2 rps
  • All 49 APIs included
  • No credit card required
  • Full documentation and examples
Start for free

Starter

Popular
$29.99/month
50,000 credits · ~2,000 requests/mo · 10 rps
  • All 49 APIs included
  • Email support
  • Usage dashboard and analytics
Start with Starter

Pro

$99.99/month
250,000 credits · ~10,000 requests/mo · 25 rps
  • All 49 APIs included
  • Priority support
  • Up to 5 API keys
Start with Pro

Need a different plan?

Tell us about your API, volume, or support requirements.

Contact us

Coming soon · MCP

Use the Advanced Instagram API from your AI agent

The API Codex MCP server will expose this API, and the other 39, to Claude, Cursor and any MCP client as tools. Same key, same credits, one config entry.

About the MCP server

FAQ

Frequently asked questions

The Graph API only exposes accounts you own or manage, requires a Facebook app, review process and access tokens, and gives you nothing about other people's accounts. The Advanced Instagram API works on any public profile, post or reel: pass a URL or username with your API Codex key and get JSON back. No app review, no OAuth, no login.

No. The API only scrapes publicly visible pages and never asks for your Instagram credentials, session cookies or proxies. You authenticate to the API itself with your API Codex key; nothing on the Instagram side belongs to you or is put at risk. Private accounts and login-gated content are not accessible.

Every request triggers a live scrape of the page at that moment, so follower counts, likes and comments reflect the current state rather than a cached database. That is also why responses take 5-45 seconds instead of milliseconds: you are trading a little latency for data that is never stale.

If a scrape exceeds the synchronous window, the API returns 202 with a snapshot_id instead of making you wait on an open connection. Poll GET /v1/result?snapshot_id=... until it returns 200 with status "ready" and your data. This mostly happens on /v1/comments and /v1/profile-posts, where results are typically ready within 1-2 minutes.

Either works on /v1/profile and /v1/profile-posts. Passing username=nasa (with or without a leading @) is equivalent to url=https://www.instagram.com/nasa/ and saves you the URL encoding. Post, reel and comment endpoints always take the full post or reel URL since usernames cannot identify a specific post.

/v1/comments returns up to 50 comments per call (limit=1-50, default 10), each with comment_user, comment text, likes and replies. /v1/profile-posts also accepts limit plus start_date, end_date and post_type filters, so you can pull only the reels a profile published in a given date range. On any endpoint, fields= trims each object to the fields you list.