GuruFocus APIgurufocus.com ↗
Search stocks, retrieve price and market cap summaries, and track the latest buy/sell picks from investment gurus via the GuruFocus API.
What is the GuruFocus API?
The GuruFocus API provides 3 endpoints covering stock search, individual stock summaries, and real-time guru investment picks. Use search_stocks to find equities and guru entities across global exchanges by ticker or company name, get_stock_summary to pull price, market cap, volume, and currency for a specific ticker, and get_guru_latest_picks to retrieve tracked gurus' most recent new buys, additions, reductions, and sold-out positions.
curl -X GET 'https://api.parse.bot/scraper/8f896012-f0f1-429a-afe6-1f493f91db26/search_stocks?query=AAPL' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace gurufocus-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.gurufocus_financial_api import GuruFocus, Stock, SearchResult, GuruPick
client = GuruFocus()
# Get a stock by ticker symbol
apple = client.stocks.get(symbol="AAPL")
print(apple.symbol, apple.company, apple.price, apple.mktcap)
# Search for stocks and gurus matching a query
for result in client.stocks.search(query="Microsoft"):
print(result.type, result.symbol, result.company, result.price)
# List latest guru investment picks
for pick in client.gurupicks.list():
print(pick.guru_name, pick.firm, pick.new_buy, pick.add, pick.reduce)
Full-text search across stocks and guru/ETF entities by ticker symbol or company name. Returns all matching results across multiple global exchanges. Each result is flattened with a type field ('stock' or 'guru') alongside the entity's fields (symbol, company, price, exchange, mktcap, volume for stocks; GuruName, firm, fundticker for gurus).
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Stock ticker or company name to search for (e.g. 'AAPL', 'Microsoft'). |
{
"type": "object",
"fields": {
"data": "array of flattened search result objects with type field plus entity-specific fields"
},
"sample": {
"data": {
"data": [
{
"type": "stock",
"price": 290.55,
"mktcap": 4267411.286,
"symbol": "AAPL",
"volume": 47063383,
"company": "Apple Inc",
"stockid": "US01WD",
"currency": "USD",
"exchange": "NAS"
},
{
"id": 25356,
"firm": "Direxion Daily AAPL Bull 2X Shares",
"type": "guru",
"GuruName": "Direxion Daily AAPL Bull 2X Shares",
"fundticker": "AAPU"
}
]
},
"status": "success"
}
}About the GuruFocus API
Stock Search and Lookup
The search_stocks endpoint accepts a query string — either a ticker symbol like AAPL or a company name like Microsoft — and returns all matching entities across multiple global exchanges. Each result includes a type field that distinguishes between stock and guru or ETF entities, alongside fields such as symbol, company, price, and exchange. This is useful when you need to resolve a partial name to a canonical ticker before fetching deeper data.
Stock Summary Data
get_stock_summary takes a single case-insensitive ticker parameter and returns eight structured fields: price, mktcap (in millions), symbol, volume, company, stockid, currency, and exchange. If no exact ticker match exists, the endpoint returns an input_not_found signal rather than a partial result, so callers can handle missing tickers cleanly without parsing ambiguous responses.
Guru Investment Picks
get_guru_latest_picks requires no input parameters and returns the current global list of tracked guru activity. Each record in the picks array includes the guru's name, affiliated firm, the date of the activity, and four position-change fields: New Buy, Add, Reduce, and Sold Out. This gives a snapshot of what tracked investors are entering, building, trimming, or exiting across their portfolios at the time of the request.
The GuruFocus API is a managed, monitored endpoint for gurufocus.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gurufocus.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official gurufocus.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Screen for stocks a specific guru recently added to their portfolio using
get_guru_latest_picksFirm and Add fields - Resolve a partial company name to an exchange-listed ticker symbol with
search_stocksbefore further analysis - Track market cap and trading volume for a watchlist of tickers using repeated
get_stock_summarycalls - Identify stocks multiple gurus are simultaneously exiting by aggregating
Sold Outentries across the picks list - Build a currency-aware stock tracker by consuming the
currencyandexchangefields fromget_stock_summary - Detect new institutional conviction signals by monitoring the
New Buyfield inget_guru_latest_picks - Distinguish ETF entities from individual equities in search results using the
typefield fromsearch_stocks
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does GuruFocus have an official developer API?+
What does `get_guru_latest_picks` return, and can I filter by a specific guru?+
picks array client-side by the Guru Name field.Does the API expose historical stock prices or time-series data?+
get_stock_summary, and current guru pick activity via get_guru_latest_picks. Historical price series and financial statement history are not included. You can fork the API on Parse and revise it to add the missing endpoint.Does `get_stock_summary` cover stocks on non-US exchanges?+
exchange and currency fields in the response reflect the stock's listed exchange, and search_stocks explicitly returns results across multiple global exchanges. Coverage depends on which tickers GuruFocus tracks, so tickers on smaller or regional exchanges may not return an exact match.