XOOMAR

Free Structured Products API

Structured note issuance parsed from SEC 424B2 and FWP filings. Issuer, underlyings, note type, coupon, and barrier per filing, refreshed every 30 minutes.

Endpoints

GET
/api/markets/structured-products?issuer=&underlying=&noteType=&minCoupon=&maxCoupon=&days=&cursor=

Recent filings, newest first, up to 200 rows. Filter by issuer substring, underlying symbol (SPX, NVDA...), note type (autocallable, buffered, barrier, income), coupon range in % (minCoupon/maxCoupon), and lookback days (max 365). Coupon filters match priced notes only. Preliminary filings carry null coupons and are excluded. For the next page, send the response's nextCursor back as cursor.

GET
/api/markets/structured-products/csv

Full dataset as CSV, up to 50,000 rows.

Rate Limit

10 requests a minute without a key, 30 with a free key

CORS

Open (*)

Auth

Optional X-API-Key header

Examples

curl

curl "https://xoomar.com/api/markets/structured-products?underlying=NVDA&days=30"
curl "https://xoomar.com/api/markets/structured-products?noteType=autocallable&minCoupon=10"

Python

import requests

r = requests.get("https://xoomar.com/api/markets/structured-products",
                 params={"underlying": "SPX", "days": 30})
for f in r.json()["data"][:10]:
    print(f["filedAt"], f["issuer"], f["noteType"], f["coupon"])

Limits

  • Term extraction is best-effort. Preliminary filings often show no principal amount; coupon and barrier parse for most but not all filings.
  • docUrl always links the primary SEC document. Trust it over any parsed field.
  • Filings go back five years; older rows carry the filing details, and the parsed terms fill in for newer filings.
  • Updated every 30 minutes on business days, so weekends and market holidays are quiet.

Response shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. The data field is an array of records with these fields:

FieldTypeDescription
accessionNostringEDGAR accession number, unique per filing
issuerstringFiling entity (BofA Finance, Morgan Stanley Finance...)
formTypestring424B2 or FWP
filedAtstring (date)Filing date, YYYY-MM-DD
pricingDatestring | nullPricing/trade date when stated
underlyingsstring[] | nullParsed underlying symbols (SPX, NDX, NVDA...). Populated for priced notes; preliminary filings carry nulls
noteTypestring | nullautocallable, buffered, barrier, or income. Populated for priced notes; preliminary filings carry nulls
couponstring | nullAnnual coupon %; null on preliminary filings, which are filed before the rate is set
capPctstring | nullMaximum return as % of initial level when the note is capped
barrierPctstring | nullBarrier/threshold as % of initial level. Populated for priced notes; preliminary filings carry nulls
principalUsdstring | nullAggregate principal when stated (final filings)
docUrlstringLink to the primary SEC document
canonicalUrlstring (optional)The page on xoomar.com for this record, present only when a matching page exists; otherwise omitted

Next to data, this endpoint's envelope also carries:

FieldTypeDescription
nextCursorstring | nullSend it back as cursor for the next 200 rows; null on the last page

Rows are newest-first. All parsed term fields are nullable by design: they populate for priced notes, while preliminary filings carry nulls until pricing. The SEC document link is the source of truth.

Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.

A free account key raises the limit; send it in an X-API-Key header.

Frequently Asked Questions

Where does this data come from?
SEC EDGAR 424B2 and FWP filings; terms are read from each filing's primary document, which docUrl links.
Is it really free?
Yes. 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history.
Which issuers appear?
The banks and their finance arms that file structured notes on 424B2 or FWP: BofA Finance, Morgan Stanley, JPMorgan, Citigroup, Barclays, Bank of Montreal and dozens more.
Can I get the full history as a file?
Yes, the /csv endpoint streams up to 50,000 rows as CSV.

Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.