Skip to content
noxstock
Guides

Valuation check

Answer valuation questions with snapshot plus valuation, without overcalling fundamentals.

Short answer: use /v2/snapshot, then /v2/valuation. This workflow works on Free keys.

Use this when

Use this for prompts like:

  • “Is AAPL expensive?”
  • “What multiples does this trade at?”
  • “How does today’s valuation compare with its own history?”
  • “Give me a quick valuation sanity check.”

Do not use this for

  • Explaining every driver behind the valuation. Call /v2/fundamentals only when the user asks “why” or wants statement depth.
  • Comparing multiple symbols. Use /v2/compare for 2–4 symbols.
  • Sector or peer medians. noxstock does not provide those today.
  • Investment advice or price targets.

Route plan

REST sequence:

# If the user gave a company/fund name:
GET /v2/search?query=<company-or-fund-name>

# If the ticker is user-entered or you are storing it:
GET /v2/coverage?symbol=<symbol>

# Valuation check:
GET /v2/snapshot?symbol=<symbol>
GET /v2/valuation?symbol=<symbol>

If /v2/valuation returns freshness: "unsupported" for an ETF, say valuation multiples are not available from noxstock for that asset type. Do not replace them with guessed ETF ratios.

MCP sequence

# Optional name/symbol checks:
noxstock_search({ "query": "<company-or-fund-name>" })
noxstock_coverage({ "symbol": "<symbol>" })

# Required valuation path:
noxstock_snapshot({ "symbol": "<symbol>" })
noxstock_valuation({ "symbol": "<symbol>" })

What to preserve in the answer

From /v2/snapshot:

  • freshness, as_of, market_status, currency, asset_type.
  • quote.price, quote.change_pct, performance.*_pct, range_52w.position_pct, and range_52w.drawdown_from_high_pct when present.
  • fundamentals_quick fields such as market_cap_usd, pe_ttm, ps_ttm, pb, peg_1y, ev_ebitda_ttm, fcf_yield_pct, and dividend_yield_pct when present.

From /v2/valuation:

  • market_cap_usd and enterprise_value_usd as whole U.S. dollars.
  • multiples.<metric>.value and multiples.<metric>.context.
  • valuation_context.anchor, position, percentile_5y, median_5y, and coverage_pct when available.
  • yields.*_pct as percentages, not decimals.
  • returns_on_capital.*_pct when present.
  • Any available: false, null, omitted, or unsupported state.

Answer pattern:

Answer: <expensive/cheap/mixed/not enough valuation context, based only on returned fields>

Key facts
- Price/context: <snapshot facts>
- Multiples: <valuation facts>
- Own-history context: <valuation_context or unavailable reason>

Freshness
- Snapshot: <freshness>, as_of <timestamp>, market_status <status>
- Valuation: <freshness>, as_of <timestamp>

Calls used
- GET /v2/snapshot
- GET /v2/valuation

Common mistakes

  • Calling /v2/fundamentals before checking /v2/valuation.
  • Calling /v2/compare for one symbol.
  • Treating _pct as decimals.
  • Dropping context availability. A multiple without 5-year context is weaker evidence.
  • Saying “undervalued/overvalued” as a recommendation instead of describing what the returned data shows.

Next