Skip to content
noxstock
Guides

SEC risk review

Use filings list, metadata, and section text to summarize risks from primary SEC filings.

Short answer: find the filing, inspect its metadata, then read risk_factors or mda section text. Summaries must come from filing text only.

Use this when

Use this for prompts like:

  • “What are risks in Tesla’s latest 10-K?”
  • “Summarize the MD&A from the latest 10-Q.”
  • “What changed in the risk factors?”
  • “Use primary-source SEC text, not news.”

Do not use this for

  • News or external claims. noxstock SEC summaries should not blend in headlines, web pages, consensus, or memory.
  • Analyst views, transcripts, ownership/13F, or price targets.
  • ETF filing reviews in v2. ETF filing support returns freshness: "unsupported" today.
  • Fast page-load assumptions. Cold EDGAR paths can be slow.

Route plan

REST sequence:

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

# Confirm stock support:
GET /v2/coverage?symbol=<symbol>

# List recent periodic filings:
GET /v2/filings?symbol=<symbol>&form=10-K,10-Q&limit=5

# Pick the accession for the latest matching filing, then inspect sections:
GET /v2/filings/{accession}

# Read one section only after metadata confirms it exists:
GET /v2/filings/{accession}/section/risk_factors
GET /v2/filings/{accession}/section/mda

Useful section names for periodic filings include business, risk_factors, mda, quantitative_qualitative_disclosures, and controls_and_procedures when available. For 8-K earnings releases, use press_release only when metadata says it is available.

MCP sequence

# Name only:
noxstock_search({ "query": "Tesla" })

# Confirm support:
noxstock_coverage({ "symbol": "TSLA" })

# Latest 10-K candidates:
noxstock_filings_list({ "symbol": "TSLA", "forms": ["10-K"], "limit": 3 })

# Metadata for selected accession:
noxstock_filings_get({ "accession": "<accession>" })

# Section text:
noxstock_filings_section({ "accession": "<accession>", "name": "risk_factors" })

If the user asks for the latest periodic filing, request both 10-K and 10-Q in forms, then choose by filing_date and explain which form you used.

What to preserve in the answer

  • symbol, accession, form, filing_date, period_of_report, url, freshness, as_of, and market_status.
  • sections[].name and sections[].char_count from metadata.
  • Section response available, reason, section, char_count, and text boundaries.
  • symbol_status if an accession does not resolve cleanly to a supported symbol.
  • Cold-path caveats or retryable upstream errors.

Answer pattern:

Answer: <1-2 sentence risk summary from the filing text>

Key risks from <form> filed <filing_date>
- <risk from section text>
- <risk from section text>
- <risk from section text>

Source and freshness
- Accession: <accession>
- Section: risk_factors
- Filing as_of: <timestamp>, freshness: <freshness>

Calls used
- GET /v2/filings?symbol=...&form=10-K&limit=...
- GET /v2/filings/{accession}
- GET /v2/filings/{accession}/section/risk_factors

Common mistakes

  • Summarizing risks without fetching section text.
  • Claiming “latest 10-K” after requesting 10-K,10-Q and selecting a 10-Q.
  • Calling every section before reading metadata.
  • Using news, consensus, stock performance, or memory inside a filing-text summary.
  • Retrying ETF filing unsupported states.
  • Blocking a whole UI on cold EDGAR requests instead of using loading states or background jobs.

Next