Fresh Every Time
The Google Shorts API fetches live Shorts on every request, so you always get the latest results without worrying about stale data.
Extract Google Shorts data at scale using our dedicated Google Shorts API. Get video titles, source URLs, thumbnail URLs, publication dates, and more in structured JSON.
{
"short_videos_results": [
{
"title": "Elon Musk on the future of AI and robots",
"source": "CNBC Television",
"source_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"thumbnail": "https://i.ytimg.com/vi/3KtWfp0UopM/hq720.jpg",
"gif_url": "https://i.ytimg.com/an_webp/3KtWfp0UopM/mqdefault_6s.webp",
"account_name": "CNBC Television",
"date": "May 21, 2025",
"link": "https://www.youtube.com/shorts/3KtWfp0UopM"
},
{
"title": "SpaceX Starship test highlights",
"source": "Sky News",
"source_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"thumbnail": "https://i.ytimg.com/vi/Hk9aMq0dQ0o/hq720.jpg",
"gif_url": "https://i.ytimg.com/an_webp/Hk9aMq0dQ0o/mqdefault_6s.webp",
"account_name": "Sky News",
"date": "Apr 9, 2025",
"link": "https://www.youtube.com/shorts/Hk9aMq0dQ0o"
}
]
}import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google_shorts"
params = {
"api_key": api_key,
"query": "elon musk"
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(f"Request failed with status code: {response.status_code}")import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
String apiKey = "5eaa61a6e562fc52fe763tr516e4653";
String apiUrl = "https://api.scrapingdog.com/google_shorts?api_key=" + apiKey
+ "&query=elon+musk";
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = reader.readLine()) != null) {
response.append(inputLine);
}
reader.close();
System.out.println(response.toString());
} else {
System.out.println("HTTP request failed with response code: " + responseCode);
}
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?php
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$url = 'https://api.scrapingdog.com/google_shorts?api_key=' . $api_key . '&query=elon+musk';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);require 'net/http'
require 'uri'
api_key = '5eaa61a6e562fc52fe763tr516e4653'
url = URI.parse("https://api.scrapingdog.com/google_shorts?api_key=#{api_key}&query=elon+musk")
request = Net::HTTP::Get.new(url)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
response = http.request(request)
if response.is_a?(Net::HTTPSuccess)
puts response.body
else
puts "HTTP request failed with code: #{response.code}, message: #{response.message}"
endconst axios = require('axios');
const api_key = '5eaa61a6e562fc52fe763tr516e4653';
const url = 'https://api.scrapingdog.com/google_shorts';
const params = {
api_key: api_key,
query: 'elon musk',
};
axios
.get(url, { params: params })
.then(function (response) {
if (response.status === 200) {
console.log(response.data);
} else {
console.log('Request failed with status code: ' + response.status);
}
})
.catch(function (error) {
console.error('Error making the request: ' + error.message);
});titlelinkdatesourcesource_logoaccount_namethumbnailgif_urlThe Google Shorts API fetches live Shorts on every request, so you always get the latest results without worrying about stale data.
Call it once for a test or a million times in production. Our back-end handles the load and rotates proxies for you.
Send a single GET request with your key and a query. The response arrives in tidy JSON for Python, Node, or any stack.
A built-in rotating proxy system changes IP addresses automatically so requests never get blocked.
Scrapingdog bypasses CAPTCHA and anti-bot protection on Google automatically.
Receive structured Shorts data in just a few seconds with our high-performance infrastructure.
Monitor which Shorts surface for a keyword over time to spot trending topics and formats early.
See which short videos competitors and brands rank for and how their content performs.
Discover the angles, hooks, and creators dominating Shorts for any niche to inform your own content.
Find the channels and platforms (YouTube, TikTok, Instagram) behind the top Shorts for a query.
Track where specific Shorts appear for target keywords and how their position shifts.
Feed structured Shorts metadata into dashboards for media monitoring and social listening.
Sign up and get 200 free credits to start testing the Google Shorts API.
Copy your API key from the dashboard to authenticate every request.
Call /google_shorts with a query to pull the live Shorts results.
Get a JSON short_videos_results array with title, source, thumbnail, and date.
Start your web scraping journey with 200 free credits. Test our service and upgrade to one of the plans below. Cancel anytime.

I got the free trial and in less than a minute I already integrated with their API. They had all the plug-and-play codes ready for me. It was seamless.
United States
I love how you can use it to scrape data from Google.
Norway
Reliable, and simple to use! It’s also inexpensive and has packaged solutions for every need (Google, LinkedIn). Highly recommend.
France
The API is easy to use and the response is fast and clean. Exactly what we needed for our content research.
Italy
The Google Shorts API lets you extract the short videos shown in Google search results — including their title, source, thumbnail, GIF preview, account name, and publication date — as structured JSON.
For each short video you get the title, source platform, source logo, thumbnail URL, GIF preview URL, account name, publication date, and a direct link to the video.
Yes, you get 200 free credits on signup with no credit card required, so you can test the Google Shorts API before upgrading.
Each API request consumes a certain number of credits based on the dedicated API you're using. For example the Google Search API costs 5 credits per request. The number of credits required per request can vary depending on the specific API you're using.
Get 200 free credits to spin the API. No credit card required!