nvNeuralVerge
Social media

YouTube Shorts API and MCP — Views, Likes & Hashtags per Short

Send a YouTube channel handle or URL and this source returns its shorts as data: title, description, hashtags, views, likes, comment count, duration and publish date — each with the channel's subscribers, total videos and total views attached.

You send
A YouTube channel handle or URL
You get back
Shorts with title, views, likes, comments, hashtags and date
Coverage
Shorts on public YouTube channels.
Price
2 points per returned short, up to 1,000 per request — $2 per 1,000
Billed per short actually returned, capped by max_items. A channel with no shorts costs nothing.
Comparison

Ways to get this data

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

ApproachWhat it takesCostTrade-off
Browsing the Shorts tabOpen the channel and note the numbersFree, and slowNo consistent comparison across channels
The YouTube Data APIA Google Cloud project, API key and quotaFree within a daily quotaNo dedicated way to list a channel's shorts
NeuralVergeOne request per channel$2 per 1,000, misses not billedPublic stats only — no watch time or swipe-away rate
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberHow many videos came back.
items[].idstringYouTube's video ID.
items[].urlstringDirect link to the video.
items[].typestringvideo, shorts or stream.
items[].titlestringVideo title.
items[].descriptionstringFull description text.
items[].description_linksarrayLinks in the description, resolved to their real targets.
items[].hashtagsarrayHashtags on the video.
items[].datestringWhen the video was published (ISO 8601).
items[].durationstringLength as HH:MM:SS.
items[].view_countnumberViews at read time.
items[].likesnumberLikes at read time.
items[].comments_countnumberComment count.
items[].comments_turned_offbooleanWhether comments are disabled.
items[].is_paid_contentbooleanWhether the video declares a paid promotion.
items[].subtitlesarraySubtitle tracks, when download_subtitles is on.
items[].channelobjectThe channel: name, handle, subscribers, total videos, total views, description, links, joined date, verified.
Response

Example response

A real response, as returned.

{
  "session_id": "2ac37171-dd30-431b-9a14-00e7e9c38c3a",
  "kind": "youtube_shorts",
  "channel": "https://www.youtube.com/@NASA",
  "max_items": 1,
  "partial": false,
  "machine": {
    "total_items": 1,
    "items": [
      {
        "id": "-62C9R_41Sc",
        "url": "https://www.youtube.com/shorts/-62C9R_41Sc",
        "type": "shorts",
        "title": "From the Moon to the 50-Yard Line",
        "description": "From the Moon to the 50-yard line. Six months ago, NASA astronaut Christina Koch flew Philadelphia Eagles Super Bowl confetti around the Moon on the Artemis II mission. Yesterday, in a full circle moment, she served as honorary captain at an Eagles game, bringing a little Moon Joy to the field. #ArtemisII #FlyEaglesFly #MoonJoy",
        "hashtags": ["#ArtemisII", "#FlyEaglesFly", "#MoonJoy"],
        "date": "2026-10-05T23:21:46.000Z",
        "duration": "00:00:39",
        "view_count": 50785,
        "likes": 970,
        "comments_count": 0,
        "comments_turned_off": false,
        "is_paid_content": false,
        "channel": {
          "id": "UCLA_DiR1FfKNvjuUpBHmylQ",
          "name": "NASA",
          "username": "NASA",
          "subscribers": 15100000,
          "total_videos": 6194,
          "total_views": 1132208768,
          "joined_date": "Jun 3, 2008",
          "is_verified": true
        },
        "found_on_url": "https://www.youtube.com/@NASA/shorts"
      }
    ],
    "errors": []
  },
  "total_points": 2
}
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 smaller limits for a complete result. channel is required and accepts a handle (@NASA) or channel URL. Optional: max_items (1-1,000, default 20), sort_by (POPULAR or OLDEST; newest first when left out).

curl -X POST https://api.neuralverge.ai/functions/v1/run-youtube-shorts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "channel": "@NASA", "max_items": 20, "sort_by": "POPULAR" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Short-video benchmarking

Compare views per short across competitors or creators.

Hashtag research

See which hashtags a channel uses on the shorts that travel furthest.

Creator selection

Pick partners by how their shorts perform, not only by subscribers.

Cross-platform comparison

Put a brand's shorts next to its Instagram reels.

Coverage & limits

Coverage, freshness and limits

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

Coverage

Shorts on public YouTube channels.

Freshness

Read at request time — views are a snapshot at that moment.

Handling

This source returns what a channel published publicly, stamped with the URL it was read from and a session id you can trace.

What it will not do
  • —No subtitles here — use YouTube channel with download_subtitles when you need transcripts.
  • —Watch time and audience data are private to the channel owner.
  • —Like counts can be rounded the way YouTube displays them.
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 smaller limits to get a complete result instead of a partial one.

Related

Related sources

Try youtube shorts on your own data

One request format across every source in the catalog.

Get started