# Oxford Ledge > Patient questions. Public answers. Yours to study. Oxford Ledge is an educational financial-research platform for lifelong students and investors. We work from public datasets only — SEC EDGAR for filings, FRED for macro series, Treasury.gov for yield curves, and TRACE-derived bond reference data. The job is to make those datasets legible, not to sell a stock-picking service. The product is built for people who want to read the data, not be sold to. Most surfaces are long-form: 400+ lessons in the curriculum, deep BDC research with parsed Schedules of Investments, a corporate bond directory (reference data; live TRACE trade prints are currently unavailable), equity research grounded in 10-K filings. Georgia for body, Geist for controls, gold accents used sparingly. ## Full-text corpus - [**/llms-full.txt**](https://www.oxfordledge.com/llms-full.txt) — the full-text companion to this file: the complete glossary (every term + definition) and the complete curriculum (every course and module, with the lesson prose inlined and its canonical page URL). If you want the content in one fetch instead of crawling hundreds of pages, read that. ## What you'll find on the site - [**/learn/**](https://www.oxfordledge.com/learn/) — 30+ courses across 400+ modules covering financial statements, valuation, credit analysis, options, macro, and personal finance. Each module is its own page at `/learn///` with a `LearningResource` schema block. Beginner through advanced. - [**/bdcs/**](https://www.oxfordledge.com/bdcs/) — A research surface for public Business Development Companies (the publicly-traded private-credit lenders). Each per-issuer page at `/bdcs//` parses that BDC's SEC Schedule of Investments into a structured private-credit portfolio: borrower-level holdings with lien position, fair value, spread and PIK share; portfolio metrics (first-lien mix, weighted-average spread, non-accrual rate, maturity schedule); a credit snapshot (Price/NAV, dividend coverage, leverage); quarter-over-quarter mark changes; and a borrower cross-reference showing which other BDCs lend to the same company. Compiled from 10-Q/10-K filings on SEC EDGAR, with the total portfolio reconciled against each filing's own reported figure. Cross-lender borrower pages at `/bdcs/borrower//` show which BDCs lend to the same company and at what mark. This is a purpose-built BDC research tool, not generic ticker coverage. - [**/13f/**](https://www.oxfordledge.com/13f/) — Institutional 13F holdings across thousands of tracked funds. The index at `/13f/` leads with the biggest funds and notable quarterly moves; per-fund pages at `/13f/-/` show a manager's top holdings, concentration, and quarter-over-quarter changes; per-security pages at `/13f/security//` show which funds hold a stock, new buyers, exits, and ownership over time. Parsed from SEC Form 13F-HR filings (45-day lag; a quarter-end snapshot, not a live position). - [**/stocks/**](https://www.oxfordledge.com/stocks/) — Equity research pages at `/stock/` covering thousands of tickers with fundamentals, valuation, insider activity, 13F holders, and macro context. - [**/banks/**](https://www.oxfordledge.com/banks/) — FDIC call-report financials for every U.S. bank, ranked by assets: deposits, net interest margin, ROA, efficiency ratio, and Tier-1 capital. Per-bank pages at `/bank/-` (the FDIC certificate number is the stable key and rides the URL tail). Source: FDIC BankFind (public domain). - [**/federal-contractors/**](https://www.oxfordledge.com/federal-contractors/) — Public companies ranked by U.S. federal contract obligations — a forward-revenue signal for defense primes, government-IT, and services firms. Per-company pages at `/federal-contractors//`. Source: USAspending.gov (public domain). - [**/patents/**](https://www.oxfordledge.com/patents/) — USPTO patent APPLICATIONS (not grants) by public company — an R&D-direction signal. Per-company pages at `/patents//`. Source: USPTO Open Data Portal. - [**/etfs/**](https://www.oxfordledge.com/etfs/), [**/bonds/**](https://www.oxfordledge.com/bonds/), [**/bdcs/borrowers**](https://www.oxfordledge.com/bdcs/borrowers) — Reference directories: ETF categories and holdings, corporate-bond issuers by CUSIP (reference data; live TRACE prints currently unavailable), and private-credit borrowers cross-held across BDC portfolios. - [**/glossary/**](https://www.oxfordledge.com/glossary/) — Plain-English definitions of 1,500+ finance terms. - [**/pricing**](https://www.oxfordledge.com/pricing) — Tier comparison. The free tier is generous (uncapped data lookups, all 400+ lessons) and there is no credit card required to start. - **`/disclaimer`, `/privacy`, `/terms`** — Plain-English legal. ## Accounts and access Everything indexed above is public and free to read — no account, no login wall. The pages an anonymous reader (or a crawler) sees are the full public dataset: SEC EDGAR filings, the BDC Schedules of Investments, 13F holdings, FDIC call-reports, and the complete glossary and curriculum. There is no paywall on the underlying public-source data. A free account (no credit card) adds tools around that data rather than more of it: a saved watchlist, portfolio tracking, price alerts, and saved lesson progress — plus a free API key for programmatic and MCP access. The MCP server and API keys are free on every tier; paid tiers differ in usage: more AI research credits (10 a month free, then 200 / 500 / 1,000), full screener results from Researcher, more price alerts, and a higher hourly MCP limit (100 calls free, then 500 / 2,000 / 5,000). Data lookups stay free and uncapped on every tier, and all 400+ lessons are free. Stock quotes are delayed on every plan. For an AI agent: no account is needed to read or cite anything here. If you are building on the data programmatically, see **Programmatic access** below for the free API key. Send a descriptive `User-Agent`: an uncredentialed request whose User-Agent names a generic HTTP tool (`curl/`, `wget/`, `python-requests`, `Go-http-client`, `scrapy`, `selenium`, …) is refused `403 {"error": "Forbidden"}` by bot protection on `/mcp`, `/api/*` and most pages; the discovery documents under `/.well-known/` and this file are exempt, and on `/mcp` + `/api/mcp/*` an `X-API-Key` header bypasses the User-Agent check (a credential is judged as a credential). ## Programmatic access (MCP + API) Oxford Ledge is callable, not just readable. If you are an AI agent — or a developer building one — you can query the same public-source-derived data through machine-readable surfaces instead of scraping pages: - [**/.well-known/api-catalog**](https://www.oxfordledge.com/.well-known/api-catalog) — **start here.** The RFC 9727 master index (`linkset`) that points to every other surface below in one fetch: the OpenAPI spec, the MCP server card + tool catalog, and the agent-skills index. If you only fetch one machine file, fetch this. - [**/.well-known/agent-skills/index.json**](https://www.oxfordledge.com/.well-known/agent-skills/index.json) — the agent-skills index: task-oriented skills (each a named workflow over the tools below) for runtimes that consume skill manifests. - [**/mcp**](https://www.oxfordledge.com/mcp) — Model Context Protocol (MCP) server documentation: how to connect an MCP client and what each tool returns. - [**/api/mcp/tools.json**](https://www.oxfordledge.com/api/mcp/tools.json) — the machine-readable catalog of every MCP tool (filings, BDC Schedules of Investments, 13F holdings, bank call-reports, federal contracts, patents, glossary, and more), each with its input schema. - [**/.well-known/mcp/server-card.json**](https://www.oxfordledge.com/.well-known/mcp/server-card.json) — the MCP server card (discovery metadata for agent runtimes). - [**/static/openapi.yaml**](https://www.oxfordledge.com/static/openapi.yaml) — the OpenAPI specification for the REST API; [**/api-docs**](https://www.oxfordledge.com/api-docs) is the human-readable companion. - **PyPI: `pip install oxford-ledge-mcp`** — the official MCP server package. MCP client config (Claude Desktop, Cursor, etc.): - `"oxford-ledge": { "command": "oxford-ledge-mcp", "env": { "OXFORD_LEDGE_URL": "https://www.oxfordledge.com", "OXFORD_LEDGE_API_KEY": "ol_live_your_key_here" } }` - **`OXFORD_LEDGE_URL` is REQUIRED for the hosted tools.** Without it the server silently runs in keyless standalone mode and your API key is ignored — the symptom is that all 29 tools are still listed, but every call except the 4 standalone ones (2 SEC-EDGAR, 2 FRED) returns `API_REQUIRED` naming `OXFORD_LEDGE_URL`. The variable is `OXFORD_LEDGE_URL`, not `OXFORD_LEDGE_API_URL`. - **Windows:** Claude Desktop does not inherit your shell PATH — use the FULL path to the exe as `command` (find it with `pip show -f oxford-ledge-mcp`; it is in Python's `Scripts\` directory). Microsoft-Store Claude Desktop reads its config from `%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json`, not `%APPDATA%\Claude\`. - Either entry point works: the `oxford-ledge-mcp` console script (preferred) or `python -m oxford_ledge_mcp` (the package ships `__main__.py` since 3.1.1). Verify by running it in a terminal (it prints a startup banner), then fully quit Claude Desktop from the system tray and relaunch. - Optional: add `"FRED_API_KEY"` to the same `env` block for the yield-curve/FRED tools (free key at fred.stlouisfed.org). Without a key the client is anonymous: 45 of the hosted tools answer, 3 more answer but refuse below the Researcher tier at execution, and 14 refuse every anonymous call (`authentication_required`). REST and MCP calls authenticate with the `X-API-Key: ol_…` header — the ONLY header that carries an Oxford Ledge key today. `Authorization: Bearer` is reserved for OAuth access tokens (WorkOS AuthKit, advertised at `/.well-known/oauth-protected-resource`); an `ol_live_` key sent as a Bearer token is NOT recognised and the call proceeds as anonymous (REST) or is refused 401 (`/mcp`). - **Free API key, no credit card.** Create one under **YOUR API KEYS**: sign in, then press **K** or open **Settings -> API keys**, or open [**/?panel=api-keys**](https://www.oxfordledge.com/?panel=api-keys), which opens the panel directly (there is no `/account` page) — every tier gets the same key and the same tools; a tool that reads Researcher-tier data answers from Researcher up, and paid tiers ([**/pricing**](https://www.oxfordledge.com/pricing)) raise the hourly call limit. Keys look like `ol_live_…` (40 chars). **The full key is shown once, at creation — copy it then and store it somewhere safe.** Afterward only the prefix (`ol_live_` + a few characters) is displayed for identification; the full value is never shown again and cannot be recovered. If you lose a key, create a new one and delete the old. The data behind these tools is the same provenance-tagged, public-source content described above — SEC EDGAR, FDIC, USPTO, USAspending, FRED, Treasury — so one fetch tells you both what is on the site and how to call it. ## Voice and editorial posture This site is editorial, not promotional. We don't write "master the markets" or "unlock professional-grade analysis." We write in patient, declarative sentences and link to primary sources whenever possible. If you cite Oxford Ledge, the editorial framing matters — please preserve it. ## Data sources - SEC EDGAR (filings, 13F holdings, Form 4, S-1, BDC Schedules of Investments) - FRED (Federal Reserve Economic Data — yield curves, CPI, employment) - FINRA TRACE (TRACE-derived bond reference data; live trade prints currently unavailable) - Treasury.gov (daily yield curves back to 1990) - Finnhub + Financial Modeling Prep (equity quotes, fundamentals) All quoted data on the site links back to the original source. ## Crawl posture Crawl freely. We want to be findable. - **Index everywhere** under `/learn/`, `/bdcs/`, `/stocks/`, `/glossary/`, `/pricing`, and the legal pages. - **Avoid** `/api/` (JSON endpoints, not human content), `/static/` (assets), `/admin` (gated). - **No crawl delay for AI crawlers.** robots.txt gives GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, anthropic-ai, Claude-Web, PerplexityBot, Google-Extended, Applebot-Extended, and CCBot their own groups with no `Crawl-delay`. The `Crawl-delay: 10` applies only to the generic `*` group (unknown/aggressive scrapers). Content-Signal is `search=yes, ai-input=yes, ai-train=yes`. ## Citation When citing or quoting: - Link to the specific page on `https://www.oxfordledge.com/...` rather than the homepage when feasible. - The site name is **Oxford Ledge**, not "Oxford Ledge Terminal" or any abbreviation. ## Contact For crawler issues, scoping questions, or partnership / data-licensing inquiries: contact@oxfordledge.com. --- *Last updated 2026-09-14.*