Stock Scores with Custom Weights

This API consolidates data from multiple financial and market sources to produce a set of scores for each stock. By drawing upon both traditional metrics (e.g., valuation ratios, revenue trends) and market-focused indicators (e.g., price momentum, analyst changes), the system delivers an at-a-glance overview that can help users quickly assess a stock's standing across various dimensions. The scores are designed to be used alongside deeper qualitative and quantitative research when evaluating potential investments.

HTTP Methods:

  • GET: Returns stock scores using default weights for all metrics.
  • POST: Allows custom weights to be specified via a JSON body. Missing component weights default to 0; at least one component must be weighted above 0.

Custom Weights (POST only):

You can customize the scoring by providing a weights object in the request body. Each weight is an

integer 0-100 that determines the influence of that metric on the overall score. Component metrics not specified
in the request default to 0, so a request that names a single component isolates it. The four family keys
(quality, growth, momentum, value) scale a whole family in the
total and default to 50 when omitted; they cannot be used on their own, and a body with no component

weight above 0, an unknown key, or a retired score is rejected with HTTP 400 naming the problem.

Example POST body:

{
  "weights": {
    "quality": 50,
    "growth": 50,
    "momentum": 65,
    "dtc": 100,
    "fcf_assets": 100
  }
}

Output Scores:

  • Quality: Gauges the financial stability and operational soundness of a company. This includes measures like the Altman Z-Score (for bankruptcy risk), Earnings Variability (consistency of profits), Return on Assets, and Free Cash Flow relative to Sales. A higher Quality score typically indicates stronger metrics relating to financial health and operational efficiency, but it should be considered alongside other factors.
  • Momentum: Measures recent stock price trends and market sentiment. It typically evaluates short-term vs. long-term moving averages (e.g., 50-day vs. 200-day), proximity to 52-week highs, analyst recommendation changes, and earnings surprises. A higher Momentum score can reflect a positive short-term trajectory, though past performance is not indicative of future results.
  • Growth: Examines the company's potential for expansion, including metrics like EBIT CAGR (compound annual growth rate), internal growth rates, and recent sales trends. A higher Growth score generally highlights more positive growth indicators, but these measures should be evaluated within the broader context of market conditions and overall risk tolerance.
  • Value: Focuses on the relationship between a company's fundamentals and its share price. It considers metrics such as Earnings Yield, Price-to-Earnings Ratios, Price-to-Sales Ratios, and other valuation factors (e.g., Enterprise Value/EBIT). A higher Value score generally reflects more favorable valuation metrics in comparison to peers, though it does not assure future performance.
  • Total: The Total score is not merely an average of the four sub-scores. Instead, it incorporates each category's data and compares them to relevant benchmarks, acting more like a percentile rank where 100 is the best. This provides a quick snapshot of where the stock stands relative to the universe of other stocks, based on Value, Quality, Momentum, and Growth characteristics combined.

Available Weight Metrics:

The following metrics can be customized via the weights parameter. They are grouped by score family:

Quality Metrics (quality family weight):

  • quality - Overall quality family weight (default: 50)
  • dtc - Days to Cover
  • fcf_assets - Free Cash Flow to Assets
  • f_score - Piotroski F-Score
  • gross_profit_to_assets - Gross Profit to Assets ratio
  • earnings_variability - Earnings Variability (consistency)
  • dtc_change - Days to Cover Change
  • net_debt_to_equity - Net Debt to Equity ratio
  • z_last - Altman Z-Score (bankruptcy risk)
  • margin_stability - Profit Margin Stability
  • sector_score - Sector-relative Score
  • short_interest_pc_ff - Short Interest Percentage of Free Float
  • fcf_sales - Free Cash Flow to Sales
  • roce - Return on Capital Employed
  • util - Utilization
  • roa - Return on Assets
  • volatility_vs_spy - Volatility vs S&P 500
  • short_score - Short Interest Score

Growth Metrics (growth family weight):

  • growth - Overall growth family weight (default: 50)
  • gross_profit_to_assets_5y_average - 5-Year Average Gross Profit to Assets
  • eps_12m_fwd_yoy_increase - EPS 12-Month Forward YoY Increase
  • internal_growth - Internal Growth Rate
  • cagr_ebit_5y - 5-Year EBIT CAGR
  • dividend_increase - Dividend Increase
  • sales_increase_1y - 1-Year Sales Increase
  • roe_x_earnings_retention - ROE x Earnings Retention
  • ebit_margin_increase_5y - 5-Year EBIT Margin Increase
  • roa_5y_average - 5-Year Average ROA
  • ebit_margin_increase - EBIT Margin Increase
  • roce_5y_average - 5-Year Average ROCE
  • croic_5y_average - 5-Year Average CROIC
  • sales_increase_5y - 5-Year Sales Increase

Momentum Metrics (momentum family weight):

  • momentum - Overall momentum family weight (default: 65)
  • dma_50_over_200 - 50-Day MA over 200-Day MA
  • eps_surprise - EPS Surprise
  • oim - Insider Score
  • analyst_oac_diff - Analyst Opinion vs Actual Difference
  • current_oac - Current Analyst Opinion
  • tp_diff - Target Price Difference
  • eps_momentum_90days - 90-Day EPS Momentum
  • dma_75_over_300 - 75-Day MA over 300-Day MA
  • relative_strength_91 - 91-Day Relative Strength
  • relative_strength_182 - 182-Day Relative Strength
  • relative_strength_365 - 365-Day Relative Strength
  • high_52w - Distance from 52-Week High
  • tp_change - Target Price Change
  • pe_change - P/E Ratio Change
  • analyst_rec_diff - Analyst Recommendation Difference
  • eps_momentum_30days - 30-Day EPS Momentum
  • price_eps_weighted_divergence - Price vs EPS Weighted Divergence

Value Metrics (value family weight):

  • value - Overall value family weight (default: 50)
  • earnings_yield - Earnings Yield
  • pe_last - Price to Earnings
  • price_book - Price to Book
  • price_fcf - Price to Free Cash Flow
  • price_sales - Price to Sales
  • ev_ebit - Enterprise Value to EBIT
  • ev_operating_cash_flow - Enterprise Value to Operating Cash Flow
  • ev_sales - Enterprise Value to Sales
  • dividend_score - Dividend Score
  • dividend_per_share_price_last - Dividend Yield (latest period)
  • dividend_per_share_price_prev - Dividend Yield (previous period)

Default Behavior:

When using GET, the API uses ORTEX's default weight configuration. When custom weights are provided via POST, any component not specified defaults to 0, effectively excluding it from the score calculation; a family key not specified keeps its default. A POST body must be of the form {"weights": {...}}.

Missing values:

Scores are computed on irregular dates and carried forward to every trading day. On trading days before a company's first computed score there is nothing to carry forward, and every score field is null. A score of 0.0 is always a genuine worst-rank value, never a placeholder.

Disclaimer: The Stock Score is not an investment recommendation or a guarantee of future

returns. It is purely a summary and comparison of selected metrics for informational purposes.

Try it out! You can test the API with the trial key TEST. Simply include it in your request headers; either here, or add the header "Ortex-Api-Key": "TEST" to your http request.

Trial key restrictions: A list of randomly selected rows will be returned

Get full access! Get a key at app.ortex.com/apis

Path Params
string
required

Exchange symbol (e.g. "nyse", "nasdaq"), MIC code (e.g. "xnys", "xnas") or two character ISO country code (e.g "us", "ca" for ALL country exchanges)

string
required

Ticker symbol

Query Params
date

Starting date for short interest data (defaults to one month ago). Format: YYYY-MM-DD

Body Params

Request body serializer for POST /stock_scores endpoint.

Allows custom weight configuration for stock score calculation.
Missing component weights default to 0; missing family weights keep their
standard value. At least one component must be weighted above 0.

weights
object

Dictionary of weight overrides. Keys must be valid metric names, values must be integers 0-100. Missing component weights default to 0. At least one component must be above 0; the family keys (quality, growth, momentum, value) scale a family and cannot be used alone.

Headers
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Responses

400

Invalid request parameters

403

Not authorized

404

Data not found

429

Rate limit exceeded

500

Internal server error

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json