MarketBeat APImarketbeat.com ↗
Access MarketBeat stock data via API: analyst ratings, earnings, insider trades, short interest, options chains, financials, and more across 14 endpoints.
What is the MarketBeat API?
The MarketBeat API covers 14 endpoints for pulling structured stock market data including analyst forecasts, earnings estimates, insider transactions, institutional ownership, and financial statements. The get_stock_overview endpoint alone returns current price, day change, key stats, company description, and a company calendar in a single call. Ticker-based lookups accept an optional exchange parameter to disambiguate symbols listed on multiple venues.
curl -X GET 'https://api.parse.bot/scraper/060a9926-db20-4c1e-8dc7-26d52b79ee8e/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 marketbeat-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.marketbeat_stock_data_api import MarketBeat, Stock, StockNotFound
client = MarketBeat()
# Search for stocks by name
for stock in client.stocks.search(query="Apple"):
print(stock.ticker, stock.exchange, stock.name)
# Get a specific stock's overview
apple = client.stocks.get(ticker="AAPL")
# Navigate to analyst ratings sub-resource
for rating in apple.analyst_ratings.list():
print(rating.date, rating.buy, rating.sell, rating.hold, rating.total_ratings)
# Get forecast data
forecast = apple.forecast.get()
print(forecast.consensus_rating_breakdown, forecast.consensus_comparison)
# Get earnings estimates
for estimate in apple.earnings.list():
print(estimate.quarter, estimate.average_estimate, estimate.revenue_estimate)
# Get short interest
si = apple.short_interest.get()
print(si.summary)
for report in si.history:
print(report.report_date, report.days_to_cover, report.percentage_of_float_shorted)
# Get MarketRank
rank = apple.market_rank.get()
print(rank.percentile, rank.overall_score)
# Get recent headlines
for headline in apple.headlines.list():
print(headline.title, headline.source, headline.date)
Search for stock tickers by company name or symbol. Returns matching stocks with ticker, exchange, name, and URL path. Also returns related MarketBeat articles when available.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword such as a company name or ticker symbol (e.g. 'AAPL' or 'Apple'). |
{
"type": "object",
"fields": {
"items": "array of search results with ticker, exchange, name, and url"
},
"sample": {
"data": {
"items": [
{
"url": "/stocks/NASDAQ/AAPL/",
"name": "Apple Inc.",
"ticker": "AAPL",
"exchange": "NASDAQ"
}
]
},
"status": "success"
}
}About the MarketBeat API
Stock Data Coverage
The API centers on ticker-based lookups. Pass a ticker string — and optionally an exchange such as NYSE, NASDAQ, or BATS — to most endpoints. search_stocks accepts a free-text query and returns matching results with ticker, exchange, name, and url fields, making it a useful first step when you only have a company name. get_stock_overview returns current_price, day_change, key_stats, description, and a company_calendar for upcoming events.
Analyst and Sentiment Data
get_stock_forecast returns a consensus_rating_breakdown array showing rating counts over time alongside a consensus_comparison array that benchmarks the stock against its sector and the S&P 500. get_analyst_ratings gives a monthly time series with Sell, Hold, Buy, StrongBuy, and TotalRatings counts per period — useful for tracking sentiment drift. get_marketrank exposes MarketBeat's proprietary scoring system: an overall percentile, an overall_score, and a components object mapping category names to individual scores.
Ownership and Trade Activity
get_insider_trades returns records with transaction dates, insider names, buy/sell action, share counts, and prices. get_institutional_ownership lists top institutional holders and their positions. get_short_interest provides both a summary object of current stats and a history array of periodic short interest records. get_options_chain returns call and put records with strike prices, volumes, and related option details.
Financials and Metrics
get_financial_statements returns a statements object keyed by statement names — such as annual income statements, cash flow statements, and balance sheets — each mapping to arrays of row objects. get_earnings returns a history array with quarterly and annual records including Number of Estimates, Low Estimate, High Estimate, and revenue guidance. get_profitability_metrics returns a flat key-value object covering EPS, P/E Ratio, Net Margins, Return on Equity, and Debt-to-Equity, among others. get_competitors returns comparison sections categorized by profitability, sentiment, and financials.
The MarketBeat API is a managed, monitored endpoint for marketbeat.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when marketbeat.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 marketbeat.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?+
- Build an analyst sentiment tracker that monitors monthly Buy/Hold/Sell ratio changes via
get_analyst_ratings - Alert on unusual insider buying or selling activity using transaction data from
get_insider_trades - Compare a stock's MarketRank component scores across categories using
get_marketrankpercentile and score fields - Aggregate short interest history to identify short squeeze candidates via
get_short_interesthistory arrays - Pull annual income statements and balance sheets from
get_financial_statementsfor multi-year financial modeling - Screen for stocks by profitability metrics like Net Margins and Return on Equity using
get_profitability_metrics - Benchmark a company against sector peers by pulling profitability and sentiment comparison tables from
get_competitors
| 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 MarketBeat have an official developer API?+
What does `get_earnings` return, and does it include actual reported EPS values?+
history array of quarterly and annual records with fields for Number of Estimates, Low Estimate, High Estimate, and revenue guidance. Reported (actual) EPS values alongside estimates are part of the same records where MarketBeat surfaces them. The endpoint does not currently return real-time surprise flags or beat/miss labels as separate structured fields. You can fork the API on Parse and revise it to add those derived fields.Can I retrieve options data for a specific expiration date?+
get_options_chain returns available call and put records with strike prices, volumes, and option details, but the endpoint does not currently accept an expiration date filter — it returns the chain as MarketBeat presents it. You can fork the API on Parse and revise it to add expiration-date filtering logic.Does the API cover dividend history or dividend yield data?+
get_stock_overview includes key_stats which may surface yield figures, and get_profitability_metrics returns valuation metrics, but there is no structured dividend payment timeline endpoint. You can fork the API on Parse and revise it to add a dedicated dividend history endpoint.How fresh is the data returned by endpoints like `get_stock_overview` and `get_short_interest`?+
get_short_interest history intervals are constrained by that upstream cadence rather than intraday updates.