Real-Time Data
Fetch live stock quotes and bid/ask spreads with sub-second freshness on every call.
Extract stock price, movement, value, and more data points at scale using Scrapingdog's Google Finance API.
"summary": {
"title": "Tesla Inc",
"stock": "TSLA",
"exchange": "NASDAQ",
"price": "$280.52",
"extracted_price": 280.52,
"price_movement": {
"percentage": -0.58,
"value": -1.64,
"movement": "Down"
}
}"graph": [
{
"price": 280.24,
"currency": "USD",
"date": "May 1, 2025, 1:30 PM UTC-04:00",
"volume": 11459
}
]"knowledge_graph": {
"key_stats": {
"stats": [
{
"label": "Previous close",
"value": "$282.16"
},
{
"label": "Market cap",
"value": "879.00B USD"
}
]
}
}import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google_finance"
params = {
"api_key": api_key,
"query": "TSLA:NASDAQ"
}
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 {
// Set the API key and request parameters
String apiKey = "5eaa61a6e562fc52fe763tr516e4653";
String query = "TSLA:NASDAQ";
// Construct the API endpoint URL
String apiUrl = "https://api.scrapingdog.com/google_finance?api_key=" + apiKey
+ "&query=" + query;
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
// Set the API key and request parameters
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$query = 'TSLA:NASDAQ';
// Set the API endpoint
$url = 'https://api.scrapingdog.com/google_finance?api_key=' . $api_key . '&query=' . $query;
// Initialize cURL session
$ch = curl_init($url);
// Set cURL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Execute the cURL request
$response = curl_exec($ch);
// Check if the request was successful
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
// Close the cURL session
curl_close($ch);require 'net/http'
require 'uri'
# Set the API key and request parameters
api_key = '5eaa61a6e562fc52fe763tr516e4653'
query = 'TSLA:NASDAQ'
# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google_finance?api_key=#{api_key}&query=#{query}")
# Create an HTTP GET request
request = Net::HTTP::Get.new(url)
# Create an HTTP client
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true # Enable SSL (https)
# Send the request and get the response
response = http.request(request)
# Check if the request was successful
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_finance';
const params = {
api_key: api_key,
query: 'TSLA:NASDAQ',
};
axios
.get(url, { params: params })
.then(function (response) {
if (response.status === 200) {
const data = response.data;
console.log(data);
} else {
console.log('Request failed with status code: ' + response.status);
}
})
.catch(function (error) {
console.error('Error making the request: ' + error.message);
});titlestockexchangepriceextracted_priceprice_movementtimepricecurrencydatevolumekey_statsstatslabelvaluetagsaboutlinksnippetsourcetimetitleresultsdatetablevaluechangestocknamepriceprice_movementlinkscrapingdog_linkScraping Google Finance by hand means decoding ticker:exchange identifiers, racing against quotes that move every second, and rebuilding parsers when the panel shifts.
Every quote depends on the exact TSLA:NASDAQ format, plus futures, index, and crypto symbols that each follow their own convention.
Prices, bid/ask spreads, and the intraday graph tick continuously, so a slow or cached scrape reports a stale number.
The summary, key_stats, financial statements, and markets blocks are deeply nested and reshuffle often, breaking brittle selectors.
Pulling price, market cap, income-statement tables, and market_news from separate page sections by hand is slow to keep in sync.
With Scrapingdog, one API call handles proxies, CAPTCHA, parsing, and scaling, so you focus on the market data.
Stay up-to-date with live stock quotes and market data refreshed every second.
Handle from hundreds to millions of requests with stable performance and no maintenance.
Filter and retrieve exactly the stock, exchange, and market data points you need.
Access in-depth market news and sentiment alongside structured price and financial data.
Fetch live stock quotes and bid/ask spreads with sub-second freshness on every call.
Automatically scales to handle any volume, from your first test to millions of requests, without extra setup.
Summary, price graph, key stats, financials, and market news arrive as clean keyed JSON, no HTML parsing.
A built-in rotating proxy pool changes IP on every request, so high-frequency polling never trips rate limits.
Scrapingdog automatically bypasses CAPTCHA and anti-bot protection, so you can send requests without worrying about blocks.
Our powerful infrastructure is designed to deliver reliable market data every time, with optimized proxy rotation.
Monitor specific stocks via live price data and bid/ask spreads to keep watchlists and dashboards current.
Integrate stock prices, company details, and historical data into portfolio trackers and apps.
Use historical and real-time quotes to backtest and adjust your investment strategies.
Combine stock data with market news sentiment to analyze trends and inform decisions.
Track competitor stock performance, market cap, and key financial metrics over time.
Auto-generate reports using real-time and historical market data without manual data entry.
Sign up in seconds and get free credits to start testing the Finance API without any setup.
Access your unique API key from the dashboard and use it to scrape market data.
Call /google_finance with a ticker:exchange query like TSLA:NASDAQ.
Get clean JSON with summary, price graph, key stats, financials, and news.
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 it into my workflow. The documentation is clear and the setup was effortless.
United States
I love how you can use it to scrape data from Google.
Oslo, Norway
Scrapingdog is an awesome service. I use it with my local lead generation business and it has helped me land a few clients.
Mexico
Reliable, and simple to use! Itβs also inexpensive and has packaged solutions for every need (Google, LinkedIn). Highly recommend.
France
No, Google doesn't provide an official Finance API. You can use a 3rd-party API provider like Scrapingdog instead.
Yes, other than the data from search results, we have dedicated APIs for Google Scholar, Google Images, Google Lens, and more.
As long as you are not overloading the server and you are extracting publicly available data, web scraping is legal.
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, while other APIs may consume a different number of credits per call.
Get 200 free credits to spin the API. No credit card required!