Brazil Follow-On Offering Disclosures API: Track Capital Increases and Subscription Rights from CVM Filings
A Brazil follow-on offering disclosures API in the compliance sense is not a bookbuilding or allocation endpoint. It is access to the CVM filings that announce board approval, issue price, subscription ratio, preference periods, and amendments for aumento de capital and follow-on equity offerings — the PDFs issuers file when they launch or update a capital raise. Investment banks and market data vendors may summarize deal terms; apicvm returns the regulatory document you can cite in research, dilution models, or NLP pipelines.
This guide shows which type values to query, how to list and download offering-related notices on a watchlist, and how to narrow noisy FATO_RELEVANTE feeds with practical filters.
The problem
Follow-on and capital-increase monitoring on B3 issuers splits into two stacks that search results often confuse:
- Execution and market data — live prices, estimated dilution, sometimes deal calendars from sell-side research. Good for trading desks, not for the filing text that defines legal terms and subscription windows.
- Regulatory disclosures — fatos relevantes when the offering is market-moving, and avisos aos acionistas when the company frames subscription rights, assembly dates, or formal shareholder notices.
Scraping the CVM portal works for one ticker and breaks on a bank-heavy watchlist. Bulk open-data ZIPs are dataset-oriented, not ticker-first. You want GET /v1/documents with stable document.id, then GET /v1/documents/:id/file for the original PDF — the same pattern as Brazil IPE disclosures, scoped to capital markets events.
For payouts, use Brazil dividend disclosures API. For treasury repurchases, see Brazil share buyback disclosures API. For the generic poll loop on all material facts, see Brazil material facts monitoring API.
Which filing type carries the follow-on?
Brazilian issuers do not file a single SEC-style “S-1” in the IPE feed. Equity follow-ons and capital increases usually surface under:
type |
Role in follow-on workflows |
|---|---|
FATO_RELEVANTE |
Material fact when board approval, launch, pricing, or material updates are disclosed (common for large banks and industrials) |
AVISO_AOS_ACIONISTAS |
Notice to shareholders for subscription rights, preference periods, assembly convocation, and formal terms tied to a capital increase |
Practical rule: poll both types for each ticker on your watchlist, then filter rows by name keywords (Aumento, capital, subscri, oferta, distribuicao) before downloading PDFs. After download, search PDF text for preço de emissão, direito de preferência, or período de exercício.
Reference for the aviso layer: List avisos aos acionistas via API. Step-by-step list queries for material facts: List fatos relevantes via API.
On VALE3 for calendar year 2026, the demo corpus included an AVISO_AOS_ACIONISTAS row about the scheduled Assembleia Geral Ordinária with dateRef 2026-04-30 (demo API, queried 2026-09-12). Banks and other issuers file additional FATO_RELEVANTE rows with aumento or oferta tokens when a follow-on is live; zero rows in a given year does not prove no offering occurred — see limitations below.
Public offering disclosures on the same IPE layer also appear as FATO_RELEVANTE rows whose name includes oferta (for example debenture offerings on VALE3 in 2025 in the demo corpus). Equity follow-ons use the same list-and-download pattern with different keyword filters.
How apicvm helps
- Resolve the issuer —
GET /v1/companies/resolve - List event filings —
GET /v1/documentswithtypes=FATO_RELEVANTE,AVISO_AOS_ACIONISTAS - Scope with
yearand optionaldateRef; sort withfield=dateRef&order=desc - Download the PDF —
GET /v1/documents/:id/file(no extraction credits) - Optional (Pro): page-level markdown —
POST /v1/document-text-extractionswith async callback
Auth: Authorization: Bearer or X-API-Key. Try VALE3 without a key via the demo API.
Setup
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
Step 2: Narrow to follow-on and capital-increase rows
Filename tokens on the CVM IPE feed are predictable enough for a first-pass filter:
curl -s -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&types=FATO_RELEVANTE,AVISO_AOS_ACIONISTAS&year=2026&perPage=50" \
| jq '.data[] | select(.name | test("Aumento|capital|subscri|oferta|distribuicao"; "i")) | {id, type, dateRef, name}'
Tune the regex per issuer: some titles use Oferta_Publica or Aumento_de_Capital without English tokens.
Step 3: Download an offering or notice PDF
curl -H "Authorization: Bearer $APICVM_KEY" \
-o follow-on-notice.pdf \
"$APICVM_URL/v1/documents/<document-id>/file"
Download does not consume extraction credits.
Example: Python watchlist for follow-on filings
Poll event filings across a capital-markets watchlist. Persist seen in your database in production.
import os, time, requests, re
from datetime import datetime
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
WATCH = ["VALE3", "PETR4", "ITUB4", "BBDC4", "ABEV3"]
YEAR = datetime.utcnow().year
OFFERING_RE = re.compile(
r"aumento|capital|subscri|oferta|distribuicao|follow", re.I
)
seen = set() # load from your store on startup
def list_offering_filings(ticker):
r = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={
"ticker": ticker,
"types": "FATO_RELEVANTE,AVISO_AOS_ACIONISTAS",
"year": YEAR,
"perPage": 50,
"field": "dateRef",
"order": "desc",
},
)
if r.status_code == 429:
time.sleep(5)
return list_offering_filings(ticker)
r.raise_for_status()
return r.json()["data"]
for ticker in WATCH:
for doc in list_offering_filings(ticker):
if doc["id"] in seen:
continue
if not OFFERING_RE.search(doc.get("name") or ""):
continue
seen.add(doc["id"])
print(f"OFFERING {ticker} {doc['type']} {doc['dateRef']} {doc['name'][:70]}")
Wire this into GitHub Actions or extend the diff pattern from Brazil material facts monitoring API.
Where follow-on disclosures sit in the filings stack
| Layer | Types | Follow-on relevance |
|---|---|---|
| Events | FATO_RELEVANTE, AVISO_AOS_ACIONISTAS |
Board approval, pricing, preference period, amendments |
| Statements | DFP, ITR |
Pro forma capital, treasury shares, equity roll-forward |
| Governance | FRE |
Capital structure policies, authorization limits |
Brazil regulatory filings API explains the full layer map. During earnings windows, pair this hub with Track Brazil earnings season for ITR and investor presentations alongside event filings.
Current limitations
- Documents, not bookbuilding — apicvm does not route orders, guarantee allocation, or return live subscription balances.
- Keyword filters are heuristic —
nametokens help; false negatives are possible if issuers use unusual titles. - Polling, not push — no webhook when CVM publishes a new fact. Schedule polls and diff
document.id. - Ingestion lag — sync is not real-time. A notice may appear on the portal before it is in the corpus.
- Corpus coverage — not every issuer or period is present. Validate against the portal for production compliance use cases.
- Demo scope —
/v1/demo/*is limited to VALE3. Other tickers need a production key.
Next steps
- Read the API docs
- Get an API key
- List avisos aos acionistas — focused
AVISO_AOS_ACIONISTASreference
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.