Google Video Search API

Google Video Search API: the videos Google shows for a query

GET /serp returns the video results Google shows on its results page for any query (position, title, URL, platform and channel) as a videos array, for 3 credits per page. For duration, views and thumbnails instead, GET /search/videos returns up to 10 videos for 1 credit from YouTube's public search results.

GET/api/v1/search/web?q=postgres+connection+pooling&num=3
200 OK0.17s1 credit85,000 results
{  "searchTime": 0.17,  "totalResults": 85000,  "page": 1,  "organic": [    {      "position": 1,      "title": "31.10. Connection Pools and Data Sources",      "link": "www.postgresql.org/docs/…",      "domain": "postgresql.org",      "snippet": "For an environment without an application se…"    },    { "position": 2, "domain": "medium.com", … },    { "position": 3, "domain": "stackoverflow.blog", … }  ],  "credits": 1}

Is there an API for Google's video search results?

Google publishes no API for the video results on its search results page. Searlo's GET /serp returns them as a videos array (position, title, URL, platform and channel) alongside the organic results, for 3 credits per results page.

GET /search/videos is a different, cheaper tool: 1 credit for up to 10 videos with duration, view count, thumbnail and publish date, taken from YouTube's public search results, so its order is YouTube's rather than Google's.

Google's video results
GET /serp, videos array: position, title, url, source (platform), channel. 3 credits per page
Video metadata search
GET /search/videos: title, link, duration, views, thumbnail, publish date, channel, videoId. 1 credit, up to 10 videos
Cost at the Scale pack rate
$0.90 per 1,000 SERP checks; $0.30 per 1,000 video searches— our pricing
YouTube Data API default allocation
100 search.list calls per day— developers.google.com/youtube/v3

Third-party figures on this page last verified against the sources linked above. Prices change; if you find one of these stale, tell us and we will correct it.

Search "how to replace a bike chain" on Google and a block of videos sits among the results: mostly YouTube, sometimes TikTok, Facebook, Vimeo or Instagram, in an order Google chose. That block is what video SEO competes for. GET /serp returns it as the videos array, in the same response that carries the organic results, ads, People Also Ask and related searches for the page.

Searlo also has a second, different video endpoint. GET /search/videos searches YouTube's public results page and returns richer metadata per video (duration, view count, thumbnail, publish date) for 1 credit. It answers "what videos exist on this topic", not "what does Google show". This page covers both and says which to use when.

Two endpoints, two questions

Which video endpoint answers which question
PropertyGET /serp (videos array)GET /search/videos
AnswersWhich videos Google shows for this query, and whereWhich videos YouTube returns for this query
Ranking orderGoogle'sYouTube's
PlatformsWhatever Google shows: YouTube, TikTok, Facebook, Vimeo, Instagram and othersYouTube
Fields per videoposition, title, url, source, channelposition, title, link, duration, views, thumbnail, publish date, channel, videoId
Also in the responseorganic, ads, peopleAlsoAsk, relatedSearches, knowledgeGraphVideos only
How manyThe video units on the first results pageUp to 10 per call, first page only
Cost3 credits per results page1 credit per call

What the responses look like

Illustrative values, real keys, trimmed. The first tab is GET /serp cut down to its video block; the second is one GET /search/videos result.

{
  "success": true,
  "searchParameters": {
    "q": "how to replace a bike chain",
    "gl": "us",
    "hl": "en",
    "page": 1,
    "pages": 1,
    "num": 10,
    "device": "desktop",
    "type": "serp"
  },
  "videos": [
    {
      "position": 1,
      "title": "How to Replace a Bike Chain in 5 Minutes",
      "url": "https://www.youtube.com/watch?v=abc123xyz00",
      "redirectUrl": null,
      "resolved": true,
      "source": "YouTube",
      "channel": "Example Bike Repair"
    },
    {
      "position": 2,
      "title": "Chain swap for beginners",
      "url": "https://www.tiktok.com/@examplecyclist/video/7300000000000000000",
      "redirectUrl": null,
      "resolved": true,
      "source": "TikTok",
      "channel": "examplecyclist"
    }
  ],
  "peopleAlsoAsk": [
    { "question": "How do I know if my bike chain needs replacing?" }
  ],
  "relatedSearches": [
    { "query": "bike chain replacement cost" }
  ],
  "fetchedAt": "2026-09-29T10:02:41.118Z",
  "cached": false
}
{
  "searchParameters": {
    "q": "how to replace a bike chain",
    "type": "videos",
    "gl": "us",
    "num": 10,
    "page": 1
  },
  "videos": [
    {
      "position": 1,
      "title": "How to Replace a Bike Chain in 5 Minutes",
      "link": "https://www.youtube.com/watch?v=abc123xyz00",
      "thumbnailUrl": "https://i.ytimg.com/vi/abc123xyz00/hqdefault.jpg",
      "duration": "8:42",
      "durationSeconds": 522,
      "source": "Example Bike Repair",
      "sourceUrl": "https://www.youtube.com/@examplebikerepair",
      "publishedDate": "2 years ago",
      "views": "1,204,311 views",
      "viewCount": 1204311,
      "snippet": "Everything you need to swap a worn chain at home…",
      "videoId": "abc123xyz00"
    }
  ],
  "credits": 1
}

Call it from curl, Python or Node

Both endpoints take the same key. The GET /serp calls pass aioverview=false, because a video check does not need to wait for the AI Overview; the price is 3 credits either way.

# The video results Google shows (3 credits per results page)
curl "https://api.searlo.tech/api/v1/serp?q=how+to+replace+a+bike+chain&gl=us&hl=en&aioverview=false" \
  -H "x-api-key: YOUR_API_KEY"

# Video metadata search (1 credit, up to 10 videos)
curl "https://api.searlo.tech/api/v1/search/videos?q=how+to+replace+a+bike+chain&gl=us&hl=en&limit=10" \
  -H "x-api-key: YOUR_API_KEY"
import requests

API = "https://api.searlo.tech/api/v1"
HEADERS = {"x-api-key": "YOUR_API_KEY"}
query = "how to replace a bike chain"

# 1) Which videos does Google show for the query, and at which position?
serp = requests.get(
    f"{API}/serp",
    params={"q": query, "gl": "us", "hl": "en", "aioverview": "false"},
    headers=HEADERS,
    timeout=120,
).json()
for v in serp["videos"]:
    print(v["position"], v["source"], v["channel"], v["title"], v["url"])

# 2) Duration and views for videos on the topic (1 credit)
vids = requests.get(
    f"{API}/search/videos",
    params={"q": query, "gl": "us", "hl": "en", "limit": 10},
    headers=HEADERS,
    timeout=60,
).json()
for v in vids["videos"]:
    print(v["title"], v["duration"], v["viewCount"], v["link"])
const API = "https://api.searlo.tech/api/v1";
const headers = { "x-api-key": "YOUR_API_KEY" };
const q = "how to replace a bike chain";

const params = new URLSearchParams({ q, gl: "us", hl: "en", aioverview: "false" });
const serp = await fetch(`${API}/serp?${params}`, { headers }).then((r) => r.json());

// Does my channel appear in Google's video block, and where?
const mine = serp.videos.find((v) => v.channel === "Example Bike Repair");
console.log(mine ? `Google video position ${mine.position}` : "Not in Google's video block");

What it costs

Credits converted at each pack's published rate. Packs are one-time purchases, not a subscription; credits on new accounts are valid for 90 days.
PackPer 1,000 credits1,000 Google SERP checks (3 credits)1,000 video searches (1 credit)
Micro ($3.99, 5,000 credits)$0.80$2.40$0.80
Starter ($9.99, 20,000 credits)$0.50$1.50$0.50
Builder ($29.99, 75,000 credits)$0.40$1.20$0.40
Scale ($74.99, 250,000 credits)$0.30$0.90$0.30
Pro ($199.99, 900,000 credits)$0.22$0.66$0.22
Enterprise ($799, 4,000,000 credits)$0.20$0.60$0.20

A worked example: checking Google's video block for 300 keywords once a week is about 1,300 SERPs a month (300 × 52 ÷ 12), or 3,900 credits. That is $1.56 at the Builder rate and $1.17 at the Scale rate, and a Micro pack ($3.99, 5,000 credits) covers the month. Adding a weekly GET /search/videos call for the same 300 keywords is another 1,300 credits.

A results page with no video block still costs 3 credits, because the page was fetched. A request that fails with a 4xx or 5xx status, or returns success: false, is refunded automatically. The 3,000 free credits on a new account cover 1,000 SERP checks or 3,000 video searches.

What teams build with video results

  • Video SEO tracking: whether your videos appear in Google's video block for target keywords, and at which position, market by market.
  • Platform share: how often Google shows YouTube versus TikTok, Facebook, Vimeo or Instagram for a topic, counted from the source field.
  • Competitor channel monitoring: which channels hold Google's video positions across your category, week by week.
  • Content planning: a query where Google shows a video block is a query where a video can rank. Build that list from the SERP, not from guesswork.
  • Topic research: duration, view counts and publish dates for the videos already covering a subject, from GET /search/videos.

Related endpoints and pages

Honest limits

What these endpoints do not do, so you can plan around it.

  • Not the YouTube Data API. Neither endpoint returns comments, captions, subscriber counts, channel analytics or uploads, and neither is an official Google or YouTube product.
  • Google's video block is not on every page. Many queries show none; videos is then an empty array and the page is still a billed SERP.
  • The block comes from page one. pages=2 and above add organic results; video units are read from the first results page.
  • Detection is structural. Searlo recognises video units by their layout and platform labels. An unusual unit can be missed, and source is empty when the platform is not one Searlo labels (YouTube, TikTok, Facebook, Vimeo, Instagram).
  • Links can be Google redirects. When Google wraps a video link in its own redirect, the item carries redirectUrl and resolved: false.
  • GET /search/videos is YouTube's ranking, not Google's, with at most 10 videos per call and no second page. If its primary source is unavailable, a fallback source answers and the results can differ.
  • GET /serp takes seconds, because each page is rendered in a real browser. Allow a generous client timeout; the examples use 120 seconds.

FAQ

Google video search API: FAQ

Does Google have an official video search API?

Not for its search results. Google publishes no API for the video results on its results page. The YouTube Data API is Google's official way to search YouTube itself, with a default allocation of 100 search.list calls per day (developers.google.com/youtube/v3/determine_quota_cost, checked 2026-09-29), and it returns YouTube's ranking rather than what Google Search displays. GET /serp returns the video block Google Search displays.

What fields does each video result have?

From GET /serp: position, title, url, redirectUrl, resolved, source (the platform, such as YouTube or TikTok) and channel. From GET /search/videos: position, title, link, thumbnailUrl, duration, durationSeconds, source (the channel name), sourceUrl, publishedDate, views, viewCount, snippet and videoId.

Is GET /search/videos Google's Videos tab?

No. It searches YouTube's public results page, so its order is YouTube's. Use it for metadata such as duration, views and publish date, and use GET /serp when the question is what Google shows.

How much does it cost?

GET /serp is 3 credits per results page: $0.90 per 1,000 checks at the Scale pack's $0.30 per 1,000 credits, or $0.60 at the Enterprise rate. GET /search/videos is 1 credit, so $0.30 per 1,000 searches at the Scale rate. Failed requests are refunded automatically, and new accounts get 3,000 free credits.

Can I check video results by country, city or device?

Yes, on GET /serp: gl for the country, hl for the language, location (a Google geotargets name) or uule for a city, and device for desktop, mobile or tablet. GET /search/videos takes gl and hl.

Can I get more than one page of videos?

On GET /serp the video block comes from the first results page; extra pages add organic results only. GET /search/videos returns up to 10 videos per query and has no second page.

Is Searlo affiliated with Google or YouTube?

No. Searlo is an independent service and is not affiliated with, endorsed by or sponsored by Google or YouTube. Google and YouTube are trademarks of Google LLC. Searlo returns publicly visible results as JSON.

See which videos Google shows for your keywords

3,000 free credits cover 1,000 Google SERP checks or 3,000 video searches. No card, no subscription.