Free Credit Market Data API

Three US credit market datasets in one JSON API: the New York Fed's Corporate Bond Market Distress Index (weekly since 2005), the Treasury's HQM corporate bond yield curve (monthly since 1984) and credit default swap notional and trading volumes from the CFTC Weekly Swaps Report (weekly since 2012). Full history in every response, no API key, CORS enabled.

  • No API key
  • 3 official US sources
  • Full history
  • Weekly & monthly

Personal, non-commercial use only. Redistribution of the data is not allowed. See the Terms of Service.

Quick start

One request, no key. Get the latest week of the Corporate Bond Market Distress Index:

curl --compressed "https://api.quotelinks.com/v1/credit/cmdi/latest"
Response
{"dataset":"cmdi","title":"Corporate Bond Market Distress Index",
 "source":"Federal Reserve Bank of New York","source_url":"https://www.newyorkfed.org/research/policy/cmdi",
 "credit":"Federal Reserve Bank of New York, Corporate Bond Market Distress Index Report",
 "frequency":"weekly","units":"index, 0 (no distress) to 1 (max distress); percentiles = …",
 "release":"monthly, last Wednesday ~10:00 ET (weekly observations, weeks ending Friday)",
 "disclaimer":"The Corporate Bond Market Distress Index is not an official estimate of …",
 "count":1,"as_of":"2026-10-23","updated":"2026-11-11T08:49:50Z",
 "data":{"date":"2026-10-23","market":0.25,"ig":0.25,"hy":0.16,
   "percentiles":{"p5":0.09,"p10":0.1,"p25":0.14,"p50":0.2,"p75":0.31,"p90":0.47,"p95":0.58,"p99":0.76},
   "recession":false}}

Every response starts with the same block: dataset, title, source, source_url, credit (the attribution line to show with the data), frequency, units, as_of (the newest observation) and updated (when the API was rebuilt, UTC). The values are in data, oldest first.

Try it

Build a request, press Run, and see the live JSON from api.quotelinks.com.

https://api.quotelinks.com/v1/credit/cmdi/latest

Endpoints

Base URL: https://api.quotelinks.com/v1/credit/. All endpoints are GET and take no query parameters: each one returns the full history (or one complete observation) as a static JSON file.

EndpointReturns
/v1/credit/The three datasets with their first and latest dates and endpoints
/cmdiCorporate Bond Market Distress Index, every week since 2005-01-07
/cmdi/latestThe latest week only
/hqm/parHQM par yields (2, 5, 10 and 30 years), every month since 1984-01
/hqm/spot/{maturity}HQM spot rate for one maturity, every month since 1984-01
/hqm/curve/{YYYY-MM}The whole HQM curve for one month: 200 spot rates and the 4 par yields
/hqm/curve/latestThe curve for the latest month
/hqm/eom/…The same four HQM endpoints with end-of-month instead of monthly-average rates
/hqm/maturitiesThe spot maturities (0.5 to 100 years) and par tenors
/cdsCredit default swaps: the full CFTC tables for the latest week
/cds/{YYYY-MM-DD}The same for one week (an as-of Friday from /cds/dates)
/cds/historyHeadline figures for every week since 2012-11-09
/cds/datesAvailable weeks with release date and methodology, plus the missing weeks

GET/v1/credit/

Response (shortened)
{"dataset":"index","title":"Credit Market Data API","updated":"2026-11-11T08:49:50Z",
 "docs":"https://www.quotelinks.com/api/credit-market-data/","terms":"https://www.quotelinks.com/tos.html",
 "datasets":[{"dataset":"cmdi","title":"Corporate Bond Market Distress Index","source":"Federal Reserve Bank of New York",
   "frequency":"weekly","as_of":"2026-10-23","first":"2005-01-07","endpoints":["/v1/credit/cmdi","/v1/credit/cmdi/latest"]},
  {"dataset":"hqm", … ,"as_of":"2026-10","first":"1984-01","as_of_end_of_month":"2026-10", … },
  {"dataset":"cds", … ,"as_of":"2026-10-23","first":"2012-11-09", … }]}

Corporate Bond Market Distress Index (CMDI)

The CMDI from the Federal Reserve Bank of New York measures how strained the US corporate bond market is, on a scale from 0 (no distress) to 1 (maximum distress). It is calculated weekly (weeks ending Friday) from primary and secondary market measures and published once a month.

GET/v1/credit/cmdi

Response (shortened)
{"dataset":"cmdi", … ,"count":1138,"as_of":"2026-10-23","updated":"2026-11-11T08:49:50Z",
 "data":[{"date":"2005-01-07","market":0.35,"ig":0.25,"hy":0.35,
   "percentiles":{"p5":0.2,"p10":0.22,"p25":0.24,"p50":0.3,"p75":0.36,"p90":0.42,"p95":0.44,"p99":0.46},
   "recession":false}, … ,
  {"date":"2026-10-23","market":0.25,"ig":0.25,"hy":0.16,"percentiles":{ … },"recession":false}]}
FieldTypeMeaning
datedateWeek ending (Friday), YYYY-MM-DD
market0–1Index for the whole corporate bond market
ig0–1Index for investment-grade bonds
hy0–1Index for high-yield bonds
percentilesobjectp5 … p99: percentile bands of the market index’s distribution as of that week, as published by the NY Fed. Compare market with them to see how unusual a reading is.
recessionbooleantrue for weeks the NY Fed data marks as US recession (the shaded periods in its charts)

The Corporate Bond Market Distress Index is not an official estimate of the Federal Reserve Bank of New York, its President, the Federal Reserve System, or the Federal Open Market Committee.

HQM corporate bond yield curve

The U.S. Department of the Treasury’s High Quality Market (HQM) curve gives yields of high-quality (AAA, AA and A rated) US corporate bonds: spot rates for 200 maturities from 0.5 to 100 years in half-year steps, and par yields for 2, 5, 10 and 30 years. Rates are in percent, one value per month from January 1984.

Two versions: the default paths return monthly averages ("basis":"monthly_average"); the same paths under /hqm/eom/ return end-of-month rates ("basis":"end_of_month").

GET/v1/credit/hqm/par

Response (shortened)
{"dataset":"hqm_par", … ,"units":"percent, monthly average","basis":"monthly_average",
 "tenors":["2y","5y","10y","30y"],"count":514,"as_of":"2026-10","updated":"2026-11-11T08:49:50Z",
 "data":[{"month":"1984-01","2y":11.36,"5y":11.98,"10y":12.58,"30y":11.57}, … ,
  {"month":"2026-10","2y":5.16,"5y":5.51,"10y":5.92,"30y":6.43}]}

GET/v1/credit/hqm/spot/{maturity}

{maturity} is in years: 0.5 to 100 in steps of 0.5 (10 and 10.0 both work).

Request
GET https://api.quotelinks.com/v1/credit/hqm/eom/spot/10
Response (shortened)
{"dataset":"hqm_spot", … ,"units":"percent, end of month","basis":"end_of_month","maturity":10,
 "count":514,"as_of":"2026-10","updated":"2026-11-11T08:49:50Z",
 "data":[{"month":"1984-01","rate":12.66}, … ,{"month":"2026-09","rate":6.17},{"month":"2026-10","rate":5.88}]}

GET/v1/credit/hqm/curve/{YYYY-MM}

The whole curve for one month; use latest for the newest month.

Request
GET https://api.quotelinks.com/v1/credit/hqm/curve/latest
Response (shortened)
{"dataset":"hqm_curve", … ,"units":"percent, monthly average","basis":"monthly_average",
 "as_of":"2026-10","updated":"2026-11-11T08:49:50Z",
 "data":{"month":"2026-10",
   "spot":[{"maturity":0.5,"rate":4.56},{"maturity":1.0,"rate":4.8},{"maturity":1.5,"rate":5.01}, … ,
     {"maturity":10.0,"rate":6.02}, … ,{"maturity":100.0,"rate":7.05}],
   "par":{"2y":5.16,"5y":5.51,"10y":5.92,"30y":6.43}}}

/v1/credit/hqm/maturities lists the 200 spot maturities and the par tenors (2y, 5y, 10y, 30y).

Credit default swaps (CFTC Weekly Swaps Report)

The CFTC’s Weekly Swaps Report summarizes the swaps reported to US swap data repositories. The API takes its credit default swap tables: gross notional outstanding, ticket volume (number of trades) and dollar volume traded in the week, split by cleared status, credit grade, region and participant type. These are market-wide totals: there are no spreads, prices or single reference entities.

GET/v1/credit/cds/history

Headline figures for every week, oldest first (about 58 KB compressed).

Response (shortened)
{"dataset":"cds_history", … ,"notes":[ … ],"count":720,
 "missing_weeks":["2013-09-27","2013-10-04","2013-10-11","2018-12-21", … ,"2023-01-13"],
 "as_of":"2026-10-23","updated":"2026-11-11T08:49:50Z",
 "data":[{"date":"2012-11-09","methodology":"2012-estimated","estimated":true,
   "notional":{"total":22316141,"cleared":2700012,"uncleared":19616129,"hy":472319,"ig":3015854,"other":4656022,
     "regions":{"asia":370527,"europe":4411957,"north_america":4174934}},
   "tickets":{"total":38385,"cleared":null,"uncleared":null},
   "dollar_volume":{"total":null,"cleared":null,"uncleared":null}}, … ,
  {"date":"2026-10-23","methodology":"2022-12","estimated":false,
   "notional":{"total":8343898,"cleared":5987064,"uncleared":2356834,"hy":1346169,"ig":6512237,"other":485492,
     "regions":{"asia":129531,"europe":4067401,"north_america":3653420,"other_regions":493546}},
   "tickets":{"total":12160,"cleared":10856,"uncleared":1304},
   "dollar_volume":{"total":999458,"cleared":747255,"uncleared":252203}}]}
FieldUnitMeaning
datedateAs-of date of the report (a Friday)
methodologytext2012-estimated, 2013 or 2022-12 – see comparability
estimatedbooleantrue for the estimated figures of Nov 2012 – Nov 2013
notional$ millionsGross notional outstanding: total, cleared, uncleared; by grade hy (high yield), ig (investment grade), other; and regions
ticketstradesNumber of transactions in the week: total, cleared, uncleared
dollar_volume$ millionsNotional traded in the week: total, cleared, uncleared

Region keys are asia, europe, north_america and other_regions (from November 2013). A few 2013–2014 reports have combined regions that the CFTC reported together, such as north_america_asia.

GET/v1/credit/cds/{YYYY-MM-DD}

One week in full: the headline figures plus every credit table of the report. /v1/credit/cds returns the latest week. The date must be an as-of date listed by /v1/credit/cds/dates.

Response (shortened)
{"dataset":"cds_snapshot", … ,"notes":[ … ],"as_of":"2026-10-23","updated":"2026-11-11T08:49:50Z",
 "data":{"as_of":"2026-10-23","released":"2026-11-09","methodology":"2022-12","layout":"D","estimated":false,
   "headline":{"notional":{"total":8343898, … },"tickets":{"total":12160, … },"dollar_volume":{"total":999458, … }},
   "gross_notional":{"units":"millions USD",
     "by_cleared":{"columns":["cleared","uncleared","total"],
       "rows":[{"key":"index_tranche_index_other","label":"Index Tranche / Index / Other*","kind":"product","parent":null,
                "values":{"cleared":5987064,"uncleared":2356834,"total":8343898}},
               {"key":"asia","label":"Asia","kind":"region","parent":"index_tranche_index_other",
                "values":{"cleared":63844,"uncleared":65687,"total":129531}}, … ,
               {"key":"total","label":"TOTAL","kind":"total","parent":null,"values":{ … }}],
       "table":"13a"},
     "by_grade":{ … },"by_participant_cleared":{ … },"by_participant_grade":{ … }},
   "ticket_volume":{"units":"number of transactions", … },
   "dollar_volume":{"units":"millions USD", … },
   "report_url":"https://www.cftc.gov/sites/default/files/2026-11/CFTC_Swaps_Report_11_09_2026.xlsx"}}
  • Measures: gross_notional, ticket_volume, dollar_volume (and net_notional in the 2012–2013 reports).
  • Tables: by_cleared, by_grade, by_participant_cleared and by_participant_grade (2012–2013 reports: total, by_grade and the participant tables). columns lists the value keys; participant columns start with dealers_ (swap dealers and major swap participants) or others_. table is the table number in the CFTC report.
  • Rows: kind is product, subproduct, region or total; parent is the product a region or subproduct row belongs to. label is the text in the CFTC report.
  • Masked cells: values the CFTC hides (<1,000, ., -) are null, never 0.
  • released is the CFTC release date (null for a few early reports); layout (A–D) tells which report format the week was parsed from.

GET/v1/credit/cds/dates

Response (shortened)
{"dataset":"cds_dates", … ,"count":720,"missing_weeks":["2013-09-27", … ,"2023-01-13"],"as_of":"2026-10-23",
 "data":[{"as_of":"2012-11-09","released":null,"methodology":"2012-estimated"},
  {"as_of":"2012-11-16","released":"2012-11-23","methodology":"2012-estimated"}, … ]}

Comparability – read before charting

  1. 2012-estimated (Nov 2012 – Nov 2013): estimated figures, about 2.5× later levels. Not comparable with later weeks.
  2. 2022-12 (from the report as of 2022-12-02): the CFTC removed duplicates across swap data repositories and inter-affiliate trades, and moved exotics into “Other Regions”. Do not join series across this break.
  3. Before 2022-12-02 the regions exclude the exotics row (OTHER*), so regions add up to less than the total.
  4. Participant tables count both sides of a trade: their totals are about 2× the by_cleared table.
  5. Missing weeks (missing_weeks) were not published by the CFTC and are never interpolated.

The same notes are included in every CDS response as notes.

Data & updates

DatasetSinceFrequencyPublished by the source
CMDI2005-01-07weekly valuesMonthly, last Wednesday around 10:00 ET
HQM curve1984-01monthlyMonthly, usually in the first half of the following month
CDS2012-11-09weeklyWeekly, usually on Monday, about two weeks after the as-of date
  • Source files are downloaded directly from the NY Fed, the Treasury and the CFTC, checked every day and parsed by Quotelinks. The API is rebuilt only when the data changes; updated shows when.
  • Values are served as published by the source: no smoothing, no filling of gaps, no conversion.
  • Caching: responses are cached for up to 1 hour.
  • Not included: CDS spreads or prices, bond prices, ratings or data on single issuers.

Errors & limits

Errors return JSON with the HTTP status and a message:

{"status":404,"message":"No data for this date, month or maturity. See /v1/credit/cds/dates (weekly as-of dates, Fridays) or /v1/credit/hqm/maturities (0.5 to 100 in 0.5 steps)."}
StatusWhen
404A date that is not a report week, a month without data, a maturity that is not in the list, or an unknown path (the message then lists the endpoints).
401Invalid api_token.
429Too many requests. Wait (see Retry-After) and retry.
503Temporary server problem. Retry later.

Fair use: up to 2 requests per second per IP address, or 10 per second with a free API key (add api_token=YOUR_KEY). The data changes at most once a week, so please cache responses.

Code examples

JavaScript (browser or Node 18+)

const r = await fetch("https://api.quotelinks.com/v1/credit/cmdi");
const { data } = await r.json();
for (const w of data.slice(-4))
  console.log(w.date, w.market, w.ig, w.hy);

Python

import json, urllib.request

url = "https://api.quotelinks.com/v1/credit/hqm/par"
with urllib.request.urlopen(url) as r:
    rows = json.load(r)["data"]
for m in rows[-3:]:
    print(m["month"], m["10y"], m["30y"])

PHP

$h = json_decode(file_get_contents(
    "https://api.quotelinks.com/v1/credit/cds/history"
), true);
foreach (array_slice($h["data"], -5) as $w)
    echo $w["date"], " ", $w["notional"]["total"], " ", $w["tickets"]["total"], "\n";

Source & terms

The data comes from public US sources. When you show it, credit the source with the line in the credit field:

The Corporate Bond Market Distress Index is not an official estimate of the Federal Reserve Bank of New York, its President, the Federal Reserve System, or the Federal Open Market Committee. Quotelinks is not affiliated with or endorsed by the Federal Reserve Bank of New York, the U.S. Department of the Treasury or the CFTC. The CDS tables are parsed by Quotelinks from the CFTC’s spreadsheets and may contain parsing differences; check the original report (report_url) before relying on a number.

The API is provided for personal, non-commercial use. Redistribution of the data is not allowed. For commercial use, contact support@quotelinks.com. See the Terms of Service and the disclaimer. The data is for information only and is not investment advice.

Frequently asked questions

Is the Credit Market Data API free?

Yes. No sign-up, no API key needed and no cost, for personal, non-commercial use. Fair use is up to 2 requests per second per IP address, or 10 per second with a free API key; please cache responses.

Can I use the data commercially or redistribute it?

No. The API is for personal, non-commercial use, and redistribution of the data is not allowed. For commercial use, contact support@quotelinks.com. See the Terms of Service.

Where does the data come from?

From three US public sources, downloaded directly: the Corporate Bond Market Distress Index from the Federal Reserve Bank of New York, the High Quality Market (HQM) corporate bond yield curve from the U.S. Department of the Treasury, and the Weekly Swaps Report of the U.S. Commodity Futures Trading Commission (CFTC). Values are served as published.

What is the Corporate Bond Market Distress Index (CMDI)?

A weekly index from the New York Fed that measures stress in the US corporate bond market on a scale from 0 (no distress) to 1 (maximum distress). It combines primary and secondary market measures and comes in three versions: the whole market, investment grade and high yield. The API also returns the percentile bands of the index and a recession flag.

What is the HQM corporate bond yield curve?

A yield curve for high-quality (AAA, AA and A rated) US corporate bonds published monthly by the US Treasury, with spot rates for maturities from 0.5 to 100 years and par yields for 2, 5, 10 and 30 years. It is widely used to discount pension liabilities. The API serves both the monthly average and the end-of-month curves.

Does the CDS data include spreads or prices of single companies?

No. The CFTC Weekly Swaps Report gives market-wide totals for credit default swaps: gross notional outstanding, number of trades and dollar volume, split by cleared status, credit grade, region and dealer or other participant. It has no spreads, prices or individual reference entities.

Why are some weeks missing in the CDS history?

The CFTC did not publish them: three weeks during the 2013 government shutdown, five weeks around the turn of 2018/2019 and the report as of 2023-01-13. Missing weeks are listed in missing_weeks and are never filled in or interpolated.

Can I compare CDS figures from 2013 with today?

Only within the same methodology. Reports from November 2012 to November 2013 contain estimated figures, about 2.5 times later levels, and from the report as of 2022-12-02 the CFTC removed duplicates and inter-affiliate trades. Every week carries a methodology field; do not join series across methodologies.

How often is the data updated?

Each source is checked every day and the API is rebuilt when new data appears. The NY Fed publishes the CMDI once a month (weekly values), the Treasury publishes the HQM curve monthly, and the CFTC publishes its swaps report weekly. The updated and as_of fields show how fresh each response is.