YouTube Trending API

Fetch trending public YouTube videos for a country, with cursor pagination and per-video metrics.

Input: Optional country. Returns: a page of results with a cursor for the next, in YouTube's own field names. Price: 1 credit per call; failed reads are free.

GET /v1/youtube/trending Optional country · Cursor page

Try it. This API needs no input.

The endpoint can run without a URL. Add optional region parameters only when you need a regional trend list.

Try this API live
1

Pick a sample input

Start from a valid shape, then replace the sample value with your public target.

Selected country=US Open

2

Preview the request

Use a server-side key and send parameters as query values.

GET https://api.sourcevine.io/v1/youtube/trending
curl -G 'https://api.sourcevine.io/v1/youtube/trending' \
  -H 'Authorization: Bearer sv_live_...' \
  --data-urlencode 'country=US' \
  --data-urlencode 'limit=20'
const params = new URLSearchParams({
  "country": "US",
  "limit": "20",
});

const res = await fetch('https://api.sourcevine.io/v1/youtube/trending?' + params, {
  headers: { Authorization: 'Bearer sv_live_...' },
});

const body = await res.json();
console.log(body.data);
import requests

r = requests.get(
    "https://api.sourcevine.io/v1/youtube/trending",
    params={"country": "US", "limit": "20"},
    headers={"Authorization": "Bearer sv_live_..."},
)

body = r.json()
print(body["data"])
Shows an illustrative response. Nothing leaves your browser.
3

Read the response

Every success includes availability, a fetch timestamp and billing context.

GET /v1/youtube/trending Not run

Hit Show sample response to see the response.

An illustrative response. This endpoint has no verified capture yet.

available 1 credit illustrative
{
  "success": true,
  "available": true,
  "data": {
    "items": [
      {
        "videoId": "9wq3VHsL_bE",
        "title": "Launch teardown",
        "views": 943820,
        "likes": 28440,
        "comments": 3120,
        "cached": false
      }
    ],
    "nextCursor": "CDIQAA",
    "fetchedAt": "2026-08-28T09:41:44Z",
    "cached": false,
    "cacheAgeSeconds": 0
  }
}

Use this API from code, no-code tools, MCP clients and agents.

We build and maintain theseFirst-party surfaces, versioned with the API.

Response fields.

Each response includes typed availability, a fetch timestamp, and only the public fields this API promises.

FieldTypeMeaning
items array Trending public YouTube videos.
items[].videoId string YouTube video id.
items[].title string | null Public video title after scrubbing.
items[].views integer | null Public view count when reported.
nextCursor string | null Pass as cursor to request the next page.
fetchedAt ISO datetime When Sourcevine read the public page.
sourceTimestamp ISO datetime | null The platform timestamp when it is available.
cached boolean True when this answer repeats an identical request made moments earlier.
cacheAgeSeconds integer Seconds since the reading was taken.

How a request is handled.

  1. 01 Call it

    Call /v1/youtube/trending directly for a current YouTube list. Optional region parameters stay explicit in the request.

  2. 02 Checked

    Optional parameters are validated before any fetch.

  3. 03 Read

    The public data is read when you call. An identical request moments earlier is answered again, free.

  4. 04 Typed availability

    Deleted, private and unsupported resources return explicit statuses, so clients can stop retrying facts about the world.

  5. 05 JSON back

    YouTube names stay intact, so your code reads videoId instead of reverse-engineering a generic schema.

    fetchedAtcreditsChargedavailable

Every response carries fetchedAt and the platform timestamp, so you know how old a reading is before you act on it. YouTube Trending API fits recurring trending checks in dashboards, spreadsheets, workflows and agents.

What this API does not return.

  • No contact or bio fields

    Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.

  • No private data

    Private accounts, restricted content and unavailable resources return typed availability instead of guessed data.

  • No prediction

    Trend APIs return what the platform publishes now. They do not forecast future rank, reach or revenue.

Where teams use YouTube Trending API.

Morning trend scan

Pull the current public trend list before an editorial or social planning meeting.

Alerting

Watch for topics that match a brand, competitor or campaign phrase.

Content planning

Use trend rows as seeds, then inspect matching posts, creators or sounds.

Research logs

Keep a dated record of what was trending when a report or decision was made.

1 credit per call, and nothing for a failed read.

The response and X-Credits-Charged header tell you what happened, including when it is zero.

Charged1 credit

  • AnsweredThe public data came back.
  • Not found or privateThe lookup was made, and that is the answer. The response says which.
  • Empty resultThe lookup was made and found nothing to return, such as an account with no posts.

Not charged0 credits

  • Failure on our sideA timeout or a read we could not complete.
  • Unsupported URLThe wrong kind of URL: refused before any fetch.
  • Cache hitAn identical request moments earlier, answered again.

Common questions.

What does YouTube Trending API return?

Fetch trending public YouTube videos for a country, with cursor pagination and per-video metrics.

How is it billed?

A call costs 1 credit, including an empty result. Retrieval failures are not charged.

What happens when the resource is private or deleted?

The request returns available=false with a typed availability status. Not-found and private results are charged like any lookup; unsupported URLs and retrieval failures are not.

Does Sourcevine return contact data?

No. Bios, emails, phone numbers, postal addresses and private or restricted content are outside the public response contract.

Do I need to log in to YouTube?

No. Your integration authenticates with a Sourcevine API key. You do not need to supply YouTube credentials or a session.