TipRanks AI Stock Analysis — the 0-100 AI score for one or more stocks.
Six frontier models (OpenAI, Anthropic, Gemini, xAI, DeepSeek, Perplexity)
research each covered stock independently. Every model returns its own
0-100 score, rating (outperform / neutral / underperform), price target,
and a weighted factor breakdown across financial performance, technical
analysis, valuation, earnings call and corporate events.
Use for: "what's the AI score for NVDA", "AI rating on my watchlist",
"compare the AI scores of AAPL, MSFT and NVDA", "why do the models
disagree on Tesla".
Pass every symbol in one call — a multi-ticker call returns one compact row
per ticker, which is what a watchlist or ranking question needs. A single
ticker also returns every model's score with its factor breakdown plus the
bull and bear key points.
This is NOT the Smart Score (1-10, eight quantitative factors). It is a
separate system, and the two routinely disagree by design.
`ai_score` is the headline score and matches the AI Stock Analysis page;
`consensus` holds the cross-model average, the high and low scoring models,
and the split of rating labels. `upside_pct` is the model's price target
against the current price. `as_of` is when the report was generated —
reports regenerate on new earnings or a significant price move, so an older
date means nothing material has changed since.
Coverage is a subset of the stock universe and excludes ETFs. Symbols with
no report at all come back under `not_covered`; symbols that are covered but
lack a report from the requested `provider` come back separately under
`no_report_from_provider`, each listing the models that did score them — so
a missing provider is never reported as "this stock has no AI analysis".
Args:
tickers: Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT'), max 25.
provider: Optional single provider to report on. Omit for the
headline score that matches the website.
detail: 'consensus' (default) or 'full' to add each model's written
reasoning. Ignored on multi-ticker calls.
Returns JSON: {stocks: [{ticker, company, ai_score, rating,
headline_model, price, price_target, upside_pct, as_of, reflects,
consensus: {models, avg_score, score_high, score_low, ratings_split,
avg_price_target, avg_upside_pct, reports_dated}, providers: [...],
key_points: [...]}], not_covered: [...],
no_report_from_provider: [{ticker, covered_by}]}.
`consensus.reports_dated` appears only when the models did not all run on
the same date; `as_of` is always the headline report's own date.