nvNeuralVerge
Social media

Instagram Posts API and MCP — Captions, Likes, Comments & Media

Send an Instagram username, profile URL or single post URL and this source returns posts as data: caption, hashtags, mentions, tagged accounts, likes, comments, plays and duration for videos, media URLs, location, sponsored flag and publish date.

You send
An Instagram username, profile URL or post URL
You get back
Posts with caption, hashtags, mentions, engagement, media and date
Coverage
Posts on public Instagram accounts.
Price
5 points per returned post, up to 1,000 per request — $5 per 1,000
Billed per post actually returned, capped by max_items. A private account or an empty window costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Scrolling the feedOpen the profile and copy what you seeFree, and slowNo consistent numbers across accounts or over time
A social analytics suiteA seat licence and onboardingMonthly or annual contractDashboards first; raw post data is harder to get out
NeuralVergeOne request per account$5 per 1,000, misses not billedPublic engagement only — no reach, saves or impressions
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberHow many posts came back.
items[].idstringInstagram's media ID.
items[].short_codestringThe code in the post's URL.
items[].urlstringDirect link to the post.
items[].typestringImage, Video or Sidecar (a carousel).
items[].captionstringPost caption.
items[].hashtagsarrayHashtags in the caption.
items[].mentionsarrayAccounts mentioned in the caption.
items[].timestampstringWhen the post was published (ISO 8601).
items[].likes_countnumberLikes on the post.
items[].comments_countnumberComments on the post.
items[].video_play_countnumber | nullPlays, for videos and reels.
items[].video_durationnumber | nullVideo length in seconds.
items[].display_urlstringThe main image or video cover.
items[].video_urlstring | nullThe video file, for videos and reels.
items[].owner_usernamestringThe account that published the post.
items[].location_namestring | nullThe tagged location, if any.
items[].tagged_usersarrayAccounts tagged in the media.
items[].is_sponsoredbooleanWhether the post is marked as sponsored.
items[].musicobject | nullAudio used: artist, song and whether it's original audio.
Response

Example response

A real response, as returned.

{
  "session_id": "da05db15-accd-4125-b34f-83d363e316d2",
  "kind": "instagram_posts",
  "url": "https://www.instagram.com/natgeo/",
  "max_items": 2,
  "partial": false,
  "machine": {
    "total_items": 2,
    "items": [
      {
        "id": "4015345029736786094",
        "short_code": "De5XwfEF2iu",
        "url": "https://www.instagram.com/p/De5XwfEF2iu/",
        "type": "Sidecar",
        "caption": "National Geographic photographer @jaimerojo has spent over 20 years photographing monarch butterflies across North America, following their annual migrations from the forests of Mexico to Canada. …",
        "hashtags": [],
        "mentions": ["jaimerojo"],
        "timestamp": "2026-10-25T21:00:01.000Z",
        "likes_count": 139243,
        "comments_count": 205,
        "video_play_count": null,
        "owner_username": "natgeo",
        "owner_full_name": "National Geographic",
        "tagged_users": ["natgeoanimals"],
        "is_pinned": false,
        "is_sponsored": false,
        "child_posts_count": 4
      },
      {
        "id": "4016464237135297959",
        "short_code": "De9WPGLgn2n",
        "url": "https://www.instagram.com/p/De9WPGLgn2n/",
        "type": "Video",
        "caption": "There's more to Grenada than sun, sea, and sand. The rich volcanic soil makes fertile ground for the island's signature spices—nutmeg, mace, and clove. …",
        "hashtags": [],
        "mentions": ["golsh"],
        "timestamp": "2026-10-26T13:05:58.000Z",
        "likes_count": 10549,
        "comments_count": 43,
        "video_play_count": 240966,
        "video_duration": 15.893333,
        "owner_username": "natgeo",
        "owner_full_name": "National Geographic",
        "is_sponsored": false,
        "music": { "artist": "natgeo", "song": "Original audio", "uses_original_audio": true }
      }
    ],
    "errors": []
  },
  "total_points": 10
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

This endpoint is synchronous: the call blocks until the lookup completes and returns the records directly. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with a smaller max_items for a complete result. url is required and accepts a username, profile URL or post URL. Optional: max_items (1-1,000, default 20), newer_than (a date like 2026-01-01 or a period like 30 days).

curl -X POST https://api.neuralverge.ai/functions/v1/run-instagram-posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "natgeo", "max_items": 20, "newer_than": "30 days" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Competitor content tracking

See what competitors post, how often, and what gets engagement.

Creator vetting

Check real engagement on recent posts before a partnership, not just follower count.

Campaign and hashtag analysis

Collect captions, hashtags and mentions to see how a campaign was run.

Partnership mapping

Use mentions, tags and sponsored flags to see who a brand works with.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Posts on public Instagram accounts.

Freshness

Read at request time — engagement counts are a snapshot at that moment.

Handling

This source returns content an account published publicly, stamped with the URL it was read from and a session id you can trace. Accounts can belong to individuals as well as brands — use it for legitimate business purposes under your own lawful basis and check the acceptable use policy.

What it will not do
  • —Private accounts can't be read.
  • —Reach, impressions and saves are private to the account owner and are not returned.
  • —Engagement on very recent posts is still climbing, so compare posts of similar age.
FAQ

Questions, answered

Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with a smaller max_items to get a complete result instead of a partial one.

Related

Related sources

Try instagram posts on your own data

One request format across every source in the catalog.

Get started