---
title: "Content List"
method: GET
path: "/api/v1/market_intelligence/content/"
tags: ["Market Intelligence"]
---

# Content List

`GET /api/v1/market_intelligence/content/`

The ORTEX Market Intelligence API delivers data-driven financial content generated from ORTEX's market datasets — short interest, cost to borrow, utilization, options flow, ORTEX Alpha signals, and more.

Content types (`content_type`):

*   **pulse** — Flash headlines when a data event crosses a threshold. Sub-type in `pulse_type`: `short_interest`, `analyst`, `options`, `institutional`, `ctb`, `utilization`, `signal`, `convergence`.
*   **earnings\_preview** — Short-form analytical brief 2–3 trading days ahead of earnings.
*   **trader\_note** — Weekly long-form deep dive per covered stock.
*   **weekly\_digest** — Weekly synthesis of cross-stock themes, sector trends, and convergence alerts. Sub-type in `theme`: `week_ahead`, `overall`, `short_interest`, `analyst`, `options`, `convergence`.
*   **convergence\_report** — Auto-triggered when 3+ distinct data events align on one ticker.
*   **market\_commentary** — Cross-stock market-wide articles published on a 4-hour cadence (8h for money\_flow). Sub-type in `theme`: `general`, `short_interest`, `analyst`, `events`, `insider`, `options`, `money_flow`.

### Identifying content by subject

The simplest way to pull subject-matter content across content types is the `?topics=` filter — e.g. `?topics=short_interest` returns SI pulses, the SI weekly digest, the SI commentary, and any long-form row grounded in SI data. Closed vocabulary: `short_interest`, `cost_to_borrow`, `utilization`, `options`, `analyst`, `institutional`, `insider`, `signals`, `earnings`, `money_flow`, `convergence`, `general`. Comma-separate for OR semantics.

### Looking up content by ticker

The `?ticker=` filter searches both the row's primary tagged ticker AND any body-mentioned tickers (via `related_tradingitems`) — so `?ticker=NYSE:F` returns any digest, trader note, or commentary that references Ford on NYSE. Two formats are accepted:

*   **Colon-separated:** `?ticker=NYSE:F`. The segment before the colon can be an exchange symbol (`NYSE`), a MIC code (`XNYS`), or an ISO 3166-1 alpha-2 country code (`US`) — same resolution as every other v1 stock endpoint.
*   **Legacy:** `?ticker=F&exchange=NYSE`. Equivalent to the colon form.

### Identifiers per row

Pass `?include=identifiers` to receive a list of `{exchange, ticker, mic, isin}` dicts per row covering both the primary tagged ticker and every body-mentioned ticker. Always present on the detail endpoint; opt-in on list (one extra ISIN query per row).

### Data sources & methodology

Each metric is built on a public-knowledge input category and an ORTEX modelling layer on top. The inputs aren't secret; the modelling is what's proprietary.

*   **Short interest** — ORTEX Proprietary Short Interest.
*   **Cost to borrow & utilization** — aggregated from securities-lending market feeds (prime-broker and agent-lender data) and normalised across counterparties. Raw lending data is fragmented; the aggregation + normalisation is the proprietary layer.
*   **Options flow** — US options data, classified by an ORTEX buy/sell-pressure model.
*   **ORTEX Alpha signals** — quantitative signals built on top of all of the above plus exchange price/volume feeds. Inputs are listed in this document; signal construction (weights, thresholds, lookbacks) is the proprietary layer.
*   **Analyst & institutional** — sourced from established licensed data vendors.

Every response includes a **provenance** section detailing when the content was generated, which ORTEX data sources contributed (`data_sources` — see the "Data sources & methodology" block above for what each slug means), and the prompt/model version — so you can always trace an article back to the underlying data.

All API subscribers — retail and enterprise — receive every article with its full body. The `is_premium` flag is surfaced for reference only; API consumers are never rate-limited on content, only on request volume.

## Query parameters

- `content_type` 'convergence_report' | 'earnings_preview' | 'market_commentary' | 'pulse' | 'trader_note' | 'weekly_digest'
- `exchange` string
- `include` string
- `page` integer
- `page_size` integer
- `pulse_type` 'analyst' | 'convergence' | 'ctb' | 'institutional' | 'options' | 'short_interest' | 'signal' | 'utilization'
- `q` string
- `severity` 'critical' | 'high' | 'low' | 'medium'
- `theme` 'analyst' | 'convergence' | 'events' | 'general' | 'insider' | 'money_flow' | 'options' | 'overall' | 'short_interest' | 'week_ahead'
- `ticker` string
- `topics` 'analyst' | 'convergence' | 'cost_to_borrow' | 'earnings' | 'general' | 'insider' | 'institutional' | 'money_flow' | 'options' | 'short_interest' | 'signals' | 'utilization'

## Response `200`

- PaginatedMIContentCustomerListList
  - `paginationLinks` object
  - `length` integer, required
  - `rows` MIContentCustomerList[], required
    - `id` integer, required
    - `contentType` 'pulse' | 'earnings_preview' | 'trader_note' | 'weekly_digest' | 'convergence_report' | 'market_commentary' — * `pulse` - Stock Pulse * `earnings_preview` - Earnings Preview * `trader_note` - Sales Trader Note * `weekly_digest` - Weekly Digest * `convergence_report` - Convergence Report * `market_commentary` - Market Commentary
    - `ticker` string, nullable, required
    - `exchange` string, nullable, required
    - `publishedAt` string, date-time, nullable
    - `topics` string[], required — Closed-vocabulary subject-matter tags for this row. Lets callers filter "anything SI-flavoured" with one query (``?topics=short_interest``) instead of enumerating ``content_type=pulse&pulse_type=short_interest`` + ``content_type=weekly_digest&theme=short_interest`` + ``content_type=market_commentary&theme=short_interest`` separately. See ``compute_topics`` and ``Topic`` in ``market_intelligence.constants`` for the resolution rules and the closed vocabulary. Derived at request time from existing discriminators — no schema change required. Empty list (rather than null) when no topic resolves, so callers always get a JSON array.

---

[API](https://skmtc.dev/ortex/apis/ortex-apis.md) · [All operations](https://skmtc.dev/ortex/apis/ortex-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ortex/ortex-apis/revisions/2629fc613cdc/schema)
