nvNeuralVerge
Social media

Instagram Reels API and MCP — Plays, Likes, Duration & Audio

Send an Instagram username, profile URL or single reel URL and this source returns reels as data: caption, hashtags, mentions, plays, likes, comments, duration, the audio used, cover image, video URL and publish date.

You send
An Instagram username, profile URL or reel URL
You get back
Reels with caption, plays, likes, comments, duration, audio and video URL
Coverage
Reels on public Instagram accounts.
Price
5 points per returned reel, up to 1,000 per request — $5 per 1,000
Billed per reel actually returned, capped by max_items. An account with no reels costs nothing.
Comparison

Ways to get this data

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

ApproachWhat it takesCostTrade-off
Watching reels by handOpen each reel and note the countsFree, and slowNo way to compare many accounts consistently
A creator analytics platformA subscription and onboardingMonthly or annual contractCovers its own creator index, on its own refresh schedule
NeuralVergeOne request per account$5 per 1,000, misses not billedPublic counts only — no watch time or audience retention
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": "75bc040c-fdf0-4d51-9169-1e9e7b9cc20d",
  "kind": "instagram_reels",
  "url": "https://www.instagram.com/natgeo/",
  "max_items": 1,
  "partial": false,
  "machine": {
    "total_items": 1,
    "items": [
      {
        "id": "4016464237135297959",
        "short_code": "De9WPGLgn2n",
        "url": "https://www.instagram.com/p/De9WPGLgn2n/",
        "type": "Video",
        "product_type": "clips",
        "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—which are woven into the fabric of life here, especially during Spicemas, the country’s vibrant August carnival. …",
        "hashtags": [],
        "mentions": ["golsh"],
        "timestamp": "2026-10-26T13:05:58.000Z",
        "likes_count": 10982,
        "comments_count": 44,
        "video_play_count": 250148,
        "video_duration": 15.893333,
        "display_url": "https://instagram.fgdl13-1.fna.fbcdn.net/v/t51.82787-15/…",
        "video_url": "https://instagram.fgdl13-1.fna.fbcdn.net/o1/v/t2/f2/m86/….mp4",
        "owner_username": "natgeo",
        "owner_full_name": "National Geographic",
        "is_pinned": false,
        "is_sponsored": false,
        "music": { "artist": "natgeo", "song": "Original audio", "uses_original_audio": true }
      }
    ],
    "errors": []
  },
  "total_points": 5
}
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 reel URL. Optional: max_items (1-1,000, default 20), newer_than (a date or a period like 30 days).

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

What teams use it for

Where this field shows up in an actual workflow.

Short-video benchmarking

Compare plays per reel across competitors or creators.

Format research

See which lengths and audio choices get watched in your category.

Creator selection

Pick partners by how their reels actually perform, not their follower count.

Campaign tracking

Follow a campaign's reels and their plays as they accumulate.

Coverage & limits

Coverage, freshness and limits

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

Coverage

Reels on public Instagram accounts.

Freshness

Read at request time — play 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.
  • —Watch time, retention and reach are private to the account owner.
  • —Video and image URLs are temporary links; download what you need to keep.
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 reels on your own data

One request format across every source in the catalog.

Get started