New Issue Bond Feed — SEC EDGAR (CUSIP & Terms) avatar

New Issue Bond Feed — SEC EDGAR (CUSIP & Terms)

Pricing

from $10.00 / 1,000 new bond issues

Go to Apify Store
New Issue Bond Feed — SEC EDGAR (CUSIP & Terms)

New Issue Bond Feed — SEC EDGAR (CUSIP & Terms)

Daily feed of new US corporate bond issues from SEC EDGAR 424B2, 424B5 and FWP filings: CUSIP/ISIN validation, coupon, maturity, size, call terms, guarantor, field-level sources. onlyChanges for daily runs.

Pricing

from $10.00 / 1,000 new bond issues

Rating

0.0

(0)

Developer

Luis Segura

Luis Segura

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Categories

Share

New Issue Bond Feed — SEC EDGAR

Status: v1.0 beta. Covers US-registered corporate bond issues from SEC EDGAR only.

A daily feed of new US-registered corporate bond issues from SEC EDGAR. Every 424B2, 424B5 and FWP filed in your date range is triaged. Bank structured notes, equity offerings, ABS and shelf/program supplements are dropped. The Actor is designed to return one row per tranche with its CUSIP/ISIN and terms; tranche_index and tranches_in_document identify each tranche of a multi-tranche document. Key values come with the sentence they were taken from.

Built for pipelines that run on a schedule: a stable natural key, an incremental onlyChanges mode, a versioned schema, and runs that fail loudly instead of finishing green with an empty dataset.

Who it's for

  • Fixed-income desks and analysts who check EDGAR by hand for new deals.
  • Data teams that feed a database, alert or pricing tool each evening with the day's new issues.

What you get

Field groupFields
Identifierscusip, isin, cusip_check_digit_valid, isin_check_digit_valid, identifier_crosscheck
Issuerissuer_legal_name, cik, sic, sic_description, guarantor
Instrumentinstrument_name, series, instrument_kind, tranche_index, tranches_in_document
Couponcoupon_rate, coupon_type (fixed, floating, fixed_to_floating, fixed_reset, step_up, zero), reference_rate, spread_bps
Datespricing_date, original_issue_date, maturity_date
Size & priceoriginal_issue_amount, issue_price (% of par), denomination_min, denomination_increment, currency
Structureseniority, secured_status, is_callable, first_call_date, par_call_date, make_whole_provision, make_whole_spread_bps, is_convertible
Provenancesource_url, accession_number, form, filing_date, supporting_documents[], provenance{...} (source and quoted text for each key value)
Qualityneeds_review, review_reasons[], term_changes[], classification_reasons[]
Feedschema_version, record_status (new / final_update / seen), natural_key, issue_id, observed_at

Example row (shape only, placeholder values)

{
"cusip": "<9-character CUSIP from the filing>",
"isin": "<ISIN, check digit validated>",
"issuer_legal_name": "<Issuer legal name>",
"form": "424B5",
"accession_number": "<EDGAR accession number>",
"coupon_type": "fixed",
"coupon_rate": 0.0,
"maturity_date": "YYYY-MM-DD",
"original_issue_amount": 0,
"is_callable": true,
"first_call_date": "YYYY-MM-DD",
"needs_review": false,
"record_status": "new",
"natural_key": "<cusip>|<accession_number>"
}

Why the FWP ↔ 424B join matters

For benchmark deals the final prospectus supplement often prints no CUSIP. The CUSIP is in the issuer's FWP Pricing Term Sheet, filed a day or two earlier. The Actor links the two documents by issuer, maturity and coupon, then applies these rules:

  • The final 424B wins for every term both documents state. Each disagreement is kept in term_changes (field, term_sheet_value, final_value).
  • The FWP fills only what the 424B leaves blank, typically cusip, isin and issue_price. provenance.cusip.source_url then points at the FWP.
  • If a term sheet was filed before your date range, the Actor looks back termSheetLookbackDays in that issuer's filings.
  • If a term sheet has no final yet, it is emitted with document_status = "term_sheet". When the final arrives, the issue comes back once more with record_status = "final_update".

Data rules

  • Identifiers are not invented. A CUSIP/ISIN is taken only from text that labels it as one, and its check digit must validate. A valid check digit proves the string is well-formed, not that it belongs to the bond. provenance.cusip.supporting_text shows the exact line.
  • Tri-state booleans. is_callable, make_whole_provision and is_convertible are true, false or null. null means the document does not say.
  • Original ≠ outstanding. original_issue_amount is what was offered. amount_outstanding is always null, because a prospectus cannot know about later reopenings or buybacks.
  • Preliminary vs final. Preliminary pricing supplements are skipped unless includePreliminary is on.
  • Unattributed values stay null. If one redemption section covers several tranches, call dates and make-whole spreads are left null with a warning instead of being assigned to the wrong tranche.

Natural key, dedupe and schema

  • natural_key = cusip|accession_number (or NO-CUSIP|accession#tranche when no CUSIP is printed). Upsert on it to make re-ingestion idempotent.
  • issue_id = CUSIP:<cusip> when known: the same bond across documents. Use it to collapse the FWP-first row and the later final_update row.
  • schema_version = "1.0". Fields are only added within 1.x. A rename or meaning change bumps the major version.

Daily use (incremental mode)

Run it on weekday evenings with onlyChanges: true. A run then returns only issues it has not seen before, plus final_update rows. Seen issues are remembered in a named key-value store (stateStoreName, default new-issue-bond-feed-state), which survives across runs. Overlapping daily windows and re-runs do not duplicate rows.

Timing: EDGAR publishes the full daily index in the evening. Run after 18:30 America/New_York. A run earlier in the day only sees filings made until that moment. The default range (previous business day → today) means a Monday run still covers Friday.

Webhook on completion: add an Actor webhook for ACTOR.RUN.SUCCEEDED (and ACTOR.RUN.FAILED, to get alerted), then fetch the run's dataset:

GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json&clean=1

Flattening arrays for CSV: supporting_documents, term_changes and review_reasons are arrays. Use the dataset API's unwind parameter for one row per element:

GET /v2/datasets/{id}/items?format=csv&unwind=term_changes
GET /v2/datasets/{id}/items?format=csv&flatten=provenance

Run summary: every run writes RUN_SUMMARY to its default key-value store, with per-day sources, classification breakdown, failures by cause, rows emitted and needing review, and HTTP stats.

Input

FieldDefaultNotes
startDate, endDateprevious business day → today (NY)max 31 days per run
onlyChangesfalseuse true for daily runs
issuerContains, ciks, currencies—filters
includeStructuredNotesfalseemits bank structured notes with instrument_kind = structured_note
includePreliminaryfalse
termSheetLookbackDays7
requestsPerSecond8SEC fair access caps at 10
userAgentActor defaultSEC asks for a name and contact email

Failure behaviour

A run fails (status FAILED, with the cause in the status message) when:

  • no filings exist for the range (weekend or holiday, or EDGAR has not published yet), or
  • every filing failed to download or parse. Causes are counted (rate-limited, blocked, timeout, not-found, …).

A business day where every debt filing was a structured note or a preliminary is a valid empty result. The run succeeds, and RUN_SUMMARY.classification shows why.

Quality and known limits

  • Coverage: SEC-registered deals only (424B2, 424B5, FWP). 144A and Reg S deals are not filed on EDGAR and are not included. Non-US markets (e.g. FIRDS/Europe) are not included.
  • Review flags: on some days a large share of rows is flagged needs_review, mostly multi-tranche deals with term changes between the term sheet and the final. Check review_reasons and term_changes before using a row for trading decisions.
  • Shared redemption sections: call dates and make-whole spreads covering several tranches are left null unless a term sheet supplies them.
  • Step-up coupons report no single coupon_rate.
  • Structured notes, when included, are identified but their payoff terms are not modelled.
  • Volume: daily volume depends on what is filed that day and has not yet been measured over several days. Multi-tranche documents are under QA, so no tranche count is published yet.

Source and compliance

The only source is public SEC EDGAR data (daily form indices, the live filings feed and the filing archives). Every request is identified with a User-Agent and throttled below SEC's 10 requests/second. No third-party data providers are used.

Pricing

Pay per event plus usage. Event: new-issue, charged once per bond row that passes validation (validated CUSIP, coupon and maturity). Rows flagged needs_review are not charged. Bonds already in your state store are not charged again.

Price: US$0.01 per new-issue event.