YouTube Search API
The YouTube Search API lets you scrape YouTube search results for any query. Returns structured video data including titles, links, channel info, view counts, durations, thumbnails, and pagination tokens. Each successful request costs 5 API credits.
Endpoint:
https://api.scrapingdog.com/youtube/searchAPI Parameters
π
Scrapingdog Parameters
api_keyRequiredYour personal API key. Available on your dashboard.
Type: String
π
Search Query
search_queryRequiredThis can be any YouTube query. Example:search_query=elon+musk
Type: String
π
Geographic Location and Localization
countryOptionalISO code of the country from which you are seeking YouTube search results. Default:us
Type: StringlanguageOptionalLanguage of the results. Possible Values βen,es,fr,de, etc. Default:en
Type: String
β
οΈ Advanced
spOptionalUsed for pagination and filtering search results on YouTube. Supports upload date (CAI%3D), 4K videos (EgJwAQ%3D%3D), exact spelling (QgIIAQ%3D%3D), and custom filters. Also used asnext_page_tokenfrom the previous response for pagination.
Type: String
API Examples

Code to Integrate
curl "https://api.scrapingdog.com/youtube/search?api_key=APIKEY&search_query=elon+musk"
import requests params = { "api_key": "APIKEY", "search_query": "elon musk", "country": "us", "language": "en" } response = requests.get("https://api.scrapingdog.com/youtube/search", params=params) print(response.json())
const params = new URLSearchParams({ api_key: "APIKEY", search_query: "elon musk", country: "us", language: "en" }); const res = await fetch(`https://api.scrapingdog.com/youtube/search?${params}`); const data = await res.json(); console.log(data);
<?php $url = 'https://api.scrapingdog.com/youtube/search?' . http_build_query([ 'api_key' => 'APIKEY', 'search_query' => 'elon musk', 'country' => 'us', 'language' => 'en', ]); echo file_get_contents($url);
require 'net/http' require 'uri' require 'json' uri = URI('https://api.scrapingdog.com/youtube/search') uri.query = URI.encode_www_form( 'api_key' => 'APIKEY', 'search_query' => 'elon musk', 'country' => 'us', 'language' => 'en' ) response = Net::HTTP.get_response(uri) puts JSON.parse(response.body)
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { public static void main(String[] args) throws Exception { String url = "https://api.scrapingdog.com/youtube/search" + "?api_key=APIKEY&search_query=elon+musk&country=us&language=en"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }
API Response
{
"channel_results": [
{
"title": "Scrapingdog",
"link": "https://www.youtube.com/@scrapingdog9955",
"verified": false,
"handle": "@scrapingdog9955",
"subscribers": 372,
"description": "",
"thumbnail": "https://yt3.ggpht.com/...",
"position": 1
}
],
"video_results": [
{
"title": "What is Scrapingdog | Introduction Video | How To Use Scrapingdog API",
"link": "https://www.youtube.com/watch?v=GOxYIfnvB-w",
"channel": {
"name": "Scrapingdog",
"link": "https://www.youtube.com/channel/@scrapingdog9955",
"thumbmail": "https://yt3.ggpht.com/...",
"verified": false
},
"published_date": "1 year ago",
"views": "4,193 views",
"length": "2:27",
"description": "Hey there! ...",
"extensions": [],
"thumbnail": {
"static": "https://i.ytimg.com/vi/GOxYIfnvB-w/hq720.jpg",
"rich": ""
},
"position": 3
}
],
"shorts_results": [
{
"shorts": [
{
"title": "Stop Fighting CAPTCHAs. Do This Instead",
"link": "https://www.youtube.com//shorts/fqIWBxH1pko",
"thumbnail": "https://i.ytimg.com/vi/fqIWBxH1pko/frame0.jpg",
"views_original": "547",
"views": 547,
"video_id": "",
"position": 1
}
],
"position": 2
}
],
"movie_results": [],
"pagination": {
"current": "https://www.youtube.com/results?search_query=scrapingdog",
"next_page_token": "SBSCARhVQy1OVzd6...",
"next": "https://www.youtube.com/results?search_query=scrapingdog&sp=SBSCARhVQy1OVzd6..."
}
}