Yahoo Search Scraper API
The Yahoo Search Scraper API returns Yahoo web search results as structured JSON. Every organic result carries its position, title, destination link, displayed link, source, publish date, snippet and favicon, along with sitelinks where Yahoo shows them — plus top_stories and related_searches when the page carries them.
Endpoint:
https://api.scrapingdog.com/yahoo/searchAPI Parameters
🔑
Scrapingdog Parameters
api_keyRequiredYour personal API key. Available on your dashboard.
Type: String
🔍
Search Query
queryRequiredThe search term to look up on Yahoo (e.g.,best running shoes). Required unlessurlis supplied.
Type: StringurlOptionalA full Yahoo search URL to fetch verbatim, instead of building one from the parameters above.
Type: StringpageOptionalPage number, starting at1.
Yahoo itself paginates by result offset rather than page number — page 2 isb=11on Yahoo. This API takes the human page number and converts it for you.
Default:1
Type: IntegerresultsOptionalResults per page. Yahoo treats this as a hint and usually returns 7–10 regardless of what you ask for.
Type: Integer
🌍
Localization
countryOptionalTwo-letter country code. Selects Yahoo’s per-country host, such asin.search.yahoo.comorde.search.yahoo.com.
The country host localizes the page, but Yahoo also geolocates by the IP the request leaves from, socountry=inthrough a non-Indian exit can still return US results. Pairingcountrywithlanguageis far more reliable —country=de&language=dereturns German results consistently.
Type: StringlanguageOptionalLanguage code, sent to Yahoo asvl=lang_<code>. Best used alongsidecountry.
Type: String
🎚
️ Filters
timeOptionalRestrict results by age.
Accepted values:d(past day),w(past week),m(past month).
Type: StringsafesearchOptionalAdult-content filtering, passed through as Yahoo’svmparameter.ris the value Yahoo’s own strict-search links carry.
Type: String
⚙
️ Scrapingdog Options
htmlOptionalSet totrueto receive Yahoo’s raw HTML instead of parsed JSON.
Default:false
Type: Boolean
API Examples

Code to Integrate
curl "https://api.scrapingdog.com/yahoo/search?api_key=APIKEY&query=best+running+shoes&country=us&language=en"
import requests url = "https://api.scrapingdog.com/yahoo/search" params = { "api_key": "APIKEY", "query": "best running shoes", "country": "us", "language": "en" } response = requests.get(url, params=params) if response.status_code == 200: data = response.json() for item in data["organic_results"]: print(item["position"], item["title"], item["link"]) else: print(f"Request failed with status code: {response.status_code}")
const axios = require('axios'); axios.get('https://api.scrapingdog.com/yahoo/search', { params: { api_key: 'APIKEY', query: 'best running shoes', country: 'us', language: 'en' } }).then(response => console.log(response.data.organic_results)) .catch(error => console.error(error.message));
<?php $url = 'https://api.scrapingdog.com/yahoo/search?' . http_build_query([ 'api_key' => 'APIKEY', 'query' => 'best running shoes', 'country' => 'us', 'language' => 'en', ]); echo file_get_contents($url);
require 'net/http' require 'uri' url = URI.parse("https://api.scrapingdog.com/yahoo/search") url.query = URI.encode_www_form('api_key' => 'APIKEY', 'query' => 'best running shoes', 'country' => 'us', 'language' => 'en') http = Net::HTTP.new(url.host, url.port) http.use_ssl = true puts http.request(Net::HTTP::Get.new(url)).body
import java.io.*; import java.net.*; public class Main { public static void main(String[] args) throws Exception { String apiUrl = "https://api.scrapingdog.com/yahoo/search?api_key=APIKEY&query=best+running+shoes&country=us&language=en"; URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = reader.readLine()) != null) System.out.println(line); conn.disconnect(); } }
API Response
{
"organic_results": [
{
"position": 1,
"title": "The 15 Best Running Shoes of 2026, Tested by Runner's World",
"link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
"displayed_link": "https://www.runnersworld.com › best-running-shoes",
"source": "Runner's World",
"date": "Aug 3, 2026",
"snippet": "Find the best running shoes of 2026, including Runner's World-tested picks from Adidas, Brooks, New Balance, Nike, Hoka, Asics, and more.",
"favicon": "https://s.yimg.com/pv/static/search_favicon/images/40x40_runnersworld.png"
}
],
"related_searches": [
{
"query": "best running shoes for men",
"link": "https://search.yahoo.com/search?p=best+running+shoes+for+men"
}
],
"top_stories": [
{
"position": 1,
"title": "The 9 Best Running Shoes, According to Podiatrists",
"link": "https://www.instyle.com/best-running-shoes-8745291",
"source": "InStyle",
"date": "2 days ago",
"thumbnail": "https://s.yimg.com/uu/api/res/1.2/..."
}
]
}