---
title: "Api Ol Credit Conditions"
method: GET
path: "/api/signals/ol-credit-conditions"
---

# Api Ol Credit Conditions

`GET /api/signals/ol-credit-conditions`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/signals/ol-credit-conditions`
- Auth: none declared

The OL Signals credit-conditions aggregate — the four OL-owned indices
(BDC credit spread, private-credit stress, insider sentiment, institutional
positioning) with per-index provenance / as_of / caveat preserved.

Flag-gated: returns 404 while OL_SIGNALS_LIVE is off (the default) so the
surface is dark and indistinguishable from an unregistered path. When on,
returns pg_get_ol_signals() — always a dict, each slot honest about its own
emptiness.

## Response `200`

Successful Response

- OLSignalsResponse: `GET /api/signals/ol-credit-conditions` — the OL Signals aggregate. Wire contract for the Credit-conditions panel. REQUIRED fields are exactly the keys `pg_get_ol_signals()` always returns; the panel dereferences each without a null-check, so a drift here is the 2026-04-26 NPE incident class. `available` lets the panel distinguish "no signals resolved" ([]) from a bare null.
  - `signals` OLSignalsBundle, required: The four signal slots, keyed by stable slot name (pg_get_ol_signals order). Every slot is Optional — an unavailable component is `null`, NEVER a fabricated placeholder number (the aggregator preserves each component's honest emptiness).
    - `bdc_credit_spread` OLBdcCreditSpreadSignal: OL BDC Credit Spread Index component (pg_get_bdc_credit_spread_index). A fair-value-weighted PRIVATE-credit spread from BDC Schedule-of-Investments filings. NOT the ICE BofA HY OAS or any public bond index.
      - `provenance` string, required: Source-of-data stamp (SEC EDGAR BDC SoI).
      - `caveat` string, required: Own-construct honesty caveat; panel renders it verbatim.
      - `as_of` object, required: Filing-period range {earliest, latest} the index covers.
      - `headline_bps` number, nullable: FV-weighted CASH spread, bps (excludes any PIK leg).
      - `senior_secured_bps` number, nullable: Senior-Secured sub-index, bps.
      - `subordinated_bps` number, nullable: Subordinated sub-index, bps.
      - `subordinated_minus_senior_gap_bps` number, nullable: Subordination-premium gap, bps.
      - `coverage` object, nullable: n_bdcs / n_positions / total_fair_value.
      - `non_accrual_excluded` integer, nullable: Positions dropped for confirmed non-accrual (companion stress floor).
    - `private_credit_stress` OLPrivateCreditStressSignal: OL Private-Credit Stress Index component (pg_get_bdc_stress_index). The fair-value share of BDC loan books positively flagged on non-accrual. DETECTION-LIMITED: a FLOOR bounded by how much of the book carries a determination (see `detection`).
      - `provenance` string, required: Source-of-data stamp (SEC EDGAR BDC SoI).
      - `caveat` string, required: Own-construct + detection-floor honesty caveat.
      - `as_of` object, required: Filing-period range {earliest, latest} the index covers.
      - `detection` object, required: Determination coverage {coverage, positions_with_determination, positions_total, detection_limited}; the rate is a floor bounded by this.
      - `non_accrual_rate_pct` number, nullable: FV-weighted non-accrual rate, percent (a floor).
      - `non_accrual_positions` integer, nullable: Count of confirmed non-accrual positions.
      - `non_accrual_fair_value` number, nullable: Fair value of confirmed non-accrual positions.
      - `senior_secured_na_pct` number, nullable: Senior-Secured non-accrual rate, percent.
      - `subordinated_na_pct` number, nullable: Subordinated non-accrual rate, percent.
      - `coverage` object, nullable: n_bdcs / n_positions / total_fair_value.
    - `insider_sentiment` OLInsiderSentimentSignal: OL Insider Sentiment component (pg_get_insider_sentiment). A dollar-weighted open-market insider buy/sell ratio from Form 4 filings; the ratio is over the PRICED subset only (see coverage.value_coverage).
      - `provenance` string, required: Source-of-data stamp (SEC EDGAR Form 4).
      - `caveat` string, required: Own-construct + priced-subset honesty caveat.
      - `as_of` object, required: Transaction-date range {earliest, latest} the ratio covers.
      - `buy_ratio` number, nullable: buy$ / (buy$ + sell$), 0..1; None when no priced denom.
      - `buy_dollars` number, nullable: Open-market purchase dollars in window.
      - `sell_dollars` number, nullable: Open-market sale dollars in window.
      - `n_buy_clusters` integer, nullable: Issuers with >=2 distinct insiders buying.
      - `window_days` integer, nullable: Trailing window in days.
      - `coverage` object, nullable: n_transactions / n_issuers / value_coverage.
    - `institutional_positioning` OLInstitutionalPositioningSignal: OL Institutional Positioning component (pg_get_institutional_positioning). A quarter-over-quarter 13F aggregate net-flow / breadth / crowding signal over the two most recent MATURE quarters; read alongside coverage.n_tickers_common (like-for-like overlap).
      - `provenance` string, required: Source-of-data stamp (SEC EDGAR Form 13F).
      - `caveat` string, required: Own-construct + universe-churn honesty caveat.
      - `as_of` object, required: Quarter range {from_quarter, to_quarter} the net-flow spans.
      - `net_flow_pct` number, nullable: Aggregate 13F value change, percent.
      - `breadth_tickers` integer, nullable: Tickers with > breadth_min_holders holders.
      - `median_holders` number, nullable: Median holders-per-ticker (crowding proxy).
      - `from_quarter` string, nullable: Prior mature quarter label.
      - `to_quarter` string, nullable: Newer mature quarter label.
      - `coverage` object, nullable: n_tickers_to / n_tickers_from / n_tickers_common.
  - `available` string[], required: Slot keys that resolved to a non-null component.
  - `coverage` object, required: n_signals_total / n_signals_available.
  - `provenance` string, required: Aggregate provenance stamp (OL-derived, first-party).
  - `caveat` string, required: Aggregate honesty caveat; panel renders it verbatim.
  - `as_of` object, nullable: Panel-level {earliest, latest} span over the AVAILABLE components; null when any available component has no readable date.

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
