Google API: List Google Finance market movers
Lists today's leading gainers, losers or most active stocks in Google Finance display order, with price, change, percent change and currency; the public page shows up to four stocks per list.
Unofficial. Not affiliated with or endorsed by Google.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- List optional
list Mover list to view, for example gainers.
gainers
One of
gainers,losers,most_active. Defaultgainers.- Max Results optional
max_results Maximum stocks to return, for example 20; the current page shows up to four.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "list": "gainers", "max_results": 20}Output
{ "stocks": [ { "currency": "USD", "quote_link": "https://www.google.com/finance/quote/KOD:NASDAQ" , "company_name": "Kodiak Sciences Inc", "latest_price": 89.92, "price_change": 57.57, "percent_change": 177.96, "ticker_with_exchange": "KOD (NASDAQ)" }, { "currency": "USD", "quote_link": "https://www.google.com/finance/quote/MAAS:NASDAQ" , "company_name": "Maase Inc", "latest_price": 17.95, "price_change": 2.58, "percent_change": 16.79, "ticker_with_exchange": "MAAS (NASDAQ)" }, { "currency": "USD", "quote_link": "https://www.google.com/finance/quote/GDXD:NYSEARCA" , "company_name": "MicroSectors Gold Miners 3X Inverse Leveraged ETN", "latest_price": 22.2, "price_change": 3.13, "percent_change": 16.41, "ticker_with_exchange": "GDXD (NYSEARCA)" } ], "as_of_time": "2026-09-28T16:00:01-04:00"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"google.com/list_market_movers","input":{"list":"gainers","max_results":20}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "google.com/list_market_movers" , "input": { "list": "gainers", "max_results": 20 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "google.com/list_market_movers" , "input": { "list": "gainers", "max_results": 20 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run google.com/list_market_movers# with {"list":"gainers","max_results":20}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "list": { "enum": [ "gainers", "losers", "most_active" ], "type": "string", "default": "gainers", "description": "Mover list to view, for example gainers." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum stocks to return, for example 20; the current page shows up to four." } }}Output schema
{ "type": "object", "required": [ "as_of_time", "stocks" ], "properties": { "stocks": { "type": "array", "items": { "type": "object", "required": [ "company_name", "ticker_with_exchange", "latest_price", "currency", "price_change", "percent_change", "quote_link" ], "properties": { "currency": { "type": "string", "description": "Currency code for the price and price change, for example USD." }, "quote_link": { "type": "string", "description": "Google Finance quote page for this stock." }, "company_name": { "type": "string", "description": "Company or security name." }, "latest_price": { "type": "number", "description": "Price shown on Google Finance." }, "price_change": { "type": "number", "description": "Change from the previous close in the listed currency." }, "percent_change": { "type": "number", "description": "Percentage change from the previous close." }, "ticker_with_exchange": { "type": "string", "description": "Symbol and exchange, for example NVDA (NASDAQ)." } }, "additionalProperties": false }, "description": "Stocks in Google Finance display order." }, "as_of_time": { "type": [ "string", "null" ], "format": "date-time", "description": "Oldest quote update time for the returned stocks, with the exchange offset; null when no timestamp is shown.", "x-fous-developer": true } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
google.com/list_market_movers- Returns
- as_of_time, stocks (company name, ticker and exchange, latest price, currency, price change, percent change, quote link)
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method google.com/list_market_movers with the inputs above.
Ask your agent
- What are the top stock gainers today on Google Finance?
- Show me the biggest losers in the stock market right now, with their percent drop.
- Which stocks are the most actively traded today? Just give me the top 3.
- Pull today's leading decliners from Google Finance with price, change and currency.
- Give me the 4 best-performing stocks of the day with their latest price and percent gain.
See more
All Google methodsLists major stock market indexes on Google Finance with their current levels, changes and quote times. Quotes may be delayed, and indexes Google does not show are left out.
google.com/list_market_indexesGets the current quoted price and key figures for a stock, fund, index, or cryptocurrency on Google Finance, by name or ticker. Prices may be delayed, and figures Google does not show are null.
google.com/get_quoteGets a company's quarterly or annual income statement, balance sheet or cash flow lines from its Google Finance quote page, with exact reported amounts and year-over-year changes.
google.com/get_company_financialsLists Google Trends 'Trending now' searches for a country, time window and category, in Google's order. Each search comes with its volume, activity, related searches and news headlines.
trends.google.com/list_trending_searchesFinds a verified advertiser in the Google Ads Transparency Center by company name or website domain and returns its Google ads with dates, regions, previews and ad pages. Counts may be approximate; regions and media previews are read for the first 40 ads.
adstransparency.google.com/get_company_adsLists the current top Google News stories, overall or for one topic, in a chosen country and language edition.
news.google.com/list_top_storiesLists ranked Android apps or games from the Google Play top free, top paid or top grossing chart for a country and category.
play.google.com/list_top_chartsFinds Google Flights options for a route and date with prices, local times, stops and emissions. Round-trip searches list outbound choices with their displayed round-trip fares.
google.com/search_flights