Bond CUSIP Lookup: Why Free SEC Sources Do Not Cover Every Bond
Why EDGAR has some bond CUSIPs but not others, where municipal bond disclosures actually live, and how to search SEC filings for a bond's CUSIP.
- A bond's CUSIP is structured the same way as a stock's, nine characters identifying the issuer, the specific issue, and a check digit, but where you can find it for free depends entirely on how the bond was offered.
- Municipal bonds are generally exempt from SEC registration, so their CUSIPs and disclosures live on the MSRB's EMMA system, not EDGAR.
- A registered corporate bond's CUSIP usually appears on the cover page of its 424B prospectus or pricing supplement, which EDGAR's full text search can find.
- EDGAR and SecFeed return disclosure data, not bond prices, so a "CUSIP price lookup" needs a market data or pricing service, not an EDGAR based one.
Looking up a bond by its CUSIP works very differently from looking up a stock, and the biggest reason free SEC tools come up short is not a search problem: for most bonds, the SEC never collected the disclosure in the first place. This post covers which bonds actually have a trail on EDGAR, how to search for them, and where the rest of the market's bonds are disclosed instead.
A bond CUSIP looks just like a stock CUSIP
A CUSIP is always nine characters: six for the issuer, two for the specific issue, and one check digit. A corporate bond's CUSIP uses the same issuer prefix as the company's stock, with a different two-character issue code for each bond series the company has outstanding. CUSIP Lookup: Find a Security's CUSIP From SEC Filings covers that structure and the check digit formula in full. What differs for bonds is not the format. It is whether a CUSIP shows up anywhere on EDGAR at all.
Why most municipal bonds are not on EDGAR
Municipal bonds, issued by states, cities, counties and their agencies, are generally exempt from SEC registration under the Securities Act. That exemption is also why they are not on EDGAR in the first place.
Municipal bond disclosure instead runs through the MSRB, the Municipal Securities Rulemaking Board, under SEC Rule 15c2-12. That rule requires underwriters to ensure issuers commit to ongoing disclosure, filed with the MSRB's own system, the Electronic Municipal Market Access website (EMMA), rather than with the SEC. EMMA, not EDGAR, is the free government-backed source for a municipal bond's CUSIP, its official statement, and its continuing disclosure filings.
Get this data as clean JSON
SecFeed turns SEC filings into structured data with one API call: GET /v1/full-text-search?query="912828YK0"&formTypes=424B2. 125 free calls to start.
When a corporate bond's CUSIP is on EDGAR
Corporate and agency bonds split into two groups, and only one of them reaches EDGAR for free:
| Offering type | Registered with the SEC | Where the CUSIP appears |
|---|---|---|
| Public offering (prospectus filed on Form S-1, S-3 or similar, then priced on a 424B) | Yes | On the cover page of the 424B pricing supplement, searchable on EDGAR |
| Rule 144A private placement | No | Never on EDGAR; the offering memorandum is not a public SEC filing |
A registered bond's 424B filing states its CUSIP directly, usually paired with an ISIN, right on the cover page alongside the interest rate, maturity date and offering price. That makes EDGAR's full text search, which indexes the text of every filing and exhibit since 2001, a practical way to find which filing a bond's CUSIP came from, as long as the bond was registered.
A Rule 144A bond, common for high yield and many bank or insurance company issuances, is sold only to qualified institutional buyers and is not registered with the SEC. Its offering memorandum never becomes an EDGAR filing, so no amount of searching EDGAR will surface a CUSIP that only exists in a private placement memorandum.
Searching SEC filings for a bond CUSIP
If you already have a bond's CUSIP and want to find the registration statement or pricing supplement it came from, SecFeed's full text search covers exactly that, since a CUSIP is just a short, exact string once it appears in a filing's text:
curl 'https://secfeedapi.com/v1/full-text-search?query="912828YK0"&formTypes=424B2' \
-H "Authorization: Bearer YOUR_API_KEY"
Replace the quoted string with the bond's own nine character CUSIP. Narrowing formTypes to 424B2 (prospectus pricing supplements) or 424B5 cuts out unrelated filings that happen to mention the same digits elsewhere.
The other direction, finding a CUSIP when you only have an issuer and want to see every outstanding bond it has registered, works by searching that company's own 424B and S-3 filings instead of a dedicated bond tool:
from secfeed import Client
sf = Client("YOUR_API_KEY")
filings = sf.filings(query='ticker:EXAMPLE AND formType:"424B2"', size=10)
for f in filings["filings"]:
print(f["filedAt"], f["accessionNo"])
Each result's accession number points to one pricing supplement. Open it with /v1/files to pull the document and read the CUSIP off the cover page, since EDGAR's own cover page fields are not broken out as structured JSON the way a 13F information table's rows are.
The one case EDGAR already has structured: convertible bonds in a 13F
Some convertible bonds and other debt instruments qualify as Section 13(f) securities, which means an institutional manager reporting them in its 13F-HR lists them by CUSIP, with a principal amount rather than a share count. SecFeed learns issuer names for CUSIPs from exactly these 13F information tables, so if a bond has ever shown up in a manager's 13F, /v1/mapping/cusip can return its issuer even though the bond itself was never the subject of its own EDGAR filing:
curl "https://secfeedapi.com/v1/mapping/cusip?cusip=743315103" \
-H "Authorization: Bearer YOUR_API_KEY"
This only works for CUSIPs that some manager has actually reported holding. It is not a general bond identifier directory, and a bond that no 13F filer currently holds will not resolve this way even if it is registered and trading. Map a CUSIP to ticker and CIK walks through the same endpoint for equity CUSIPs, and the full field reference is on the CIK, CUSIP and ticker mapping API page.
What a CUSIP lookup does not give you: price
A common reason people search for a bond CUSIP lookup is to find its current price. SEC filings, and SecFeed's filings data, are disclosure records, not market data. A 424B pricing supplement shows the bond's original offering price and terms on the day it was sold, not what it trades for today. For current bond pricing, the relevant free sources are FINRA's TRACE system for corporate bonds and the MSRB's EMMA for municipal bonds, both of which publish trade-reported pricing that EDGAR does not carry.
Frequently asked questions
Can I look up any bond's CUSIP for free on EDGAR?
No. Only bonds that were part of a registered public offering, or that appear in an institutional manager's 13F, leave a trail on EDGAR. Municipal bonds and privately placed Rule 144A bonds generally do not.
Where do I look up a municipal bond's CUSIP?
On the MSRB's EMMA website, which is the official free source for municipal bond disclosures, since most municipal issuers are exempt from registering with the SEC.
Does SecFeed return bond prices by CUSIP?
No. SecFeed returns what is disclosed in SEC filings: offering terms from a 424B, or the principal amount an institutional manager reported holding in a 13F. For current trade pricing, use FINRA's TRACE for corporate bonds or the MSRB's EMMA for municipal bonds.
What does a 144A bond's CUSIP look like compared to a registered one?
The same nine character format applies to both. The difference is not the CUSIP's shape, it is that a 144A bond's offering memorandum was never filed with the SEC, so there is no EDGAR filing to search for that CUSIP in the first place.
Is a bond's CUSIP the same before and after it matures or is called?
Yes, a CUSIP identifies the specific issue for its life and does not change on its own. A company refinancing with a new bond series, however, assigns that new series its own CUSIP rather than reusing the old one.
Get this data as clean JSON
SecFeed turns SEC filings into structured data with one API call: GET /v1/full-text-search?query="912828YK0"&formTypes=424B2. 125 free calls to start.
For information only, not investment advice. Data from public SEC filings; verify important figures on SEC.gov. See our AI Disclosure.