IPO pipeline digest (S-1 + 424B4)
POST /v1/ipo-reportA deterministic digest of the IPO pipeline for a window: every 424B4 final prospectus and every S-1/F-1 registration from SEC EDGAR, each filer classified from its own submissions index as a first-time registrant (an IPO), an already-public issuer (follow-on or resale, not an IPO) or a SPAC, optionally filtered by a keyword on the filer's name, with tickers/exchanges where listed and a downloadable filings table. Send POST /v1/ipo-report with no required fields (2 optional) and pay $0.05 per call over x402 or MPP (there is no free tier). It returns a JSON object with report, title, sources, tables and meta.
No LLM, no guessing - filing facts only. Default last 7 days.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
days | number | no | Lookback window in days, 1-90 (default 7). |
keyword | string | no | Optional filter on the filer's name (case-insensitive). Omit or "all" for every filing. |
Example request
curl -i -X POST https://agent402.tools/v1/ipo-report \
-H "Content-Type: application/json" \
-d '{"days":7}'
Without payment this returns HTTP 402 Payment Required with the exact price for ipo-report; any x402 v2 or MPP client pays it and retries.
Example response
{
"report": "# IPO Pipeline Digest: 2025-11-11 to 2025-11-18\n\n**2 priced IPOs** (424B4 final prospectus) and **9 new registrations** (S-1) in the last 7 days...\n\n## Priced IPOs (424B4)\n- **Example Newco Inc.** · 424B4 filed 2025-11-17 · CIK 0001999888 · [filing](https://www.sec.gov/Archives/...)\n\n## Sources\n[1] ...",
"title": "IPO pipeline",
"sources": [
{
"n": 1,
"title": "SEC EDGAR full-text search, form S-1, 2025-11-11 to 2025-11-18",
"url": "https://efts.sec.gov/LATEST/search-index?q=&forms=S-1"
}
],
"tables": [
{
"name": "filings",
"label": "IPO filings",
"columns": [
"Stage",
"Form",
"Filed",
"Filer",
"CIK",
"Accession",
"URL"
],
"rows": [
[
"priced",
"424B4",
"2025-11-17",
"Example Newco Inc.",
"0001999888",
"0001213900-25-099999",
"https://www.sec.gov/Archives/..."
]
]
}
],
"meta": {
"tier": "ipo-report",
"days": 7,
"keyword": null,
"priced": 2,
"registrations": 9,
"deterministic": true
}
}
| Field | Type | Always present | In the example |
|---|---|---|---|
report | string | yes | # IPO Pipeline Digest: 2025-11-11 to 2025-11-18 **2 priced IPOs** (424B4 fin... |
title | string | yes | IPO pipeline |
sources | array of objects | yes | 1 item in the example |
tables | array of objects | yes | 1 item in the example |
meta | object | yes | 6 fields: tier, days, keyword, priced, registrations, deterministic |
From an MCP client
catalog.call {
"slug": "ipo-report",
"params": {
"days": 7
}
}
The hosted connector at https://agent402.tools/mcp needs a payment for ipo-report; the stdio package pays it from a wallet or from AGENT402_CREDITS_KEY. Local install: npx -y agent402-mcp.
Errors and behavior
- Every field is optional. An input the tool rejects returns an HTTP 4xx whose body carries
error,tool,expected,requiredandexample. - A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Wallet-only: this tool reaches the network or stored state, so it has no proof-of-work tier. A prepaid card-credits key (
Authorization: Bearer a402_...) also pays it. - A
GETorHEADto /v1/ipo-report returns the same 402 quote, so the price can be read without a body. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB and a streamed response are not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/v1/ipo-report", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"days": 7
}),
});
Related tools
EDGAR recent IPO filings (S-1 / 424B4)
GET /api/edgar-recent-iposRecently-filed S-1 (initial registration) or 424B4 (final prospectus - actual priced IPO) filings across all US issuers.…
SEC filing report (what the company just filed)
POST /v1/filing-reportName a US ticker and get one cited report on what the company just filed with the SEC: every filing in EDGAR's index for…
Insider flow report (Form 4 transactions)
POST /v1/insider-reportName a US ticker and get one cited insider-flow report: every Form 4 against the company in the window with the actual t…
LinkedIn article, ready to publish (research + copy + sized images)
POST /v1/linkedin-articleHand over a topic and get a publish-ready LinkedIn article back: grounded web research with cited sources, three headlin…
FDA recall report (drug, food, device)
POST /v1/recall-reportName a drug, food, ingredient, brand or medical device and get one cited FDA recall report: every matching enforcement r…
Solana token due-diligence brief
POST /v1/token-briefHand over a Solana SPL mint address and get one cited due-diligence brief: what the token is, whether the mint and freez…